package br.com.caelum.stella.gateway.visa; import javax.servlet.http.HttpServletRequest; import br.com.caelum.stella.gateway.core.BigDecimalFormatter; import br.com.caelum.stella.gateway.core.ReturnBuilder; public enum VISAHttpReturnBuilder implements ReturnBuilder<VISAIntegrationReturn, HttpServletRequest> { AUTORIZACAO_RETORNO_BUILDER() { public VISAAutorizacaoReturn buildReturn(HttpServletRequest request) { // TODO Auto-generated method stub VISACheckout checkout = new VISACheckout(request .getParameter("orderid"), null, request .getParameter("free"), request.getParameter("Price"), null); VISAAutorizacaoReturn retornoAutorizacao = new VISAAutorizacaoReturn( new VISABasicDataReturn(Integer.valueOf(request .getParameter("lr")), request.getParameter("ars"), request.getParameter("tid")), request .getParameter("arp"), request.getParameter("Pan"), checkout); return retornoAutorizacao; } }, CAPTURA_RETORNO_BUILDER() { public VISACapturaReturn buildReturn(HttpServletRequest request) { VISACapturaReturn retornoCaptura = new VISACapturaReturn( new VISABasicDataReturn(Integer.valueOf(request .getParameter("lr")), request.getParameter("tid"), request.getParameter("ars")), new BigDecimalFormatter().stringInCentsToBigDecimal(request .getParameter("cap"))); return retornoCaptura; } }, CANCELAMENTO_RETORNO_BUILDER() { public VISACancelamentoReturn buildReturn(HttpServletRequest request) { VISACancelamentoReturn retornoCancelamento = new VISACancelamentoReturn( new VISABasicDataReturn(Integer.valueOf(request .getParameter("lr")), request.getParameter("tid"), request.getParameter("ars"))); return retornoCancelamento; } }, CONSULTA_RETORNO_BUILDER() { public VISAConsultaReturn buildReturn(HttpServletRequest request) { /* * trecho repetido, mas como é só aqui mesmo, ainda é aceitável. */ VISACheckout checkout = new VISACheckout(request .getParameter("orderid"), null, request .getParameter("free"), request.getParameter("price"), null); VISAConsultaReturn retornoConsulta = new VISAConsultaReturn( new VISABasicDataReturn(Integer.valueOf(request .getParameter("lr")), request.getParameter("tid"), request.getParameter("ars")), checkout, Integer .valueOf(request.getParameter("Authent")), Integer .valueOf(request.getParameter("bank"))); return retornoConsulta; } }; }