package br.com.centralit.citsmart.rest.operation; import java.util.ArrayList; import java.util.List; import javax.xml.bind.JAXBException; import br.com.centralit.citcorpore.util.Enumerados.TipoSolicitacaoServico; import br.com.centralit.citsmart.rest.bean.RestOperationDTO; import br.com.centralit.citsmart.rest.bean.RestSessionDTO; import br.com.centralit.citsmart.rest.schema.CtListTasks; import br.com.centralit.citsmart.rest.schema.CtListTasksResp; import br.com.centralit.citsmart.rest.util.RestEnum; import br.com.centralit.citsmart.rest.util.RestOperationUtil; import br.com.centralit.citsmart.rest.util.RestUtil; import br.com.citframework.util.UtilStrings; public class RestListTasks implements IRestOperation<CtListTasks, CtListTasksResp> { @Override public CtListTasksResp execute(final RestSessionDTO restSession, final RestOperationDTO restOperation, final CtListTasks message) throws JAXBException { final CtListTasksResp resp = new CtListTasksResp(); if (restSession.getUser() == null || restSession.getUser().getLogin() == null || restSession.getUser().getLogin().trim().equals("")) { resp.setError(RestOperationUtil.buildError(RestEnum.INPUT_ERROR, "Login do usu�rio n�o identificado")); return resp; } final List<TipoSolicitacaoServico> tipos = new ArrayList<>(); if (UtilStrings.nullToVazio(message.getListarCompras()).equalsIgnoreCase("S")) { tipos.add(TipoSolicitacaoServico.COMPRA); } if (UtilStrings.nullToVazio(message.getListarIncidentes()).equalsIgnoreCase("S")) { tipos.add(TipoSolicitacaoServico.INCIDENTE); } if (UtilStrings.nullToVazio(message.getListarRequisicoes()).equalsIgnoreCase("S")) { tipos.add(TipoSolicitacaoServico.REQUISICAO); } if (UtilStrings.nullToVazio(message.getListarRH()).equalsIgnoreCase("S")) { tipos.add(TipoSolicitacaoServico.RH); } if (UtilStrings.nullToVazio(message.getListarViagens()).equalsIgnoreCase("S")) { tipos.add(TipoSolicitacaoServico.VIAGEM); } if (tipos.size() == 0) { resp.setError(RestOperationUtil.buildError(RestEnum.INPUT_ERROR, "Pelo menos um tipo de solicita��o deve ser selecionado")); return resp; } try { resp.setTarefas(RestUtil.getExecucaoSolicitacaoService(restSession).recuperaTarefas(restSession.getUser().getLogin(), tipos.toArray(new TipoSolicitacaoServico[tipos.size()]), "N")); resp.setQtdeTarefas(resp.getTarefas().size()); } catch (final Exception e) { e.printStackTrace(); resp.setError(RestOperationUtil.buildError(e)); } return resp; } }