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

import java.util.Date;

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

import br.mp.mprj.portal.portlet.gestaomensagens.service.model.Template;
import br.mp.mprj.portal.portlet.gestaomensagens.service.service.TemplateLocalServiceUtil;
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 template utilizando o metodo de exclusao logica.
 * @author Aiello
 *
 */
public class TemplateExcluirActionCommand implements ActionCommand {
	
	private static final Log _log = LogFactoryUtil.getLog(TemplateExcluirActionCommand.class);

	@Override
	public boolean processCommand(PortletRequest portletRequest,
			PortletResponse portletResponse) throws PortletException {
		
		long templateId = ParamUtil.getLong(portletRequest, "templateId");
		//boolean resultado = TemplateLocalServiceUtil.removerTemplate(templateId);
		Template template = null;
		final String dCode = String.valueOf(new Date().getTime());
		
		try {
			template = TemplateLocalServiceUtil.getTemplate(templateId);
			template.setNome(template.getNome().concat("removed-").concat(dCode));
			template.setAtivo(false);
			TemplateLocalServiceUtil.updateTemplate(template);
			Thread.sleep(3000);
			SessionMessages.add(portletRequest, "sucesso-excluir");
			return true;
		} catch (PortalException | SystemException | InterruptedException e) {
			SessionErrors.add(portletRequest, "erro-gravar");
			_log.error("Ocorreu uma falha durante na exclusão do template.");
			GestaoMensagensUtil.descartarRascunhos(portletRequest);
			return false;
		}
		
	}

}
