PricingTableService
Visão Geral
O PricingTableService é responsável por buscar tabelas de preço a partir da API remota. Suporta busca paginada com filtro por data e busca direta por IDs.
Endpoints
| Método | Endpoint | Descrição |
|---|---|---|
| GET | /tabelaPreco | Busca lista paginada de tabelas |
| GET | /tabelaPreco/{ids} | Busca tabelas de preço por IDs |
Métodos
fetchRemote
Busca tabelas de preço da API remota com suporte a paginação e filtro por data.
Parâmetros
| Nome | Tipo | Obrigatório |
|---|---|---|
page | number | Não |
size | number | Não |
dataHora | string | Não |
Retorno: Promise<PricingTable[]>
Exemplo
const tables = await pricingTableService.fetchRemote({ page: 0, size: 50 });
Erros
| Status | Descrição |
|---|---|
| 5xx | Lança Error: PricingTableService.fetchRemote failed: ... |
fetchRemoteByIds
Busca tabelas de preço específicas por uma string de IDs separados por vírgula.
Parâmetros
| Nome | Tipo | Obrigatório |
|---|---|---|
ids | string | Sim |
Retorno: Promise<PricingTable[]>
Exemplo
const tables = await pricingTableService.fetchRemoteByIds("tab1,tab2,tab3");
Erros
| Status | Descrição |
|---|---|
| 5xx | Lança Error: PricingTableService.fetchRemoteByIds failed: ... |
Estruturas de Dados
PricingTable
type PricingTable = {
id: string;
organizationId: string;
idExterno: string | null;
organizacao: string;
nomeTab: string;
};
FetchPricingTablesParams
type FetchPricingTablesParams = {
page?: number;
size?: number;
dataHora?: string;
};
Componentes Relacionados
| Componente | Descrição |
|---|---|
buildQueryParams | Serializa os parâmetros de query para a requisição |
apiWithoutAccessToken | Instância Axios sem token de acesso utilizada nas chamadas |
PageResponse<T> | Tipo genérico de resposta paginada da API |
Casos de Uso
Buscar todas as tabelas de preço:
const tables = await pricingTableService.fetchRemote();
Buscar tabelas atualizadas a partir de uma data:
const tables = await pricingTableService.fetchRemote({
page: 0,
size: 100,
dataHora: "2026-03-01T00:00:00",
});
Buscar tabelas específicas por IDs:
const tables = await pricingTableService.fetchRemoteByIds("tab1,tab2");
Testes
Localização: services/pricing-table/pricing-table.service.test.ts
| Cenário | Resultado esperado |
|---|---|
fetchRemote com status 200 | Retorna pricingTablePageResponseMock.content |
fetchRemote com status 500 | Lança Error: PricingTableService.fetchRemote failed |
fetchRemoteByIds com status 200 | Retorna pricingTablePageResponseMock.content |
fetchRemoteByIds com status 500 | Lança Error: PricingTableService.fetchRemoteByIds failed |
Mocks
Localização: __mocks__/pricing-table.mock.ts
const pricingTableResponseMock: PricingTable[] = [
{
id: "tab1",
organizationId: "org1",
idExterno: "ext1",
organizacao: "Distribuidora Alfa",
nomeTab: "Tabela Varejo 2026",
},
{
id: "tab2",
organizationId: "org2",
idExterno: null,
organizacao: "Supermercado Beta",
nomeTab: "Tabela Atacado Abril",
},
];