Pular para o conteúdo principal

AliquotService

Visao Geral

O AliquotService fornece operacoes para buscar aliquotas no backend de forma paginada.

Localizacao: services/aliquot/aliquot.service.ts

Endpoints

MetodoEndpointDescricao
GET/aliquotaLista aliquotas com paginacao

Metodos

fetchRemote(params)

Busca aliquotas de forma paginada.

Parametros

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

Retorno: Promise<Aliquot[]>

Exemplo

const aliquots = await aliquotService.fetchRemote({
page: 0,
size: 999,
});

console.log(aliquots[0].codTrib); // "ICMS"

Erros

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

Estruturas de Dados

Aliquot

interface Aliquot {
id: string;
idExterno: string;
aliquota: number;
aliqSubTrib: number;
codTrib: string;
margLucro: number;
baseStRed: string;
outorga: number;
dhCriacao: string;
dhAlteracao: string;
}

PageResponse<T>

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

Componentes Relacionados

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

Casos de Uso

  • Buscar aliquotas para compor calculos fiscais no app
  • Sincronizar dados fiscais para uso offline

Testes

Localizacao: services/aliquot/aliquot.service.test.ts

Principais cenarios

CenarioResultado esperado
fetchRemote status 200Retorna aliquotResponseMock.content
fetchRemote status 400Lanca AliquotService.fetchRemote failed

Mocks

Localizacao: __mocks__/aliquot.mock.ts

  • aliquotResponseMock - resposta paginada mockada com aliquotas

Instancia

Localizacao: services/aliquot/aliquot.service.instance.ts

import { aliquotService } from '@/services/aliquot/aliquot.service.instance';