UNPKG

nodram

Version:
147 lines (107 loc) 3.68 kB
import {RResponse} from './RResponse'; import {logger} from "./Logger"; export class RError extends RResponse{ constructor(code : number, message : string); constructor(err: Error); constructor(code_err : any, message? : any){ let code : number = typeof code_err === "number" ? code_err : null; if(code_err instanceof Error) { let error = RError.handleError(code_err); code = error.code; message = error.message; } super(code,message); } public static handleError(err){ let code : number; let message : string; if (err.code) { switch (err.code) { case 11000: case 11001: code = 1103; message = "Email Already Exists"; break; case "ENOENT": code = 5001; message = "Internet Unavailable"; break; default: code = 500; message = err.message || "Service Unavailable"; } } else { if(!err.errors) { code = 500; message = err.message; } else { for (var errName in err.errors) { if (err.errors[errName].message) { code = RResponse.BAD_REQUEST; message = err.errors[errName].message; } else { code = 500; message = "Service Unavailable"; } } } } return {code : code, message : message}; } public static get UNKNOWN_USER(){ return new RError(1101, "Unknown User"); } public static get INVALID_PASSWORD(){ return new RError(1102, "Invalid Password"); } public static get EMAIL_EXISTS(){ return new RError(1103, "Email Already Exists"); } public static get EXPIRED(){ return new RError(1104, "Internet Unavailable"); } public static get ACCOUNT_UNCONFIRMED(){ return new RError(1105, "Account Unconfirmed"); } public static get UNKNOWN_APP(){ return new RError(1106, "Unknown App"); } public static get INSUFFICIENT_FUND(){ return new RError(1107, "Insufficient Fund"); } public static get SERVICE_UNAVAILABLE(){ return new RError(500, "Service Unavailable"); } public static get INTERNET_UNAVAILABLE(){ return new RError(5001, "Internet Unavailable"); } } function getErrorMessage(err): RError{ var error : RError; if(err instanceof RError) error = err else if (err.code) { switch (err.code) { case 11000: case 11001: error = RError.EMAIL_EXISTS; break; case "ENOENT": error = RError.INTERNET_UNAVAILABLE; break; default: error = RError.SERVICE_UNAVAILABLE; break; } } else { for (var errName in err.errors) { if (err.errors[errName].message) error = new RError(RResponse.BAD_REQUEST,err.errors[errName].message); else error = RError.SERVICE_UNAVAILABLE; } } return error; }