Skip to content

Commit 8ebd171

Browse files
Eric Dallo and Gabriel Lima Gomesericdallo
Eric Dallo and Gabriel Lima Gomes
authored andcommitted
Altera sdk buscando por lista de tracking codes
1 parent fa4ffc4 commit 8ebd171

9 files changed

+160
-122
lines changed

gradle.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
version=0.0.8-BETA
1+
version=0.0.9-BETA

src/main/java/br/com/correios/api/converter/EventosDosCorreiosToPacoteRastreadoDetalhesConverter.java

Lines changed: 37 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,10 @@
55
import java.util.Calendar;
66

77
import br.com.correios.api.model.Destino;
8+
import br.com.correios.api.model.DetalhesRastreio;
89
import br.com.correios.api.model.Evento;
910
import br.com.correios.api.model.LocalDoPacote;
10-
import br.com.correios.api.service.PacoteRastreadoDetalhes;
11+
import br.com.correios.api.model.ObjetoRastreio;
1112
import br.com.correios.webservice.resource.Destinos;
1213
import br.com.correios.webservice.resource.Eventos;
1314
import br.com.correios.webservice.resource.EventosDosCorreios;
@@ -16,63 +17,66 @@
1617
/**
1718
* @author Alexandre Gama
1819
*
19-
* Classe responsavel por converter o objeto de Eventos que é retornado pelos Correios para o objeto @see PacoteRastreadoDetalhes
20+
* Classe responsavel por converter o objeto de Eventos que sao retornado pelos Correios
21+
*
22+
* @see DetalhesRastreio
2023
*/
21-
public class EventosDosCorreiosToPacoteRastreadoDetalhesConverter implements Converter<EventosDosCorreios, PacoteRastreadoDetalhes> {
24+
public class EventosDosCorreiosToPacoteRastreadoDetalhesConverter implements Converter<EventosDosCorreios, DetalhesRastreio> {
2225

2326
@Override
24-
public PacoteRastreadoDetalhes convert(EventosDosCorreios eventosDoCorreios) {
25-
PacoteRastreadoDetalhes pacoteRastreado = new PacoteRastreadoDetalhes();
26-
pacoteRastreado.setQuantidade(Integer.valueOf(eventosDoCorreios.getQtd()));
27-
pacoteRastreado.setVersao(eventosDoCorreios.getVersao());
27+
public DetalhesRastreio convert(EventosDosCorreios eventosDoCorreios) {
28+
DetalhesRastreio detalhesRastreio = new DetalhesRastreio();
29+
detalhesRastreio.setQuantidade(Integer.valueOf(eventosDoCorreios.getQtd()));
30+
detalhesRastreio.setVersao(eventosDoCorreios.getVersao());
2831

2932
for (Objeto objeto : eventosDoCorreios.getObjeto()) {
30-
converteOsDadosDoPacote(pacoteRastreado, objeto);
33+
ObjetoRastreio objetoRastreio = converteOsDadosDoPacote(objeto);
3134

3235
for (Eventos eventoDoCorreio : objeto.getEvento()) {
3336
Evento evento = converteDadosDoLocalDoEvento(eventoDoCorreio);
37+
3438
for (Destinos destino : eventoDoCorreio.getDestino()) {
35-
converteDestinoDoEvento(evento, destino);
39+
Destino destinoDoPacote = converteDestinoDoEvento(destino);
40+
evento.adicionaDestino(destinoDoPacote);
3641
}
37-
pacoteRastreado.adicionaEvento(evento);
42+
objetoRastreio.adicionaEvento(evento);
3843
}
44+
detalhesRastreio.adicionaObjetoRastreio(objetoRastreio);
3945
}
40-
return pacoteRastreado;
46+
47+
return detalhesRastreio;
4148
}
4249

43-
private void converteOsDadosDoPacote(PacoteRastreadoDetalhes pacoteRastreado, Objeto objeto) {
44-
pacoteRastreado.setNumero(objeto.getNumero());
45-
pacoteRastreado.setSigla(objeto.getSigla());
46-
pacoteRastreado.setNome(objeto.getNome());
47-
pacoteRastreado.setCategoria(objeto.getCategoria());
50+
private static ObjetoRastreio converteOsDadosDoPacote(Objeto objeto) {
51+
ObjetoRastreio objetoRastreio = new ObjetoRastreio();
52+
53+
objetoRastreio.setNumero(objeto.getNumero());
54+
objetoRastreio.setSigla(objeto.getSigla());
55+
objetoRastreio.setNome(objeto.getNome());
56+
objetoRastreio.setCategoria(objeto.getCategoria());
57+
return objetoRastreio;
4858
}
4959

50-
private void converteDestinoDoEvento(Evento evento, Destinos destino) {
60+
private static Destino converteDestinoDoEvento(Destinos destino) {
5161
LocalDoPacote localDoDestino = new LocalDoPacote(destino.getLocal(), destino.getCodigo(), destino.getCidade(), destino.getBairro(), destino.getUf());
52-
Destino destinoDoPacote = new Destino(localDoDestino);
53-
evento.adicionaDestino(destinoDoPacote);
62+
return new Destino(localDoDestino);
5463
}
5564

56-
private Evento converteDadosDoLocalDoEvento(Eventos eventoDoCorreio) {
65+
private static Evento converteDadosDoLocalDoEvento(Eventos eventoDoCorreios) {
5766
Evento evento = new Evento();
58-
evento.setTipo(eventoDoCorreio.getTipo());
59-
evento.setStatus(eventoDoCorreio.getStatus());
60-
evento.setHora(eventoDoCorreio.getHora());
61-
evento.setDescricao(eventoDoCorreio.getDescricao());
67+
evento.setTipo(eventoDoCorreios.getTipo());
68+
evento.setStatus(eventoDoCorreios.getStatus());
69+
evento.setHora(eventoDoCorreios.getHora());
70+
evento.setDescricao(eventoDoCorreios.getDescricao());
6271

63-
if (isNotBlank(eventoDoCorreio.getData())) {
64-
converteData(eventoDoCorreio, evento);
72+
if (isNotBlank(eventoDoCorreios.getData())) {
73+
Calendar data = FormatadorData.formataComPadraoDosCorreios(eventoDoCorreios.getData());
74+
evento.setData(data);
6575
}
6676

67-
LocalDoPacote localDoPacote = new LocalDoPacote(eventoDoCorreio.getLocal(), eventoDoCorreio.getCodigo(), eventoDoCorreio.getCidade(), null, eventoDoCorreio.getUf());
77+
LocalDoPacote localDoPacote = new LocalDoPacote(eventoDoCorreios.getLocal(), eventoDoCorreios.getCodigo(), eventoDoCorreios.getCidade(), null, eventoDoCorreios.getUf());
6878
evento.setLocal(localDoPacote);
6979
return evento;
7080
}
7181

72-
private void converteData(Eventos eventoDoCorreio, Evento evento) {
73-
Calendar data = FormatadorData.formataComPadraoDosCorreios(eventoDoCorreio.getData());
74-
75-
evento.setData(data);
76-
}
77-
7882
}
Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
package br.com.correios.api.model;
2+
3+
import java.util.ArrayList;
4+
import java.util.List;
5+
6+
/**
7+
* @author Alexandre Gama
8+
*
9+
* @description Classe que contem todas as informacoes de um Objeto Rastreado, inclusive os eventos associados ao Objeto em questao
10+
*
11+
* @since 0.0.1-BETA
12+
*/
13+
public class DetalhesRastreio {
14+
15+
/**
16+
* Versão do SRO XML
17+
*/
18+
private String versao;
19+
20+
/**
21+
* Quantidade de objetos consultados
22+
*/
23+
private Integer quantidade;
24+
25+
/**
26+
* Lista de objetos rastreados
27+
*/
28+
private List<ObjetoRastreio> objetosRastreio = new ArrayList<ObjetoRastreio>();
29+
30+
public String getVersao() {
31+
return versao;
32+
}
33+
34+
public void setVersao(String versao) {
35+
this.versao = versao;
36+
}
37+
38+
public Integer getQuantidade() {
39+
return quantidade;
40+
}
41+
42+
public void setQuantidade(Integer quantidade) {
43+
this.quantidade = quantidade;
44+
}
45+
46+
public void adicionaObjetoRastreio(ObjetoRastreio objetoRastreio) {
47+
this.objetosRastreio.add(objetoRastreio);
48+
}
49+
50+
public List<ObjetoRastreio> getObjetosRastreio() {
51+
return objetosRastreio;
52+
}
53+
54+
@Override
55+
public String toString() {
56+
return "DetalhesRastreio [versao=" + versao + ", quantidade=" + quantidade + ", objetosRastreio=" + objetosRastreio + "]";
57+
}
58+
59+
}

src/main/java/br/com/correios/api/service/PacoteRastreadoDetalhes.java renamed to src/main/java/br/com/correios/api/model/ObjetoRastreio.java

Lines changed: 4 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -1,32 +1,13 @@
1-
package br.com.correios.api.service;
1+
package br.com.correios.api.model;
22

33
import java.util.ArrayList;
44
import java.util.Collections;
55
import java.util.List;
66

77
import com.google.common.base.Optional;
88

9-
import br.com.correios.api.model.Evento;
10-
11-
/**
12-
* @author Alexandre Gama
13-
*
14-
* @description Classe que contem todas as informacoes de um Objeto Rastreado, inclusive os eventos associados ao Objeto em questao
15-
*
16-
* @since 0.0.1-BETA
17-
*/
18-
public class PacoteRastreadoDetalhes {
9+
public class ObjetoRastreio {
1910

20-
/**
21-
* Versão do SRO XML
22-
*/
23-
private String versao;
24-
25-
/**
26-
* Quantidade de objetos consultados
27-
*/
28-
private Integer quantidade;
29-
3011
/**
3112
* Número do objeto
3213
*/
@@ -51,23 +32,7 @@ public class PacoteRastreadoDetalhes {
5132
* Lista dos eventos que ocorreram com o objeto desejado
5233
*/
5334
private List<Evento> eventos = new ArrayList<Evento>();
54-
55-
public String getVersao() {
56-
return versao;
57-
}
58-
59-
public void setVersao(String versao) {
60-
this.versao = versao;
61-
}
62-
63-
public Integer getQuantidade() {
64-
return quantidade;
65-
}
66-
67-
public void setQuantidade(Integer quantidade) {
68-
this.quantidade = quantidade;
69-
}
70-
35+
7136
public List<Evento> getEventos() {
7237
return Collections.unmodifiableList(eventos);
7338
}
@@ -128,8 +93,7 @@ public Optional<Evento> getUltimoEvento() {
12893

12994
@Override
13095
public String toString() {
131-
return "PacoteRastreadoDetalhes [versao=" + versao + ", quantidade=" + quantidade + ", numero=" + numero
132-
+ ", sigla=" + sigla + ", nome=" + nome + ", categoria=" + categoria + ", eventos=" + eventos + "]";
96+
return "ObjetoRastreio [numero=" + numero + ", sigla=" + sigla + ", nome=" + nome + ", categoria=" + categoria + ", eventos=" + eventos + "]";
13397
}
13498

13599
}

src/main/java/br/com/correios/api/service/CorreiosRastreioApi.java

Lines changed: 6 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,12 @@
66
import static br.com.correios.api.model.CorreiosIdioma.PORTUGUES;
77
import static br.com.correios.api.model.CorreiosTipoIdentificador.LISTA_DE_OBJETOS;
88

9-
import java.util.ArrayList;
109
import java.util.List;
1110

1211
import br.com.correios.api.exception.CorreiosCodigoRastreioInvalidoException;
1312
import br.com.correios.api.model.CorreiosEscopoResultado;
1413
import br.com.correios.api.model.CorreiosIdioma;
14+
import br.com.correios.api.model.DetalhesRastreio;
1515
import br.com.correios.credentials.CorreiosCredenciais;
1616

1717
/**
@@ -70,7 +70,7 @@ public CorreiosRastreioTracker comTodosOsEventos() {
7070
* Metodo para retornar somente o ultimo evento de um Pacote Rastreado.
7171
* Note que neste caso passamos para o correios um parametro diferenciado indicando que sera retornado somente o ultimo evento
7272
* Note tambem que neste caso a lista de eventos sera preenchida com somente 1 evento.
73-
* Para retornar somente o ultimo evento do Pacote rastreado basta usar o metodo {@link PacoteRastreadoDetalhes#getUltimoEvento()}
73+
* Para retornar somente o ultimo evento do Pacote rastreado basta usar o metodo {@link DetalhesRastreio#getUltimoEvento()}
7474
*
7575
* @return CorreiosRastreioTracker
7676
*/
@@ -81,7 +81,7 @@ public CorreiosRastreioTracker somenteUltimoEvento() {
8181

8282
public class CorreiosRastreioTracker {
8383

84-
public PacoteRastreadoDetalhes getPacoteRastreado() {
84+
public DetalhesRastreio getPacoteRastreado() {
8585
boolean usuarioEnviouListaDeTrackingCodes = trackingCodes != null && !trackingCodes.isEmpty();
8686
if (usuarioEnviouListaDeTrackingCodes) {
8787
throw new CorreiosCodigoRastreioInvalidoException("Voce deve fazer a chamada do metodo getPacoteTracker passando somente 1 tracking code e nao uma lista. Caso seja necessario uma lista, voce podera usar o metodo getListaDePacotesTracker");
@@ -94,12 +94,10 @@ public PacoteRastreadoDetalhes getPacoteRastreado() {
9494

9595
SoapCorreiosServicoRastreioApi serviceApi = new SoapCorreiosServicoRastreioApi(credentials);
9696

97-
PacoteRastreadoDetalhes pacoteTrackerEncontrado = serviceApi.buscaPacoteRastreadoDetalhes(trackingCode, idioma, resultado, LISTA_DE_OBJETOS);
98-
99-
return pacoteTrackerEncontrado;
97+
return serviceApi.buscaDetalhesRastreio(trackingCode, idioma, resultado, LISTA_DE_OBJETOS);
10098
}
10199

102-
public List<PacoteRastreadoDetalhes> getListaDePacotesRastreados() {
100+
public DetalhesRastreio getListaDePacotesRastreados() {
103101
boolean listaDeTrackingCodesEstaVazia = trackingCodes == null || trackingCodes.isEmpty();
104102
if (listaDeTrackingCodesEstaVazia) {
105103
throw new CorreiosCodigoRastreioInvalidoException("A lista de Tracking Codes nao pode ser nula ou vazia");
@@ -112,13 +110,7 @@ public List<PacoteRastreadoDetalhes> getListaDePacotesRastreados() {
112110

113111
SoapCorreiosServicoRastreioApi serviceApi = new SoapCorreiosServicoRastreioApi(credentials);
114112

115-
List<PacoteRastreadoDetalhes> pacotesEncontrados = new ArrayList<PacoteRastreadoDetalhes>();
116-
for (String trackingCode : trackingCodes) {
117-
PacoteRastreadoDetalhes pacoteTrackerEncontrado = serviceApi.buscaPacoteRastreadoDetalhes(trackingCode, idioma, resultado, LISTA_DE_OBJETOS);
118-
pacotesEncontrados.add(pacoteTrackerEncontrado);
119-
}
120-
121-
return pacotesEncontrados;
113+
return serviceApi.buscaDetalhesRastreio(trackingCodes, idioma, resultado, LISTA_DE_OBJETOS);
122114
}
123115

124116
}
Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,15 @@
11
package br.com.correios.api.service;
22

3+
import java.util.List;
4+
35
import br.com.correios.api.model.CorreiosEscopoResultado;
46
import br.com.correios.api.model.CorreiosIdioma;
57
import br.com.correios.api.model.CorreiosTipoIdentificador;
8+
import br.com.correios.api.model.DetalhesRastreio;
69

710
public interface CorreiosServicoRastreioApi {
811

9-
PacoteRastreadoDetalhes buscaPacoteRastreadoDetalhes(String codigoDeRastreio, CorreiosIdioma idioma, CorreiosEscopoResultado resultado, CorreiosTipoIdentificador tipoIdentificador);
12+
DetalhesRastreio buscaDetalhesRastreio(String codigoDeRastreio, CorreiosIdioma idioma, CorreiosEscopoResultado resultado, CorreiosTipoIdentificador tipoIdentificador);
1013

14+
DetalhesRastreio buscaDetalhesRastreio(List<String> codigosDeRastreio, CorreiosIdioma idioma, CorreiosEscopoResultado resultado, CorreiosTipoIdentificador tipoIdentificador);
1115
}

src/main/java/br/com/correios/api/service/SoapCorreiosServicoRastreioApi.java

Lines changed: 21 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,16 @@
11
package br.com.correios.api.service;
22

3-
import static br.com.correios.api.model.CorreiosTipoIdentificador.LISTA_DE_OBJETOS;
3+
import static java.util.Arrays.asList;
4+
5+
import java.util.List;
46

57
import br.com.correios.api.converter.EventosDosCorreiosToPacoteRastreadoDetalhesConverter;
68
import br.com.correios.api.exception.CorreiosEventosConverterException;
79
import br.com.correios.api.exception.CorreiosServicoSoapException;
810
import br.com.correios.api.model.CorreiosEscopoResultado;
911
import br.com.correios.api.model.CorreiosIdioma;
1012
import br.com.correios.api.model.CorreiosTipoIdentificador;
13+
import br.com.correios.api.model.DetalhesRastreio;
1114
import br.com.correios.credentials.CorreiosCredenciais;
1215
import br.com.correios.webservice.resource.EventosDosCorreios;
1316
import br.com.correios.webservice.resource.Rastro;
@@ -28,23 +31,33 @@ public SoapCorreiosServicoRastreioApi(CorreiosCredenciais credenciais) {
2831
}
2932

3033
@Override
31-
public PacoteRastreadoDetalhes buscaPacoteRastreadoDetalhes(String codigoDeRastreio, CorreiosIdioma idioma, CorreiosEscopoResultado resultado, CorreiosTipoIdentificador tipoIdentificador) {
32-
Service servicoApi = new Rastro().getServicePort();
34+
public DetalhesRastreio buscaDetalhesRastreio(String codigoDeRastreio, CorreiosIdioma idioma, CorreiosEscopoResultado resultado, CorreiosTipoIdentificador tipoIdentificador) {
35+
return buscaDetalhes(idioma, resultado, tipoIdentificador, asList(codigoDeRastreio));
36+
}
3337

38+
39+
@Override
40+
public DetalhesRastreio buscaDetalhesRastreio(List<String> codigosDeRastreio, CorreiosIdioma idioma, CorreiosEscopoResultado resultado, CorreiosTipoIdentificador tipoIdentificador) {
41+
return buscaDetalhes(idioma, resultado, tipoIdentificador, codigosDeRastreio);
42+
}
43+
44+
private DetalhesRastreio buscaDetalhes(CorreiosIdioma idioma, CorreiosEscopoResultado resultado, CorreiosTipoIdentificador tipoIdentificador, List<String> codigosDeRastreio) {
45+
Service servicoApi = new Rastro().getServicePort();
46+
3447
EventosDosCorreios eventos = null;
3548
try {
36-
eventos = servicoApi.buscaEventos(credenciais.getUsuario(), credenciais.getSenha(),
37-
LISTA_DE_OBJETOS.getCodigoInternoDosCorreios(),
49+
eventos = servicoApi.buscaEventosLista(credenciais.getUsuario(), credenciais.getSenha(),
50+
tipoIdentificador.getCodigoInternoDosCorreios(),
3851
resultado.getCodigoInternoDosCorreios(),
3952
idioma.getCodigoInternoDosCorreio(),
40-
codigoDeRastreio);
53+
codigosDeRastreio);
4154
} catch (Exception e) {
4255
throw new CorreiosServicoSoapException("Ocorreu um erro ao fazer a chamada SOAP para os correios. Verifique se voce passou corretamente os dados desejados", e);
4356
}
44-
57+
4558
try {
4659
EventosDosCorreiosToPacoteRastreadoDetalhesConverter converter = new EventosDosCorreiosToPacoteRastreadoDetalhesConverter();
47-
60+
4861
return converter.convert(eventos);
4962
} catch (Exception e) {
5063
throw new CorreiosEventosConverterException("Ocorreu um erro ao tentar converter o Evento vindo dos correios", e);

0 commit comments

Comments
 (0)