Validações de Parâmetros de Busca
Este código realiza validações em parâmetros de busca fornecidos em requisições. Abaixo estão as validações principais e como elas são tratadas:
Parâmetros Validados
- Status da Transação (status)
Descrição: Verifica se o status está entre os valores aceitos:
new, pending, pre_authorized, succeeded, failed, reversed, canceled, refunded, dispute, charged_back
Exceção: "Status inválido". - Período de Data (data_inicial e data_final)
Descrição:
Se a busca é feita por um período de tempo, data_final é obrigatória.
Valida se data_inicial não é maior que data_final.
Exceções:
"Data final obrigatória em busca por período"
"A data final não pode ser maior que a inicial" - Paginação (page)
Descrição: Define a página da busca. Se não fornecido, o valor padrão é 1.
Geração da Query String
Dependendo dos parâmetros fornecidos (data_inicial, data_final, status, forma_pagamento), o código gera uma string de requisição para a API.
Combinações de Parâmetros Suportadas:
Filtro Completo: data_inicial, data_final, status, e forma_pagamento.
Filtro por Status e Período: data_inicial e status.
Filtro por CPF/CNPJ: Caso o cpf_cnpj seja fornecido, é gerada uma query específica.
Filtro Padrão: Se nenhum parâmetro é fornecido, o código gera um filtro baseado na data atual.
Tratamento de Erros
Em caso de parâmetros inválidos ou ausência de valores obrigatórios, são lançadas exceções com mensagens claras para facilitar o diagnóstico:
Erros Tratados:
Parâmetros inconsistentes (ex.: valor_de > valor_ate)
Datas inválidas (data_inicial > data_final)
Falta de parâmetros obrigatórios (data_final em buscas por período)