39 lines
1.6 KiB
TypeScript
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);
|