ConfiguracaoUsuarioUnidadeController.java 5.08 KB
package br.com.centralit.controller;

import java.util.Collection;
import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
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.ConfiguracaoUsuarioUnidade;
import br.com.centralit.api.service.ConfiguracaoUsuarioUnidadeService;
import br.com.centralit.api.viewHelper.ConfiguracaoUnidadeUsuarioVH;
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 08/12/2015 - 09:55:51
 * 
 * @version 1.0.0
 * 
 * @author rogerio.costa
 * 
 */
@Controller
@RequestMapping("/rest/configuracaoUsuarioUnidade")
public class ConfiguracaoUsuarioUnidadeController extends GenericController<ConfiguracaoUsuarioUnidade> {

	/** Atributo configuracaoUsuarioUnidadeService. */
	public ConfiguracaoUsuarioUnidadeService configuracaoUsuarioUnidadeService;

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

		super(configuracaoUsuarioUnidadeService);

		this.configuracaoUsuarioUnidadeService = configuracaoUsuarioUnidadeService;
	}

	@RequestMapping(method = RequestMethod.POST, produces = "application/json", value = "salvar")
	@ResponseBody
	public ResponseBodyWrapper save(@RequestBody ConfiguracaoUnidadeUsuarioVH configuracaoUsuarioUnidade) throws Exception {

		ResponseBodyWrapper responseBody = new ResponseBodyWrapper(this.configuracaoUsuarioUnidadeService.salvarConfiguracao(configuracaoUsuarioUnidade), getEditView());

		return responseBody;
	}

	@RequestMapping(method = RequestMethod.GET, produces = "application/json")
	@ResponseBody
	public ResponseBodyWrapper getList() {

		List<ConfiguracaoUsuarioUnidade> listConfiguracao = genericService.findAll();

		ResponseBodyWrapper responseBody = new ResponseBodyWrapper(listConfiguracao, Views.ConfiguracaoUsuarioUnidadeEditView.class);

		return responseBody;
	}

	@RequestMapping(method = RequestMethod.GET, produces = "application/json", value = "findPorUsuarioOrganizacao")
	@ResponseBody
	public ResponseBodyWrapper findPorUsuarioOrganizacao() {

		Collection<ConfiguracaoUsuarioUnidade> listConfiguracao = this.configuracaoUsuarioUnidadeService.findPorUsuarioOrganizacao();

		ResponseBodyWrapper responseBody = new ResponseBodyWrapper(listConfiguracao, Views.ConfiguracaoUsuarioUnidadeListView.class);

		return responseBody;
	}

	@RequestMapping(method = RequestMethod.GET, produces = "application/json", value = "findPorEstruturaOrganizacionalECM")
	@ResponseBody
	public ResponseBodyWrapper findPorEstruturaOrganizacionalECM(@RequestParam(value = "idUnidade") Long idUnidade) {

		Collection<ConfiguracaoUsuarioUnidade> listConfiguracao = this.configuracaoUsuarioUnidadeService.findPorIdEstruturaOrganizacionalECM(idUnidade);

		ResponseBodyWrapper responseBody = new ResponseBodyWrapper(listConfiguracao, Views.ConfiguracaoUsuarioUnidadeListView.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 listar usuarios através da unidade e username
	 * 
	 * @author rogerio.costa
	 * 
	 * @param username
	 * @param idUnidade
	 * @return Collection<Usuario>
	 */
	@RequestMapping(value = "/findPorUsernameUsuarioAndUnidade", method = RequestMethod.GET, produces = "application/json")
	@ResponseBody
	public ResponseBodyWrapper findPorUsernameUsuarioAndUnidade(@RequestParam(value = "username") String username, @RequestParam(value = "idUnidade") Long idUnidade) {

		Collection<ConfiguracaoUsuarioUnidade> configuracoes = this.configuracaoUsuarioUnidadeService.findPorUsernameUsuarioAndUnidade(username, idUnidade);

		ResponseBodyWrapper responseBody = new ResponseBodyWrapper(configuracoes, Views.UsuarioAutoCompleteView.class);

		return responseBody;
	}

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

		return Views.ConfiguracaoUsuarioUnidadeEditView.class;
	}

	@Override
	public Class<Views.ConfiguracaoUsuarioUnidadeListView> getListView() {

		return Views.ConfiguracaoUsuarioUnidadeListView.class;
	}

}