Skip to content

Commit

Permalink
feat: use correios api
Browse files Browse the repository at this point in the history
  • Loading branch information
mauriciomutte committed Apr 28, 2023
1 parent 725b229 commit 802d0d2
Show file tree
Hide file tree
Showing 5 changed files with 54 additions and 57 deletions.
30 changes: 12 additions & 18 deletions @types/index.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -29,9 +29,9 @@ export const enum Rota {

export interface Event {
codigo: string;
descricao: string;
dtHrCriado: string;
tipo: string;
dtHrCriado: string;
descricao: string;
unidade: Unidade;
unidadeDestino: Unidade | null;
comentario?: string;
Expand All @@ -50,25 +50,19 @@ export interface TipoPostal {
categoria: string;
}

export interface ObjectItem {
export interface CorreiosResponse {
codObjeto: string;
eventos: Event[];
modalidade: string;
tipoPostal: TipoPostal;
habilitaAutoDeclaracao: boolean;
permiteEncargoImportacao: boolean;
habilitaPercorridaCarteiro: boolean;
dtPrevista: string;
modalidade: string;
eventos: Event[];
situacao: string;
autoDeclaracao: boolean;
encargoImportacao: boolean;
percorridaCarteiro: boolean;
bloqueioObjeto: boolean;
possuiLocker: boolean;
habilitaLocker: boolean;
habilitaCrowdshipping: boolean;
}

export interface CorreiosResponse {
objetos: ObjectItem[];
quantidade: number;
resultado: string;
versao: string;
arEletronico: boolean;
redis: boolean;
}

export interface CorreiosError {
Expand Down
11 changes: 9 additions & 2 deletions src/utils/api.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,17 @@ import axios from 'axios';

import type { CorreiosError, CorreiosResponse } from '@types';

const BASE_URL = 'https://proxyapp.correios.com.br/v1/sro-rastro';
const BASE_URL = 'https://rastreamento.correios.com.br/app/resultado.php';

export const fetchObject = async (code: string) => {
const { data } = await axios.get<CorreiosResponse>(`${BASE_URL}/${code}`);
const { data, request } = await axios.get<CorreiosResponse>(BASE_URL, {
params: {
objeto: code,
mqs: 'S',
},
});

console.log(request);

return data;
};
Expand Down
16 changes: 8 additions & 8 deletions src/utils/icon.ts
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
const iconByStatus: Record<string, string> = {
"Objeto em trânsito - por favor aguarde": "🚚",
"Objeto saiu para entrega ao destinatário": "🙌",
"Objeto entregue ao destinatário": "🎁",
"Pagamento confirmado": "🤑",
"Aguardando o pagamento do despacho postal": "💸",
"Objeto encaminhado para fiscalização aduaneira": "🔎",
"Objeto recebido pelos correios do Brasil": "🛬",
"Objeto postado": "📦",
TRANSITO: "🚚",
"SAIU-ENTREGA-DESTINATARIO": "🙌",
ENTREGUE: "🎁",
PAR31: "🤑", // Pagamento confirmado
PAR17: "💸", // Aguardando pagamento
PAR21: "🔎", // Encaminhado para fiscalização aduaneira
RecebidoCorreiosBrasil: "🛬",
POSTAGEM: "📦",
DEFAULT: "🚧"
};

Expand Down
38 changes: 17 additions & 21 deletions tests/utils/api.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -29,27 +29,23 @@ describe('Função fetchObject', function() {

it('deve retornar os valores corretos da api dos correios', async () => {
const mockedResponse = {
objetos: [{
codObjeto: 'codObjeto',
tipoPostal:
{
sigla: 'sigla',
descricao: 'descricao',
categoria: 'categoria',
},
modalidade: 'modalidade',
eventos: [],
habilitaAutoDeclaracao: true,
permiteEncargoImportacao: true,
habilitaPercorridaCarteiro: true,
bloqueioObjeto: true,
possuiLocker: true,
habilitaLocker: true,
habilitaCrowdshipping: true,
}],
quantidade: 1,
resultado: "Todos os Eventos",
versao: "1.0.0"
codObjeto: 'codObjeto',
tipoPostal:
{
sigla: 'sigla',
descricao: 'descricao',
categoria: 'categoria',
},
dtPrevista: 'dtPrevista',
modalidade: 'modalidade',
eventos: [],
situacao: 'situacao',
autoDeclaracao: true,
encargoImportacao: true,
percorridaCarteiro: true,
bloqueioObjeto: true,
arEletronico: true,
redis: true,
};
makeCorreiosResponse(mockedResponse);
const result = await fetchObject('123');
Expand Down
16 changes: 8 additions & 8 deletions tests/utils/icon.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,14 @@ import { getIcon } from '../../src/utils';
describe('Função getIcon', function() {
it.each`
status | value
${'Objeto em trânsito - por favor aguarde'} | ${'🚚'}
${'Objeto saiu para entrega ao destinatário'} | ${'🙌'}
${'Objeto entregue ao destinatário'} | ${'🎁'}
${'Pagamento confirmado'} | ${'🤑'}
${'Aguardando o pagamento do despacho postal'} | ${'💸'}
${'Objeto encaminhado para fiscalização aduaneira'} | ${'🔎'}
${'Objeto recebido pelos correios do Brasil'} | ${'🛬'}
${'Objeto postado'} | ${'📦'}
${'TRANSITO'} | ${'🚚'}
${'SAIU-ENTREGA-DESTINATARIO'} | ${'🙌'}
${'ENTREGUE'} | ${'🎁'}
${'PAR31'} | ${'🤑'}
${'PAR17'} | ${'💸'}
${'PAR21'} | ${'🔎'}
${'RecebidoCorreiosBrasil'} | ${'🛬'}
${'POSTAGEM'} | ${'📦'}
${'DEFAULT'} | ${'🚧'}
${'RANDOM STATUS'} | ${'🚧'}
`('deve retornar os icones corretos de acordo com o mapeamento ', function({ status, value }) {
Expand Down

0 comments on commit 802d0d2

Please sign in to comment.