QuestionarioController.java 4.26 KB
package br.com.controller;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Properties;

import javax.mail.Address;
import javax.servlet.ServletContext;

import br.com.model.utilities.Email;
import br.com.model.utilities.ManagerProperties;
import br.com.model.utilities.StringHelper;
import br.com.caelum.vraptor.Path;
import br.com.caelum.vraptor.Resource;
import br.com.caelum.vraptor.Result;
import br.com.caelum.vraptor.Validator;
import br.com.caelum.vraptor.interceptor.multipart.UploadedFile;
import br.com.caelum.vraptor.ioc.spring.VRaptorRequestHolder;
import br.com.dao.QuestionarioDao;
import br.com.model.entity.Contato;
import br.com.model.entity.EnvioEmailSemAutenticacao;
import br.com.model.entity.Questionario;
import br.com.util.DateUtil;

@Resource
public class QuestionarioController {

  private Result result;
  private Validator validator;
  private ServletContext application;

  public QuestionarioController(Result result, Validator validator, ServletContext application) {

    this.result = result;
    this.validator = validator;
    this.application = application;

  }

  @Path("/questionario")
  public void questionario() {

  }
  
  @Path("/confirmacaoHash")
  public void confirmacaoHash(){
	  
  }
  

  @Path("/salvar-questionario")
  public void questionarioSalvar(String emailDestinoOrgao, UploadedFile file, String noOrgao) {

    String codigoHash = noOrgao + DateUtil.dataHoraAtual().toString().replace("/", "").replace(" ", "").replace(":", "");

    Questionario questionario = new Questionario();
    // BufferedReader reader = new BufferedReader(new InputStreamReader(file.getFile()));

    ManagerProperties managerProperties = new ManagerProperties(); 
    
    String dtInicioQuestionario = "";
    String dtFimQuestionario = "";
    
    try {
      Properties prop = managerProperties.getProp(this.application.getRealPath("") + "/WEB-INF/intervaloRespostaFormulario.properties");
      
      dtInicioQuestionario  = prop.getProperty("dataInicio"); 
      dtFimQuestionario = prop.getProperty("dataFim");      
      
  } catch (IOException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
  }
    
    questionario.setDtInicioQuestionario(dtInicioQuestionario);
    questionario.setDtFimQuestionario(dtFimQuestionario);
    questionario.setEmailDestinoOrgao(emailDestinoOrgao);
    questionario.setHashAutenticacao(codigoHash);
    questionario.setNoOrgao(noOrgao);

    QuestionarioDao questionarioDao = new QuestionarioDao();

    if (questionarioDao.salvarQuestionario(file.getFile(), questionario)) {
      Contato contato = new Contato();
      contato.setEmail(emailDestinoOrgao);
      contato.setAssunto("assunto");
      contato.setMensagem("Código Hash:" + codigoHash);
      contato.setNome("nome");

      enviarHashPorEmail(contato);

    }
  }


  private String gerarCodigoHash() {
    String codigoHash = "";

    return codigoHash;
  }

  private void enviarHashPorEmail(Contato contato) {
    boolean emailEnviado = false;


    String respSendEmail;

    Email email = new Email(this.application.getRealPath("") + "/WEB-INF/mail.properties");

    EnvioEmailSemAutenticacao envioEmailSemAutenticacao =
        new EnvioEmailSemAutenticacao(email.getHost(), Integer.toString(email.getPort()));
       
    
    respSendEmail =
        envioEmailSemAutenticacao.sendMail(email.getFrom(), contato.getEmail(),
            StringHelper.convertFromUTF8(contato.getAssunto()),
            StringHelper.convertFromUTF8(contato.getMensagem()), email.getAuth(),
            email.getAuthUser(), email.getAuthPass(), email.getCopiaEmailTo());


    /*
     * String respSendEmail = email.sendEmail("Contato","govbr@planejamento.gov.br",
     * contato.getNome(),contato.getEmail(),StringHelper.convertFromUTF8(contato.getAssunto()),
     * StringHelper.convertFromUTF8(contato.getMensagem()), true);
     */

    if (respSendEmail.equals("")) {
      result.include("mensagem", "Mensagem enviada com Sucesso");
      result.include("status", "success");

    } else {
      result.include("mensagem", "Não foi possível enviar a mensagem! Ocorreu o problema: "
          + respSendEmail);
      result.include("status", "error");
    }

    // this.result.redirectTo(ContatoController.class).index();



  }

}