refacto: error and error codes in services

This commit is contained in:
Julien Froidefond
2025-02-25 06:39:19 +01:00
parent d4871d1afb
commit 4b710cbac2
16 changed files with 389 additions and 125 deletions

34
src/utils/errors.ts Normal file
View File

@@ -0,0 +1,34 @@
import { ERROR_MESSAGES } from "../constants/errorMessages";
import { ErrorCode } from "../constants/errorCodes";
export class AppError extends Error {
constructor(
public code: ErrorCode,
public params: Record<string, string | number> = {},
public originalError?: unknown
) {
let message = ERROR_MESSAGES[code];
// Replace parameters in message
Object.entries(params).forEach(([key, value]) => {
message = message.replace(`{${key}}`, String(value));
});
super(message);
this.name = "AppError";
}
}
export const getErrorMessage = (
code: ErrorCode,
params: Record<string, string | number> = {}
): string => {
let message = ERROR_MESSAGES[code];
// Replace parameters in message
Object.entries(params).forEach(([key, value]) => {
message = message.replace(`{${key}}`, String(value));
});
return message;
};