c1755030a4aecf44cc49e4f472cdc3f9742537db
[motion2.git] / server / errors / api.js
1 // *************************************************************************
2 // *                                                                       *
3 // * xCALLY Motion -  The Omnichannel Contact Center                       *
4 // * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
5 // *                                                                       *
6 // *************************************************************************
7 // *                                                                       *
8 // * Email: info@xcally.com                                                *
9 // * Website: https://www.xcally.com                                       *
10 // *                                                                       *
11 // *************************************************************************
12 // *                                                                       *
13 // * The SOFTWARE PRODUCT is protected by copyright laws and international *
14 // * copyright treaties, as well as other intellectual property laws and   *
15 // * treaties. The SOFTWARE PRODUCT is licensed, not sold.                         *
16 // *                                                                       *
17 // *************************************************************************
18 var _0x067b=['Not\x20Found','Message\x20sent\x20outside\x20a\x20valid\x20interval','Out\x20Of\x20Interval','code','details','OutOfInterval','Resource\x20Conflict','Conflict','error','stack','statusMessage','status','send','util','../config/logger','Internal\x20Server\x20Error','name','Error','inherits','Bad\x20Request','Forbidden','message','Entity\x20not\x20found'];(function(_0x1e2b91,_0x4360f0){var _0x40f517=function(_0xf18c1e){while(--_0xf18c1e){_0x1e2b91['push'](_0x1e2b91['shift']());}};_0x40f517(++_0x4360f0);}(_0x067b,0x1ab));var _0xb067=function(_0xa127b7,_0x2503a5){_0xa127b7=_0xa127b7-0x0;var _0x5e1ad3=_0x067b[_0xa127b7];return _0x5e1ad3;};'use strict';var util=require(_0xb067('0x0'));var logger=require(_0xb067('0x1'))('api');var APIError=function(_0x314a0a,_0x56c732){this['message']=_0x314a0a||_0xb067('0x2');this[_0xb067('0x3')]=_0x56c732||_0xb067('0x4');util[_0xb067('0x5')](APIError,Error);};var APIBadRequestError=function(_0x5f4646){this['message']=_0x5f4646||_0xb067('0x6');this[_0xb067('0x3')]=_0xb067('0x6');util[_0xb067('0x5')](APIBadRequestError,APIError);};var APIForbiddenError=function(_0x4af436){this['message']=_0x4af436||_0xb067('0x7');this[_0xb067('0x3')]=_0xb067('0x7');util[_0xb067('0x5')](APIForbiddenError,APIError);};var APINotFoundError=function(_0x4c0783){this[_0xb067('0x8')]=_0x4c0783||_0xb067('0x9');this[_0xb067('0x3')]=_0xb067('0xa');util[_0xb067('0x5')](APINotFoundError,APIError);};var APIOutOfIntervalError=function(_0x52b301){this['message']=_0x52b301||_0xb067('0xb');this[_0xb067('0x3')]=_0xb067('0xc');this[_0xb067('0xd')]=0x193;this[_0xb067('0xe')]={'type':_0xb067('0xf')};util['inherits'](APIOutOfIntervalError,APIError);};var APIConflictError=function(_0x4ce4ec){this[_0xb067('0x8')]=_0x4ce4ec||_0xb067('0x10');this[_0xb067('0x3')]=_0xb067('0x11');util[_0xb067('0x5')](APIBadRequestError,APIError);};function getStatusCode(_0x378c1c){switch(_0x378c1c){case _0xb067('0x6'):return 0x190;case _0xb067('0x7'),_0xb067('0xc'):return 0x193;case _0xb067('0xa'):return 0x194;case _0xb067('0x11'):return 0x199;default:return 0x1f4;}}function getCustomStatusMessage(_0x23ec4e){if(_0x23ec4e==='Out\x20Of\x20Interval')return _0x23ec4e;return null;}function handleError(_0xeb72e2){return function(_0x6f0ece){logger[_0xb067('0x12')](_0x6f0ece[_0xb067('0x13')]);var _0x157a6d=getStatusCode(_0x6f0ece['name']);var _0x21a25f=getCustomStatusMessage(_0x6f0ece[_0xb067('0x3')]);if(_0x6f0ece['name']){delete _0x6f0ece[_0xb067('0x3')];}if(_0x21a25f){_0xeb72e2[_0xb067('0x14')]=_0x21a25f;}return _0xeb72e2[_0xb067('0x15')](_0x157a6d)[_0xb067('0x16')](_0x6f0ece);};}module['exports']={'APIError':APIError,'APIBadRequestError':APIBadRequestError,'APIForbiddenError':APIForbiddenError,'APINotFoundError':APINotFoundError,'APIOutOfIntervalError':APIOutOfIntervalError,'APIConflict':APIConflictError,'handleError':handleError};