monitoring-app/src/packages/administrativo/services/Client/ClientDeleteService.ts

31 lines
1.5 KiB
TypeScript

'use server'
// Indica que este módulo será executado no lado do servidor (Server Action do Next.js)
import { withClientErrorHandler } from "@/withClientErrorHandler/withClientErrorHandler"
// Importa o decorador responsável por tratar erros de forma padronizada em funções assíncronas
import { ClientDeleteData } from "../../data/Client/ClientDeleteData"
// Importa a função responsável por realizar a operação real de exclusão do Cliente (camada de acesso a dados)
// Função principal que executa o processo de exclusão de um Cliente
async function executeClientDeleteService(usuarioId: number) {
// Validação básica: impede que IDs inválidos ou menores que 1 sejam processados
if (usuarioId <= 0) {
return {
'code': 400, // Código HTTP indicando requisição inválida
'message': 'Cliente informado inválido', // Mensagem de erro clara e descritiva
}
}
// Chama a função que realiza a exclusão no banco ou API, passando o ID do Cliente
const response = await ClientDeleteData(usuarioId)
// Retorna a resposta vinda da camada de dados, que pode conter status e mensagem
return response
}
// Exporta a função encapsulada com o tratador global de erros
export const ClientDeleteService = withClientErrorHandler(executeClientDeleteService)
// `withClientErrorHandler` garante que exceções não tratadas sejam capturadas e formatadas de forma uniforme
// Dessa forma, evita que erros internos quebrem o fluxo da aplicação