blob: 1dfffd11b964bc8daa3fe74532d7cf1a782dc8de [file] [log] [blame]
package br.com.vivo.torpedeiro.pull.impl;
import br.com.vivo.torpedeiro.pull.MensagemPull;
import br.com.vivo.torpedeiro.pull.PullDAO;
import org.springframework.jdbc.core.JdbcTemplate;
import javax.sql.DataSource;
/**
* Implementa? padr?de {@link PullDAO} que realiza todas as opera?s utilizando SQL atrav?de um {@link
* JdbcTemplate} do Spring Framework.
*
* @author Marcus Brito
*/
public class PullDAOJdbcTemplate implements PullDAO
{
private static final int STATUS_INICIAL = -7;
private JdbcTemplate template;
public String buscarURLProvedor(String provedor)
{
String sql = "SELECT url FROM pull_url WHERE provedor = ?";
return (String) template.queryForObject(sql, new Object[]{provedor}, String.class);
}
public Long inserirMensagemHistorico(MensagemPull mensagem)
{
String sql = "" +
"INSERT INTO pull_historico (\n" +
" id_log,\n" +
" provedor,\n" +
" origem,\n" +
" destino,\n" +
" msg_originada,\n" +
" cod_erro,\n" +
" dt_recepcao\n" +
") VALUES (?, ?, ?, ?, ?, ?, sysdate)";
Long id = buscarProximoID();
template.update(sql, new Object[]{id, mensagem.getCodigoProvedor(),
mensagem.getMensagemOriginal().getOrigem(), mensagem.getMensagemOriginal().getDestino(),
mensagem.getMensagemOriginal().getMensagem(), STATUS_INICIAL});
return id;
}
public void atualizarMensagemHistorico(Long id, int status, String mensagem)
{
String sql = "" +
"UPDATE pull_historico\n" +
" SET cod_erro = ?,\n" +
" msg_recebida = ?,\n" +
" dt_resposta = SYSDATE\n" +
" WHERE id_log = ?";
template.update(sql, new Object[]{status, mensagem, id});
}
private long buscarProximoID()
{
return template.queryForLong("SELECT seq_id_log.nextval FROM dual");
}
/**
* @param ds O DataSource utilizado para acesso ao banco de dados.
*/
public void setDataSource(DataSource ds)
{
this.template = new JdbcTemplate(ds);
}
}