Skip to content
This repository has been archived by the owner on Jun 4, 2024. It is now read-only.

Commit

Permalink
Merge pull request #4 from gabrielboliveira/new-initial-filter
Browse files Browse the repository at this point in the history
Adicionando inicial DY e opção para não filtrar
  • Loading branch information
gabrielboliveira authored Apr 25, 2017
2 parents 01f8cac + c27554b commit ffd8225
Show file tree
Hide file tree
Showing 5 changed files with 24 additions and 26 deletions.
15 changes: 15 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -128,6 +128,18 @@ TrackingCorreios.track('invalido')
}
```

Se não quiser filtrar, use a configuração `filter`:

```js
TrackingCorreios.track('invalido', { filter: false })
.catch(console.log)

> [ {
numero: 'invalido',
erro: 'Objeto não encontrado na base de dados dos Correios.'
} ]
```

O método `track` retorna uma Promise, portanto o tratamento de erros deve ser feito pelo `.catch`. Exemplo de API fora do ar:

```js
Expand All @@ -153,6 +165,7 @@ Pode também passar um objeto de configuração como segundo parâmetro.
TrackingCorreios.track('DU897123996BR', {
username: undefined,
password: undefined,
filter: true,
type: "L",
result: "T",
language: "101",
Expand All @@ -164,6 +177,8 @@ Os parâmetros `username`, `password`, `type`, `result` e `language` serão envi

O parâmetro `limit` indica a quantidade máxima de objetos a ser enviado por requisição. Se passar 8 mil objetos e o limite for 5 mil, o módulo fará duas requisições. Se passar mil objetos e o limite for 1, fará mil requisições.

O parâmetro `filter` indica se deve realizar a filtragem de pacotes válidos antes de acessar a API do Correios.

As requisições não são paralelas, serão realizadas uma após a outra. A Promise só resolverá quando todas as requisições terminarem.

## Validação de objetos
Expand Down
12 changes: 8 additions & 4 deletions src/track.js
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,8 @@ function track (objects, configParams = {}) {
type: "L",
result: "T",
language: "101",
limit: 5000
limit: 5000,
filter: true
}, configParams)

return new Promise( (resolve, reject) => {
Expand Down Expand Up @@ -53,7 +54,8 @@ function track (objects, configParams = {}) {
function validateParams (params) {
if ( params.configParams.type && params.configParams.result &&
params.configParams.language && params.configParams.limit > 0 &&
params.configParams.limit <= MAX_OBJECTS_CORREIOS)
params.configParams.limit <= MAX_OBJECTS_CORREIOS &&
typeof params.configParams.filter === 'boolean')
{
return params
}
Expand All @@ -62,7 +64,7 @@ function track (objects, configParams = {}) {
message: 'Erro ao validar os parâmetros.',
type: 'validation_error',
errors: [{
message: 'Type, result e language não podem ser undefined.',
message: 'Type, result e language não podem ser undefined, filter deve ser boolean',
service: 'param_validation'
}]
})
Expand All @@ -71,7 +73,9 @@ function track (objects, configParams = {}) {
function filterObjects (params) {
params.objects = Helpers.arrayOf(params.objects)

params.objects = filter(params.objects)
if(params.configParams.filter) {
params.objects = filter(params.objects)
}

return params
}
Expand Down
1 change: 1 addition & 0 deletions src/utils/tracking-helpers.js
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,7 @@ const validInitials = {
'DV': 'SEDEX c/ AR digital',
'DW': 'Encomenda SEDEX (Etiqueta Lógica)',
'DX': 'SEDEX 10',
'DY': 'Encomenda SEDEX (Etiqueta Física)',
'EA': 'Encomenda Internacional - EMS',
'EB': 'Encomenda Internacional - EMS',
'EC': 'PAC',
Expand Down
11 changes: 0 additions & 11 deletions tests/responses/valid-two.json
Original file line number Diff line number Diff line change
Expand Up @@ -182,17 +182,6 @@
"bairro": "Dist Indust Domingos Biancardi",
"uf": "SP"
}
},
{
"tipo": "PO",
"status": "01",
"data": "25/10/2016",
"hora": "16:35",
"descricao": "Objeto postado",
"local": "AGF OZANAN",
"codigo": "13215971",
"cidade": "Jundiai",
"uf": "SP"
}
]
}
Expand Down
11 changes: 0 additions & 11 deletions tests/unit/fixtures/response-valid-two.xml
Original file line number Diff line number Diff line change
Expand Up @@ -188,17 +188,6 @@
<uf>SP</uf>
</destino>
</evento>
<evento>
<tipo>PO</tipo>
<status>01</status>
<data>25/10/2016</data>
<hora>16:35</hora>
<descricao>Objeto postado</descricao>
<local>AGF OZANAN</local>
<codigo>13215971</codigo>
<cidade>Jundiai</cidade>
<uf>SP</uf>
</evento>
</objeto>
</return>
</ns2:buscaEventosListaResponse>
Expand Down

0 comments on commit ffd8225

Please sign in to comment.