Pular para o conteúdo principal

OperationsGroupService

Visão Geral

O OperationsGroupService fornece acesso aos grupos de operações configurados na API (por exemplo: grupos de entrada, saída, transferência, ajuste). É usado para listar grupos e seus tipos de operação associados, com suporte a paginação.

Localização: services/operations-group/operations-group.service.ts

Endpoints

MétodoEndpointDescrição
GET/gruposOperacaoBusca lista paginada de grupos

Métodos

fetchRemote(params)

Busca grupos de operação na API remota com paginação.

Parâmetros

NomeTipoObrigatório
pagenumberNão
sizenumberNão

Retorno: Promise<OperationsGroup[]>

Exemplo

const groups = await operationsGroupService.fetchRemote({ page: 0, size: 50 });

Erros

StatusDescrição
5xxLança Error: OperationsGroupService.fetchRemote failed: {status}

Estruturas de Dados

OperationsGroup

interface OperationsGroup {
id: string;
nome: string;
idOrganization: string;
typeOperations: Array<{ id: string; idExterno?: string; nome: string }>;
dhCriacao: string;
dhAlteracao: string;
}
  • typeOperations contém uma lista dos tipos de operação pertencentes ao grupo (apenas id, idExterno e nome são utilizados na resposta mock).

Componentes Relacionados

ComponenteDescrição
buildQueryParamsSerializa os parâmetros de query para a requisição
apiWithoutAccessTokenInstância Axios sem token de acesso utilizada nas chamadas
PageResponse<T>Tipo genérico de resposta paginada da API

Casos de Uso

Listar todos os grupos de operações:

const groups = await operationsGroupService.fetchRemote();
console.log(groups.length);

Popular select de grupos e tipos de operação:

const groups = await operationsGroupService.fetchRemote();
const options = groups.map((g) => ({
label: g.nome,
value: g.id,
children: g.typeOperations.map((t) => ({ label: t.nome, value: t.id })),
}));

Testes

Localização: services/operations-group/operations-group.service.test.ts

CenárioResultado esperado
fetchRemote com status 200Retorna operationsGroupResponseMock.content
fetchRemote com status 500Lança Error: OperationsGroupService.fetchRemote failed

Mocks

Localização: __mocks__/operations-group.mock.ts

  • operationsGroupResponseMock — objeto paginado com content (lista de OperationsGroup) e metadados de paginação.

Exemplo de uso em testes:

import { operationsGroupResponseMock } from "@/__mocks__/operations-group.mock";

const api: any = {
get: jest.fn(async () => ({
status: 200,
data: operationsGroupResponseMock,
})),
};
const service = new OperationsGroupService({ apiWithoutAccessToken: api });
const result = await service.fetchRemote();
expect(result).toStrictEqual(operationsGroupResponseMock.content);

Instância

Localização: services/operations-group/operations-group.service.instance.ts

import { operationsGroupService } from "@/services/operations-group/operations-group.service.instance";