package br.com.caelum.stella.gateway.redecard; import java.util.Calendar; import javax.servlet.http.HttpServletRequest; import br.com.caelum.stella.gateway.core.CalendarFormatter; import br.com.caelum.stella.gateway.core.IntegrationHandler; import br.com.caelum.stella.gateway.core.ProblematicTransactionException; /** * Classe responsável por verificar o retorno da solicitação de autorização da * Redecard. * * @author Alberto e Rafael * */ public class RedecardVerificaRetornoAutorizacao implements IntegrationHandler<RedecardAutorizacaoReturn> { private HttpServletRequest request; private RedecardIdiomaOperacao idiomaOperacao; public RedecardVerificaRetornoAutorizacao(HttpServletRequest request, RedecardIdiomaOperacao idiomaOperacao) { super(); this.request = request; this.idiomaOperacao = idiomaOperacao; } public RedecardAutorizacaoReturn handle() { // TODO Auto-generated method stub String mensagemRetorno = request.getParameter("MSGRET"); String codigoRetorno = request.getParameter("CODRET"); String numPedido = request.getParameter("NUMPEDIDO"); if (codigoRetorno == null) { int codigoRetornoAprovado = 0; String dataDesformatada = request.getParameter("DATA"); Calendar dataAutorizacao; dataAutorizacao = new CalendarFormatter() .stringToCalendar(dataDesformatada); RedecardAutorizacaoReturn autorizacaoReturn = new RedecardAutorizacaoReturn( codigoRetornoAprovado, mensagemRetorno, dataAutorizacao, numPedido, request.getParameter("NR_CARTAO"), request .getParameter("ORIGEM_BIN"), request .getParameter("NUMAUTOR"), request .getParameter("NUMCV"), request .getParameter("NUMAUTENT"), request .getParameter("NUMSQN"), idiomaOperacao); return autorizacaoReturn; } else { throw new ProblematicTransactionException( mensagemRetorno, new RedecardAutorizacaoReturn(Integer .valueOf(codigoRetorno), mensagemRetorno, numPedido)); } } }