Built motion from commit c738b9ac.|2.6.25
[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 _0x0329=['stack','status','send','../config/logger','name','Error','inherits','Bad\x20Request','message','Forbidden','Entity\x20not\x20found','Message\x20sent\x20outside\x20a\x20valid\x20interval','Out\x20Of\x20Interval','code','details','OutOfInterval','Resource\x20Conflict','Conflict','Not\x20Found'];(function(_0x5f5d1e,_0x1e385c){var _0x20fd18=function(_0x12ff8d){while(--_0x12ff8d){_0x5f5d1e['push'](_0x5f5d1e['shift']());}};_0x20fd18(++_0x1e385c);}(_0x0329,0x192));var _0x9032=function(_0x4c4037,_0x15054b){_0x4c4037=_0x4c4037-0x0;var _0x357862=_0x0329[_0x4c4037];return _0x357862;};'use strict';var util=require('util');var logger=require(_0x9032('0x0'))('api');var APIError=function(_0x458a71,_0x295ba1){this['message']=_0x458a71||'Internal\x20Server\x20Error';this[_0x9032('0x1')]=_0x295ba1||_0x9032('0x2');util[_0x9032('0x3')](APIError,Error);};var APIBadRequestError=function(_0x1c6315){this['message']=_0x1c6315||_0x9032('0x4');this[_0x9032('0x1')]=_0x9032('0x4');util[_0x9032('0x3')](APIBadRequestError,APIError);};var APIForbiddenError=function(_0x22692b){this[_0x9032('0x5')]=_0x22692b||_0x9032('0x6');this[_0x9032('0x1')]=_0x9032('0x6');util[_0x9032('0x3')](APIForbiddenError,APIError);};var APINotFoundError=function(_0x4d451d){this['message']=_0x4d451d||_0x9032('0x7');this['name']='Not\x20Found';util['inherits'](APINotFoundError,APIError);};var APIOutOfIntervalError=function(_0xb903ba){this[_0x9032('0x5')]=_0xb903ba||_0x9032('0x8');this['name']=_0x9032('0x9');this[_0x9032('0xa')]=0x193;this[_0x9032('0xb')]={'type':_0x9032('0xc')};util[_0x9032('0x3')](APIOutOfIntervalError,APIError);};var APIConflictError=function(_0x1f1605){this['message']=_0x1f1605||_0x9032('0xd');this[_0x9032('0x1')]=_0x9032('0xe');util[_0x9032('0x3')](APIBadRequestError,APIError);};function getStatusCode(_0x5043e0){switch(_0x5043e0){case _0x9032('0x4'):return 0x190;case'Forbidden',_0x9032('0x9'):return 0x193;case _0x9032('0xf'):return 0x194;case _0x9032('0xe'):return 0x199;default:return 0x1f4;}}function getCustomStatusMessage(_0x455677){if(_0x455677===_0x9032('0x9'))return _0x455677;return null;}function handleError(_0x8249f6){return function(_0x3369d0){logger['error'](_0x3369d0[_0x9032('0x10')]);var _0x331b18=getStatusCode(_0x3369d0[_0x9032('0x1')]);var _0x1bcd02=getCustomStatusMessage(_0x3369d0[_0x9032('0x1')]);if(_0x3369d0['name']){delete _0x3369d0['name'];}if(_0x1bcd02){_0x8249f6['statusMessage']=_0x1bcd02;}return _0x8249f6[_0x9032('0x11')](_0x331b18)[_0x9032('0x12')](_0x3369d0);};}module['exports']={'APIError':APIError,'APIBadRequestError':APIBadRequestError,'APIForbiddenError':APIForbiddenError,'APINotFoundError':APINotFoundError,'APIOutOfIntervalError':APIOutOfIntervalError,'APIConflict':APIConflictError,'handleError':handleError};