AssinaturaController.java 3.06 KB
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;

/**
 * <p><b>Title: </b>AssinaturaController</p>
 * <p><b>Description: </b></p>
 * 
 * @since 22/04/2016 - 11:47:45
 * @author rogerio.cassimiro
 *	
 */
@Controller
@RequestMapping("/rest/assinatura")
public class AssinaturaController extends GenericController<Assinatura>{

	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<Boolean> resultResponseVH = new ResultResponseVH<Boolean>(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<Assinatura> resultResponseVH = new ResultResponseVH<Assinatura>(genericService.getReference(id));
		ResponseBodyWrapper responseBody = new ResponseBodyWrapper(resultResponseVH, ViewsEcm.AssinaturaEdit.class);
		return responseBody;
	}
	
	
	
}