package br.com.centralit.controller;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import br.com.centralit.api.framework.json.ViewsEcm;
import br.com.centralit.api.model.Assinatura;
import br.com.centralit.api.service.AssinaturaService;
import br.com.centralit.framework.controller.GenericController;
import br.com.centralit.framework.json.ResponseBodyWrapper;
import br.com.centralit.framework.json.Views.GenericView;
import br.com.centralit.framework.view.ResultResponseVH;
/**
*
Title: AssinaturaController
* Description:
*
* @since 22/04/2016 - 11:47:45
* @author rogerio.cassimiro
*
*/
@Controller
@RequestMapping("/rest/assinatura")
public class AssinaturaController extends GenericController{
private AssinaturaService assinaturaService;
@Autowired
public AssinaturaController(AssinaturaService assinaturaService){
super(assinaturaService);
this.assinaturaService = assinaturaService;
}
/**
* Método responsável por salvar assinatura interna
* @author rogerio.cassimiro
* @param assinatura
* @return {@link ResponseBody}
* @throws Exception
*/
@RequestMapping(method = RequestMethod.POST, value = "/saveAssinaturaInterna")
@ResponseBody
public ResponseBodyWrapper saveAssinaturaInterna(@RequestBody Assinatura assinatura) throws Exception {
ResponseBodyWrapper responseBody = new ResponseBodyWrapper(this.assinaturaService.saveAssinaturaInterna(assinatura), getEditView());
return responseBody;
}
/**
* Método responsável por validar se o usuário já teve uma assinatura para o documento selecionado
* @author rogerio.cassimiro
* @param idDocumento
* @return {@link Boolean}
*/
@RequestMapping(value = "/validarAssinaturaPorUsuario", method = RequestMethod.GET)
@ResponseBody
public ResponseBodyWrapper validarAssinaturaPorUsuario(@RequestParam(value = "idDocumento") Long idDocumento) {
ResultResponseVH resultResponseVH = new ResultResponseVH(this.assinaturaService.validarAssinaturaPorUsuario(idDocumento));
ResponseBodyWrapper responseBody = new ResponseBodyWrapper(resultResponseVH, this.getEditView());
return responseBody;
}
@Override
public Class extends GenericView> getEditView() {
return ViewsEcm.DocumentoGedEdit.class;
}
@RequestMapping(value = "/{id}", method = RequestMethod.GET)
@ResponseBody
public ResponseBodyWrapper getObject(@PathVariable("id") Long id) {
ResultResponseVH resultResponseVH = new ResultResponseVH(genericService.getReference(id));
ResponseBodyWrapper responseBody = new ResponseBodyWrapper(resultResponseVH, ViewsEcm.AssinaturaEdit.class);
return responseBody;
}
}