1 // *************************************************************************
3 // * xCALLY Motion - The Omnichannel Contact Center *
4 // * Copyright (c) Xenialab s.r.l. All Rights Reserved *
6 // *************************************************************************
8 // * Email: info@xcally.com *
9 // * Website: https://www.xcally.com *
11 // *************************************************************************
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. *
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};