Uecko_ERP/modules/customer-invoices/src/api/infrastructure/express/customer-invoices-api-error-mapper.ts

22 lines
915 B
TypeScript

// Ejemplo: regla específica para Billing → InvoiceIdAlreadyExistsError
// (si defines un error más ubicuo dentro del BC con su propia clase)
import { ApiErrorMapper, ConflictApiError, ErrorToApiRule } from "@erp/core/api";
import { CustomerInvoiceIdAlreadyExistsError } from "../../domain";
// Crea una regla específica (prioridad alta para sobreescribir mensajes)
const invoiceDuplicateRule: ErrorToApiRule = {
priority: 120,
matches: (e): e is CustomerInvoiceIdAlreadyExistsError =>
e instanceof CustomerInvoiceIdAlreadyExistsError,
build: (e) =>
new ConflictApiError(
(e as CustomerInvoiceIdAlreadyExistsError).message ||
"Invoice with the provided id already exists."
),
};
// Cómo aplicarla: crea una nueva instancia del mapper con la regla extra
export const customerInvoicesApiErrorMapper: ApiErrorMapper =
ApiErrorMapper.default().register(invoiceDuplicateRule);