Pular para o conteúdo principal

OpenTitleService

Visao Geral

O OpenTitleService fornece operacoes para buscar titulos em aberto no backend, incluindo consulta geral paginada e consulta filtrada por cliente.

Localizacao: services/open-title/open-title.service.ts

Endpoints

MetodoEndpointDescricao
GET/titulosAbertoLista titulos em aberto com paginacao
GET/titulosAberto/cliente/{clientId}Lista titulos em aberto de um cliente especifico

Metodos

fetchRemote(params)

Busca titulos em aberto de forma geral.

Parametros

NomeTipoObrigatorio
params{ page?: number; size?: number; dataHora?: string }Nao

Retorno: Promise<OpenTitle[]>

Exemplo

const titles = await openTitleService.fetchRemote({
page: 0,
size: 999,
dataHora: "2026-04-01T00:00:00",
});

console.log(titles[0].cliente); // "Empresa Alfa"

Erros

StatusDescricao
4xx/5xxLanca Error: OpenTitleService.fetchRemote failed: {status}

fetchRemoteByClient(clientId, params)

Busca titulos em aberto de um cliente especifico.

Parametros

NomeTipoObrigatorio
clientIdstringSim
params{ page?: number; size?: number }Nao

Retorno: Promise<OpenTitle[]>

Exemplo

const clientTitles = await openTitleService.fetchRemoteByClient(
"client-id-123",
{
page: 0,
size: 999,
},
);

console.log(clientTitles.length); // 10

Erros

StatusDescricao
4xx/5xxLanca Error: OpenTitleService.fetchRemoteByClient failed: {status}

fetchRemoteErp(codParc)

Busca títulos em aberto no ERP para um parceiro específico.

Parâmetros

NomeTipoObrigatório
codParcstringSim

Retorno: Promise<OpenTitleErp[]>

Exemplo

const erpTitles = await openTitleService.fetchRemoteErp("partner-code-123");

console.log(erpTitles.length); // 5

Erros

StatusDescrição
4xx/5xxLança Error: OpenTitleService.fetchRemoteErp failed: {status}

Estruturas de Dados

OpenTitle

interface OpenTitle {
id: string;
idOrganization: string;
idExterno: string;
idCliente: string;
cliente: string;
idUsuario: string;
usuario: string;
idCabecalhoPedido: string;
valor: number;
numeroParcelas: string;
numeroDoc: number;
dataVenc: number;
dhBaixa: string;
provisao: string;
tipoTitulo: string;
vlrDesdob: number;
vlrJuro: number;
vlrMulta: number;
vlrBaixa: number;
codStatus: number;
codModnf: number;
nossoNum: string;
dhCriacao: string;
dhAlteracao: string;
}

PageResponse<T>

interface PageResponse<T> {
content: T[];
page?: number;
size?: number;
totalElements?: number;
}

OpenTitleErp

interface OpenTitleErp {
id: string;
idOrganization: string;
idExterno: string;
idCliente: string;
cliente: string;
idUsuario: string;
usuario: string;
idCabecalhoPedido: string;
valor: number;
numeroParcelas: string;
numeroDoc: number;
dataVenc: number;
dhBaixa: string;
provisao: string;
tipoTitulo: string;
vlrDesdob: number;
vlrJuro: number;
vlrMulta: number;
vlrBaixa: number;
codStatus: number;
codModnf: number;
nossoNum: string;
dhCriacao: string;
dhAlteracao: string;
}

Componentes Relacionados

ComponenteDescricao
buildQueryParamsHelper para serializar parametros de query em requisicoes GET
apiWithoutAccessTokenInstancia Axios sem token de autenticacao

Casos de Uso

  • Buscar todos os titulos em aberto para sincronizacao local
  • Consultar pendencias financeiras em aberto de um cliente

Testes

Localizacao: services/open-title/open-title.service.test.ts

Principais cenarios

CenarioResultado esperado
fetchRemote status 200Retorna openTitleResponseMock.content
fetchRemote status 400Lanca OpenTitleService.fetchRemote failed
fetchRemoteByClient status 200Retorna openTitleResponseMock.content
fetchRemoteByClient status 400Lanca OpenTitleService.fetchRemoteByClient failed

Mocks

Localizacao: __mocks__/open-title.mock.ts

  • openTitleResponseMock - resposta paginada mockada com titulos em aberto

Instancia

Localizacao: services/open-title/open-title.service.instance.ts

import { openTitleService } from "@/services/open-title/open-title.service.instance";