package br.com.caelum.stella.gateway.visa;
import javax.servlet.http.HttpServletRequest;
import br.com.caelum.stella.gateway.core.IntegrationHandler;
import br.com.caelum.stella.gateway.core.ProblematicTransactionException;
/**
* Classe que verifica os possiveis retornos das integrações.
*
* @author Alberto Pc
*
*/
public class VISAVerificacaoRetornoIntegracaoViaHttp implements
IntegrationHandler<VISAIntegrationReturn> {
private HttpServletRequest request;
private VISAHttpReturnBuilder httpRetornoBuilder;
/**
*
* @param request
* request que contem as informações
* @param httpRetornoBuilder
* builder especifico para a ocasião.
*/
public VISAVerificacaoRetornoIntegracaoViaHttp(HttpServletRequest request,
VISAHttpReturnBuilder httpRetornoBuilder) {
super();
this.request = request;
this.httpRetornoBuilder = httpRetornoBuilder;
}
/**
* @return RetornoIntegracao
* @throws ProblematicTransactionException
* caso a resposta não contenha código válido.
*/
public VISAIntegrationReturn handle() {
// TODO Auto-generated method stub
VISAIntegrationReturn retornoIntegracao = (VISAIntegrationReturn) httpRetornoBuilder
.buildReturn(request);
return new VISAComponentReturnHandler(retornoIntegracao).check();
}
}