UNPKG

@villedemontreal/general-utils

Version:
90 lines 3.57 kB
import { ApiErrorAndInfo, IApiError, IApiInnerError } from './apiError'; import { LogLevel } from './logLevel'; /** * Builder to create errors. */ export declare class ErrorBuilder { private _code; private _logMessage; private _publicMessage; private _target; private _details; private _innererror; private _httpStatus; private _logLevel; private _logStackTrace; /** * Constructor * The error node and log message are mandatory. */ constructor(code: string, logMessage: any); publicMessage: (publicMessage: string) => ErrorBuilder; target: (target: string) => ErrorBuilder; details: (details: IApiError[]) => ErrorBuilder; addDetail: (detail: IApiError) => ErrorBuilder; innererror: (innererror: IApiInnerError) => ErrorBuilder; httpStatus: (httpStatus: number) => ErrorBuilder; logLevel: (logLevel: LogLevel) => ErrorBuilder; logStackTrace: (logStackTrace: boolean) => ErrorBuilder; /** * Builds the error! */ build: () => ApiErrorAndInfo; } /** * ErrorBuilder Type Guard */ export declare const isErrorBuilder: (obj: any) => obj is ErrorBuilder; /** * Starts a builder to create an error. */ export declare function createError(code: string, logMessage: any): ErrorBuilder; /** * Easily creates a generic internal server error (500) * * The log message is mandatory. */ export declare function createServerError(logMessage: any, publicMessage?: string): ApiErrorAndInfo; /** * Easily creates a Not Found error (404) * * @param logMessage The message to log. * @param publicMessage The message to return in the error. * @param logLevel The log level to use. * @param logStackTrace Should the stack trace be logged? */ export declare function createNotFoundError(logMessage: any, publicMessage?: string, logLevel?: LogLevel, logStackTrace?: boolean): ApiErrorAndInfo; /** * Easily creates an invalid parameter error (400) * * @param publicMessage The message to return in the error (will also be logged). * @param details Some additional information about the validation that failed. * @param logLevel The log level to use. * @param logStackTrace Should the stack trace be logged? */ export declare function createInvalidParameterError(publicMessage: string, details?: IApiError[], logLevel?: LogLevel, logStackTrace?: boolean): ApiErrorAndInfo; /** * Easily creates an unprocessable entity error (422) * * @param publicMessage The message to return in the error (will also be logged). * @param details Some additional information about the validation that failed. * @param logLevel The log level to use. * @param logStackTrace Should the stack trace be logged? */ export declare function createUnprocessableEntityError(publicMessage: string, details?: IApiError[], logLevel?: LogLevel, logStackTrace?: boolean): ApiErrorAndInfo; /** * Easily creates an "Not Implemented" error (501) */ export declare function createNotImplementedError(logMessage?: any, publicMessage?: string): ApiErrorAndInfo; /** * Easily creates an "Unauthorized" error (401). To throw when * the user *is not authenticated*. */ export declare function createUnauthorizedError(logMessage?: any, publicMessage?: string): ApiErrorAndInfo; /** * Easily creates a "Forbidden" error (403). To throw when * the user is authenticated but doesn't have sufficient * rights to access the requested resource. */ export declare function createForbiddenError(logMessage?: any, publicMessage?: string): ApiErrorAndInfo; //# sourceMappingURL=apiErrorBuilder.d.ts.map