pagarme / superbowleto

:football: A microservice to issue, register and manage boletos
MIT License
5 stars 0 forks source link

Add allow unknown get parameters #352

Closed matheuslcandido closed 3 years ago

matheuslcandido commented 3 years ago

Descrição do problema

Analisando algumas requests com erro no DataDog, identificamos que, no caso das requisições get realizadas no endpoint /boletos/:id alguns erros estão ocorrendo devido ao envio de parâmetros query desconhecidos, ou seja, parâmetros que não estão no schema de validação indexSchema do Joi.

Logs do caso em questão

Correção

A ideia é permitir que esses parâmetros desconhecidos sejam passados na request adicionando a opção allowUnknown na função Joi.validate, dessa forma eles serão ignorados pois não são utilizados e a request seguirá o seu curso normal, pois ela não irá barrar na validação do Joi.

Melhorias

Achamos conveniente adicionar um log nesse endpoint para facilitar o monitoramento de casos como este diretamente no superbowleto, pois essa situação só foi localizada analisando os logs do service pagarme-api.

Também tivemos a necessidade de adicionar um nock em um test para interceptar a request na url https://homolog.meiosdepagamentobradesco.com.br e simular o retorno de sucess, pois essa requisição não estava retornando e isso estava fazendo quebrar o test.