22 lines
915 B
TypeScript
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);
|