gabrielboliveira / tracking-correios

Módulo para consulta do rastreio de pacotes do Correios - API SRO
MIT License
110 stars 27 forks source link

Códigos de rastreamento inválidos #35

Closed imakecodes closed 4 years ago

imakecodes commented 4 years ago

Quando tento rastrear objetos com prefixo OJ ou PY, retorna a seguinte mensagem:

Unhandled rejection TrackingError: Erro ao validar os objetos.

Vendo o código, vi em tracking-helpers.js#L4 que tem muitos já mapeados, mas estes não.

Estes prefixos são gerados em autorizações do Correios para o Mercado Livre (desconheço se tem outras plataformas).

Então, esta issue é para gerar um PR para correção, sendo assim, tenho 2 possíveis caminhos:

  1. Adiciona estes novos prefixos definindo o label como: Não mapeado
  2. (não ideal, mas é uma opção) Remover este mapeamento e utilizar um regex validando apenas se é um código do Correios: PY000000000BR

Ou alguma outra sugestão @gabrielboliveira?

gabrielboliveira commented 4 years ago

Obrigado pelas sugestões @imakecodes! Existe a flag filter: false na configuração para desabilitar totalmente as validações, mas talvez o regex de validação seja sim uma melhor alternativa.

Na época que implementei esse pacote eram menos categorias e melhores documentadas. Recentemente fizeram uma reestruturação e mudaram várias. A lista de categorias fica aqui. Não encontrei PY, então pode ser alguma nova que não foi mapeada nessa página pelo Correios ainda.

Já foram enviados vários PRs para adicionar novas categorias, então acho que seja relevante sim refazer para validar somente pelo Regex. Eu manteria o método de category para quem quiser obter o label da categoria.

Se você estiver disposto, ficaria feliz em receber um PR 👍

imakecodes commented 4 years ago

Bom, acredito que não seja necessário adicionar este tipo de validação, visto que não tem tantas atualizações. Inclusive porque o filter: false resolve

Hoje fui ao Correios e perguntei a respeito destes prefixos e a informação que me foi passada é a seguinte:

Estes códigos não são escritos em pedra, e muitas vezes, devido a demanda, eles podem alterar para continuar havendo disponibilidade. Por exemplo:

Se temos AA99 e o limite numérico é 99 e não tem disponível ainda o AA01, então haverá um AB01 (isso para o caso de PAC, que começa com P.

O tempo de vida máximo de um código de rastreio é de 90 dias a partir da data de entrega, assim que ele expira, fica novamente disponível para uso (muito similar a forma que a DHL trabalha, (apenas por curiosidade))

Sendo assim, adicionei por hora um PR apenas contendo os códigos faltantes.

gabrielboliveira commented 4 years ago

@imakecodes Obrigado pelo PR, enviei. Assim que conseguir vou taggear e publicar a versão nova.

Pretendo fazer algumas alterações no código e implementar essa mudança de validação por RegEx.

Fechando o ticket, qualquer coisa pode reabrir ou criar um novo 👍