Newer
Older
percord / api / src / util / ApiError.ts
export class ApiError extends Error {
    constructor(readonly message: string, public readonly code: number, public readonly httpStatus: number = 400, public readonly defaultParams?: string[]) {
        super(message);
    }

    withDefaultParams(): ApiError {
        if(this.defaultParams)
            return new ApiError(applyParamsToString(this.message, this.defaultParams), this.code, this.httpStatus)
        return this
    }

    withParams(...params: string[]): ApiError {
        return new ApiError(applyParamsToString(this.message, params), this.code, this.httpStatus)
    }
}

export function applyParamsToString(s: string, params: string[]): string {
    let newString = s
    params.forEach(a => {
        newString = newString.replace("{}", a)
    })
    return newString
}