ActivityTypeService
Visão Geral
O ActivityTypeService busca os tipos de atividade (check-in) disponíveis na API remota. É usado para popular selects, filtros e validações que dependem da lista de tipos de atividade.
Localização: services/activity-type/activity-type.service.ts
Endpoints
| Método | Endpoint | Descrição |
|---|---|---|
| GET | /tipoAtividadeCheckin | Busca lista paginada de tipos |
Métodos
fetchRemote(params)
Busca os tipos de atividade com paginação e suporte a sincronização incremental.
Parâmetros
| Nome | Tipo | Obrigatório |
|---|---|---|
page | number | Não |
size | number | Não |
dataHora | string | Não |
Retorno: Promise<ActivityType[]>
Exemplo
const types = await activityTypeService.fetchRemote({ page: 0, size: 50 });
Erros
| Status | Descrição |
|---|---|
| 5xx | Lança Error: ActivityTypeService.fetchRemote failed: {status} |
Estruturas de Dados
ActivityType
interface ActivityType {
id: string;
idOrganization: string;
nome: string;
ativo: "S" | "N";
}
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
Popular Select de Tipos de Atividade:
const types = await activityTypeService.fetchRemote();
// usar types.map(t => ({ label: t.nome, value: t.id }))
Sincronização incremental:
const updated = await activityTypeService.fetchRemote({
dataHora: "2026-03-01T00:00:00",
});
Testes
Localização: services/activity-type/activity-type.service.test.ts
| Cenário | Resultado esperado |
|---|---|
fetchRemote com status 200 | Retorna activityTypeResponseMock.content |
fetchRemote com status 500 | Lança Error: ActivityTypeService.fetchRemote failed: 500 |
Mocks
Localização: __mocks__/activity-type.mock.ts
activityTypeResponseMock— objeto de resposta paginada comcontente metadados
Exemplo de uso em testes:
import { activityTypeResponseMock } from "@/__mocks__/activity-type.mock";
const api: any = {
get: jest.fn(async () => ({ status: 200, data: activityTypeResponseMock })),
};
const service = new ActivityTypeService({ apiWithoutAccessToken: api });
const result = await service.fetchRemote();
expect(result).toStrictEqual(activityTypeResponseMock.content);