Pular para o conteúdo principal

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 Error se 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-2xx
  • fetchPaymentSlip: 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";