Payment Slip Service
Serviço responsável por buscar o boleto em PDF de uma nota e salvar o arquivo localmente.
Visão Geral
O PaymentSlipService é responsável por:
- Buscar o boleto vinculado a uma nota fiscal
- Converter a resposta binária em base64
- Salvar o PDF no armazenamento local
- Retornar a URI do arquivo salvo
Localização: services/payment-slip/payment-slip.service.ts
Endpoint Utilizado
Base URL
O endpoint usa AUTH_CONFIG.API_MIDDLEWARE_URL como baseURL.
Métodos
fetchPaymentSlip({ nuNota })
Busca o boleto PDF de uma nota e retorna a URI do arquivo salvo localmente.
Endpoint: GET /api/v1/document/boleto
Parâmetros:
type FetchPaymentSlipParams = {
nuNota: string;
};
Query Params enviados:
nuNota: número da nota fiscal
Retorno:
Promise<string>;
O retorno é a URI do arquivo PDF salvo via fileStorageService.saveBase64File.
Exemplo de uso:
import { paymentSlipService } from "@/services/payment-slip/payment-slip.service.instance";
const uri = await paymentSlipService.fetchPaymentSlip({
nuNota: "12345",
});
console.log("Boleto salvo em:", uri);
Tratamento de erros:
- Lança
Errorse o status da resposta não for 2xx - Mensagem atual da implementação:
PdfService.downloadPdfOnline failed: {res.data}
Dependências Relacionadas
AUTH_CONFIG.API_MIDDLEWARE_URL
Define a base URL usada para a requisição do boleto.
Localização: services/auth/auth.config.ts
fileStorageService
Responsável por persistir o arquivo PDF em base64 e retornar a URI local.
Localização: services/file-storage/file-storage.service.instance.ts
buildQueryParams
Função utilitária usada para montar os query params da requisição.
Localização: helpers/buildQueryParams.ts
Testes
Localização
services/payment-slip/payment-slip.service.test.ts
Casos de Teste
fetchPaymentSlip: lança erro em status não-2xxfetchPaymentSlip: retorna URI do arquivo salvo em status 2xx
Instância
Localização
services/payment-slip/payment-slip.service.instance.ts
Uso
import { paymentSlipService } from "@/services/payment-slip/payment-slip.service.instance";