CredencialProcessoController.java 5.51 KB
package br.com.centralit.controller;

import java.util.Collection;

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.model.CredencialProcesso;
import br.com.centralit.api.service.CredencialProcessoService;
import br.com.centralit.api.viewHelper.GrupoUsuarioVH;
import br.com.centralit.framework.controller.GenericController;
import br.com.centralit.framework.json.ResponseBodyWrapper;
import br.com.centralit.framework.json.Views;

/**
 * <p>
 * <img src="http://centralit.com.br/images/logo_central.png">
 * </p>
 * 
 * <p>
 * <b>Company: </b> Central IT - Governança Corporativa -
 * </p>
 * 
 * <p>
 * <b>Title: </b>
 * </p>
 * 
 * <p>
 * <b>Description: </b>
 * </p>
 * 
 * <p>
 * <b>Iniciativa(s):</b> <a href="LINK_PORTAL">NUMERO_INICIATIVA</a>
 * </p>
 * 
 * <p>
 * <b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a>
 * </p>
 * 
 * @since 09/03/2016 - 11:16:42
 * 
 * @version 1.0.0
 * 
 * @author rogerio.costa
 * 
 */
@Controller
@RequestMapping("/rest/credencialProcesso")
public class CredencialProcessoController extends GenericController<CredencialProcesso> {

	/** Atributo credencialProcessoService. */
	private CredencialProcessoService credencialProcessoService;

	/**
	 * Responsável pela criação de novas instâncias desta classe.
	 * 
	 * @param credencialProcessoService
	 */
	@Autowired
	public CredencialProcessoController( CredencialProcessoService credencialProcessoService ) {

		super(credencialProcessoService);

		this.credencialProcessoService = credencialProcessoService;
	}

	/**
	 * <p>
	 * <b>Iniciativa(s):</b> <a href="LINK_PORTAL">NUMERO_INICIATIVA</a>
	 * </p>
	 * 
	 * <p>
	 * <b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a>
	 * </p>
	 * 
	 * Método responsável por listar grupos e usuarios do sistema
	 * 
	 * @author rogerio.costa
	 * 
	 * @return Collection<GrupoUsuarioVH>
	 */
	@RequestMapping(value = "/findGrupoUsuarioByName", method = RequestMethod.GET, produces = "application/json")
	@ResponseBody
	public ResponseBodyWrapper findGrupoUsuarioByName(@RequestParam(value = "nome") String nome) {

		final Collection<GrupoUsuarioVH> grupoUsuarioList = this.credencialProcessoService.findGrupoUsuarioByName(nome);

		ResponseBodyWrapper responseBody = new ResponseBodyWrapper(grupoUsuarioList, Views.GenericView.class);

		return responseBody;
	}

	/**
	 * <p>
	 * <b>Iniciativa(s):</b> <a href="LINK_PORTAL">NUMERO_INICIATIVA</a>
	 * </p>
	 * 
	 * <p>
	 * <b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a>
	 * </p>
	 * 
	 * Método responsável por salvar credenciais
	 * 
	 * @author rogerio.costa
	 * 
	 * @param credenciais
	 * @return
	 * @throws Exception
	 */
	@RequestMapping(method = RequestMethod.POST, produces = "application/json", value = "saveCredencial")
	@ResponseBody
	public ResponseBodyWrapper save(@RequestBody Collection<CredencialProcesso> credenciais) throws Exception {

		ResponseBodyWrapper responseBody = new ResponseBodyWrapper(this.credencialProcessoService.save(credenciais), getEditView());

		return responseBody;
	}

	/**
	 * <p>
	 * <b>Iniciativa(s):</b> <a href="LINK_PORTAL">NUMERO_INICIATIVA</a>
	 * </p>
	 * 
	 * <p>
	 * <b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a>
	 * </p>
	 * 
	 * Método responsável por listar as credenciais herdadas
	 * 
	 * @author rogerio.costa
	 * 
	 * @param idProcesso
	 * @return
	 * @throws Exception
	 */
	@RequestMapping(value = "/findByIdProcesso", method = RequestMethod.GET, produces = "application/json")
	@ResponseBody
	public ResponseBodyWrapper findByIdProcesso(@RequestParam(value = "idProcesso") Long idProcesso) throws Exception {

		ResponseBodyWrapper responseBody = new ResponseBodyWrapper(this.credencialProcessoService.findByIdProcesso(idProcesso), Views.CredencialProcessoView.class);

		return responseBody;
	}

	@RequestMapping(value = "/findCredenciaisHerdadas", method = RequestMethod.GET, produces = "application/json")
	@ResponseBody
	public ResponseBodyWrapper findCredenciaisHerdadas(@RequestParam(value = "idProcesso") Long idProcesso) throws Exception {

		ResponseBodyWrapper responseBody = new ResponseBodyWrapper(this.credencialProcessoService.findCredenciaisHerdadas(idProcesso), Views.GenericView.class);

		return responseBody;
	}

	@RequestMapping(method = RequestMethod.DELETE, value = "/renunciar/{idProcesso}")
	@ResponseBody
	public ResponseBodyWrapper renunciar(@PathVariable("idProcesso") Long idProcesso) {

		ResponseBodyWrapper responseBody = new ResponseBodyWrapper(this.credencialProcessoService.renunciar(idProcesso), getEditView());

		return responseBody;
	}

	@RequestMapping(method = RequestMethod.POST, value = "/validarAcessoPesquisa")
	@ResponseBody
	public ResponseBodyWrapper validarAcessoPesquisa(@RequestBody String idProcessInstance) {

		this.credencialProcessoService.validarAcessoPesquisa(Long.parseLong(idProcessInstance));

		ResponseBodyWrapper responseBody = new ResponseBodyWrapper(Boolean.TRUE, Views.GenericView.class);

		return responseBody;

	}

	@Override
	public Class<Views.CredencialProcessoView> getEditView() {

		return Views.CredencialProcessoView.class;
	}

}