package br.mp.mprj.portal.portlet.gestaomensagens.action;

import javax.portlet.PortletException;
import javax.portlet.PortletRequest;
import javax.portlet.PortletResponse;

import br.mp.mprj.portal.portlet.gestaomensagens.service.model.AnexoMensagem;
import br.mp.mprj.portal.portlet.gestaomensagens.service.service.AnexoMensagemLocalServiceUtil;
import br.mp.mprj.portal.portlet.gestaomensagens.util.GestaoMensagensUtil;

import com.liferay.portal.kernel.exception.PortalException;
import com.liferay.portal.kernel.exception.SystemException;
import com.liferay.portal.kernel.log.Log;
import com.liferay.portal.kernel.log.LogFactoryUtil;
import com.liferay.portal.kernel.servlet.SessionErrors;
import com.liferay.portal.kernel.servlet.SessionMessages;
import com.liferay.portal.kernel.util.ParamUtil;
import com.liferay.util.bridges.mvc.ActionCommand;


/**
 * Classe controller utilizada com a finalidade em 
 * remover um anexo mensagem utilizando o metodo de exclusao logica.
 * @author Aiello
 *
 */
public class AnexoMensagemExcluirActionCommand implements ActionCommand{
	
	private static final Log _log = LogFactoryUtil.getLog(TemplateExcluirActionCommand.class);

	@Override
	public boolean processCommand(PortletRequest portletRequest,
			PortletResponse portletResponse) throws PortletException {
		long anexoMensagemId = ParamUtil.getLong(portletRequest, "anexoMensagemId");
		
		try {
			AnexoMensagem anexoMensagem = AnexoMensagemLocalServiceUtil.getAnexoMensagem(anexoMensagemId);
			anexoMensagem.setAtivo(false);
			AnexoMensagemLocalServiceUtil.updateAnexoMensagem(anexoMensagem);
			
			SessionMessages.add(portletRequest, "sucesso-excluir");
			return true;
		} catch (PortalException | SystemException e) {
			SessionErrors.add(portletRequest, "erro-gravar");
			_log.error("Ocorreu uma falha durante na exclusão do anexo.");
			GestaoMensagensUtil.descartarRascunhos(portletRequest);
			return false;
		}
	}

}
