monitoring-app/src/packages/administrativo/data/Client/ClientIndexData.ts

39 lines
1.6 KiB
TypeScript

'use server';
// Indica que este módulo será executado no lado do servidor (Server Action do Next.js)
import { Methods } from '@/shared/services/api/enums/ApiMethodEnum';
// Importa o enum com os tipos de métodos HTTP disponíveis (GET, POST, PUT, DELETE...)
import API from '@/shared/services/api/Api';
// Importa a classe responsável por centralizar chamadas à API (wrapper de fetch ou axios)
import { withClientErrorHandler } from '@/withClientErrorHandler/withClientErrorHandler';
// Importa um decorador/função HOC que trata erros de forma padronizada nas requisições
/**
* Função principal responsável por buscar a lista de clientes na API.
* Executa uma requisição HTTP GET para o endpoint administrativo/client.
*/
async function executeClientIndexData() {
// Instancia o serviço de API para uso nesta função
const api = new API();
// Executa uma requisição GET para o endpoint administrativo/client/
// - Usa o método 'send' da classe API
// - Passa o método HTTP e o endpoint como parâmetros
const response = await api.send({
method: Methods.GET, // Método HTTP GET
endpoint: `administrativo/client/`, // Rota da API que retorna a lista de clientes
});
// Retorna a resposta obtida da API
return response;
}
/**
* Exporta a função encapsulada com o handler de erro.
* Caso ocorra falha na requisição, o withClientErrorHandler
* intercepta o erro e o trata de forma uniforme (ex: logging, toast, etc.)
*/
export const ClientIndexData = withClientErrorHandler(executeClientIndexData);