Built motion from commit 47436d59.|2.6.7
[motion2.git] / server / api / voiceExtension / voiceExtension.controller.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 _0x4735=['name','UserProfileResource','error','stack','index','map','VoiceExtension','rawAttributes','fieldName','key','model','query','keys','filters','intersection','fields','attributes','hasOwnProperty','sort','where','merge','VIRTUAL','options','includeAll','include','findAll','catch','params','create','body','startsWith','exten','concat','get','role','user','internal','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','pick','recordingFormat','cutdigits','alias','addApplications','sequelize','transaction','Transaction','ISOLATION_LEVELS','READ_COMMITTED','findOne','VoiceExtensionId','isApp','createRouting','bulkCreate','findAndCountAll','cast(priority\x20as\x20unsigned)','send','lodash','ioredis','../../components/parsers/qs','../../mysqldb','defaults','redis','localhost','socket.io-emitter','./voiceExtension.socket','register','sendStatus','status','end','json','offset','undefined','limit','count','set','Content-Range','destroy','then','InboundRoutes','inbound','OutboundRoutes','outbound','InternalRoutes','filter','ignore','value','includes','find','type'];(function(_0x296a34,_0x11dc78){var _0x2d668b=function(_0x3fc86e){while(--_0x3fc86e){_0x296a34['push'](_0x296a34['shift']());}};_0x2d668b(++_0x11dc78);}(_0x4735,0x14f));var _0x5473=function(_0x26cabe,_0x3fa64b){_0x26cabe=_0x26cabe-0x0;var _0x108aa1=_0x4735[_0x26cabe];return _0x108aa1;};'use strict';var _=require(_0x5473('0x0'));var Redis=require(_0x5473('0x1'));var qs=require(_0x5473('0x2'));var logger=require('../../config/logger')('api');var config=require('../../config/environment');var db=require(_0x5473('0x3'))['db'];config['redis']=_[_0x5473('0x4')](config[_0x5473('0x5')],{'host':_0x5473('0x6'),'port':0x18eb});var socket=require(_0x5473('0x7'))(new Redis(config[_0x5473('0x5')]));require(_0x5473('0x8'))[_0x5473('0x9')](socket);function respondWithStatusCode(_0x3dc44a,_0x55da41){_0x55da41=_0x55da41||0xcc;return function(_0x336416){if(_0x336416){return _0x3dc44a[_0x5473('0xa')](_0x55da41);}return _0x3dc44a[_0x5473('0xb')](_0x55da41)[_0x5473('0xc')]();};}function respondWithResult(_0x63963c,_0x588f1f){_0x588f1f=_0x588f1f||0xc8;return function(_0x1bc243){if(_0x1bc243){return _0x63963c['status'](_0x588f1f)[_0x5473('0xd')](_0x1bc243);}};}function respondWithFilteredResult(_0x1e559f,_0x28183d){return function(_0x338f3b){if(_0x338f3b){var _0x504644=typeof _0x28183d[_0x5473('0xe')]===_0x5473('0xf')&&typeof _0x28183d[_0x5473('0x10')]===_0x5473('0xf');var _0x1caeb5=_0x338f3b['count'];var _0x18d9c8=_0x504644?0x0:_0x28183d['offset'];var _0x169d31=_0x504644?_0x338f3b[_0x5473('0x11')]:_0x28183d['offset']+_0x28183d['limit'];var _0x9dbfbf;if(_0x169d31>=_0x1caeb5){_0x169d31=_0x1caeb5;_0x9dbfbf=0xc8;}else{_0x9dbfbf=0xce;}_0x1e559f[_0x5473('0xb')](_0x9dbfbf);return _0x1e559f[_0x5473('0x12')](_0x5473('0x13'),_0x18d9c8+'-'+_0x169d31+'/'+_0x1caeb5)[_0x5473('0xd')](_0x338f3b);}return null;};}function removeEntity(_0x5dd791){return function(_0x3fdedf){if(_0x3fdedf){return _0x3fdedf[_0x5473('0x14')]()[_0x5473('0x15')](function(){var _0x2f3835=_0x3fdedf['get']({'plain':!![]});var _0x57c28a=[{'name':_0x5473('0x16'),'value':_0x5473('0x17'),'ignore':![]},{'name':_0x5473('0x18'),'value':_0x5473('0x19'),'ignore':![]},{'name':_0x5473('0x1a'),'value':'internal','ignore':![]}];var _0x265f2d=_(_0x57c28a)[_0x5473('0x1b')](_0x5473('0x1c'))['map'](_0x5473('0x1d'))['value']();if(_[_0x5473('0x1e')](_0x265f2d,_0x2f3835['type'])){return;}var _0x13ae39=_[_0x5473('0x1f')](_0x57c28a,[_0x5473('0x1d'),_0x2f3835[_0x5473('0x20')]])[_0x5473('0x21')];return db[_0x5473('0x22')][_0x5473('0x14')]({'where':{'type':_0x13ae39,'resourceId':_0x2f3835['id']}})[_0x5473('0x15')](function(){return _0x3fdedf;});})['then'](function(){_0x5dd791[_0x5473('0xb')](0xcc)[_0x5473('0xc')]();});}};}function handleEntityNotFound(_0xbe55e0){return function(_0x47a9c2){if(!_0x47a9c2){_0xbe55e0['sendStatus'](0x194);}return _0x47a9c2;};}function handleError(_0x25f55f,_0x5a262f){_0x5a262f=_0x5a262f||0x1f4;return function(_0x3df270){logger[_0x5473('0x23')](_0x3df270[_0x5473('0x24')]);if(_0x3df270[_0x5473('0x21')]){delete _0x3df270[_0x5473('0x21')];}_0x25f55f[_0x5473('0xb')](_0x5a262f)['send'](_0x3df270);};}exports[_0x5473('0x25')]=function(_0x2169e9,_0x4bb378){var _0x1d0ba6={},_0x73cdfb={},_0x226a83={'count':0x0,'rows':[]};var _0x28ed3c=_[_0x5473('0x26')](db[_0x5473('0x27')][_0x5473('0x28')],function(_0x3ac6d4){return{'name':_0x3ac6d4[_0x5473('0x29')],'type':_0x3ac6d4[_0x5473('0x20')][_0x5473('0x2a')]};});_0x73cdfb[_0x5473('0x2b')]=_[_0x5473('0x26')](_0x28ed3c,_0x5473('0x21'));_0x73cdfb[_0x5473('0x2c')]=_[_0x5473('0x2d')](_0x2169e9[_0x5473('0x2c')]);_0x73cdfb[_0x5473('0x2e')]=_[_0x5473('0x2f')](_0x73cdfb[_0x5473('0x2b')],_0x73cdfb['query']);_0x1d0ba6['attributes']=_[_0x5473('0x2f')](_0x73cdfb['model'],qs[_0x5473('0x30')](_0x2169e9[_0x5473('0x2c')]['fields']));_0x1d0ba6['attributes']=_0x1d0ba6[_0x5473('0x31')]['length']?_0x1d0ba6[_0x5473('0x31')]:_0x73cdfb[_0x5473('0x2b')];if(!_0x2169e9[_0x5473('0x2c')][_0x5473('0x32')]('nolimit')){_0x1d0ba6[_0x5473('0x10')]=qs[_0x5473('0x10')](_0x2169e9['query'][_0x5473('0x10')]);_0x1d0ba6[_0x5473('0xe')]=qs[_0x5473('0xe')](_0x2169e9[_0x5473('0x2c')][_0x5473('0xe')]);}_0x1d0ba6['order']=qs[_0x5473('0x33')](_0x2169e9[_0x5473('0x2c')][_0x5473('0x33')]);_0x1d0ba6[_0x5473('0x34')]=qs[_0x5473('0x2e')](_['pick'](_0x2169e9[_0x5473('0x2c')],_0x73cdfb[_0x5473('0x2e')]),_0x28ed3c);if(_0x2169e9[_0x5473('0x2c')][_0x5473('0x1b')]){_0x1d0ba6[_0x5473('0x34')]=_[_0x5473('0x35')](_0x1d0ba6['where'],{'$or':_['map'](_0x28ed3c,function(_0x5165ba){if(_0x5165ba['type']!==_0x5473('0x36')){var _0xc3716e={};_0xc3716e[_0x5165ba[_0x5473('0x21')]]={'$like':'%'+_0x2169e9[_0x5473('0x2c')][_0x5473('0x1b')]+'%'};return _0xc3716e;}})});}_0x1d0ba6=_[_0x5473('0x35')]({},_0x1d0ba6,_0x2169e9[_0x5473('0x37')]);var _0x5bede4={'where':_0x1d0ba6['where']};return db[_0x5473('0x27')]['count'](_0x5bede4)[_0x5473('0x15')](function(_0xbaad56){_0x226a83[_0x5473('0x11')]=_0xbaad56;if(_0x2169e9[_0x5473('0x2c')][_0x5473('0x38')]){_0x1d0ba6[_0x5473('0x39')]=[{'all':!![]}];}return db[_0x5473('0x27')][_0x5473('0x3a')](_0x1d0ba6);})[_0x5473('0x15')](function(_0x23b202){_0x226a83['rows']=_0x23b202;return _0x226a83;})[_0x5473('0x15')](respondWithFilteredResult(_0x4bb378,_0x1d0ba6))[_0x5473('0x3b')](handleError(_0x4bb378,null));};exports['show']=function(_0x2edb75,_0x182bcb){var _0x1cbe67={'raw':![],'where':{'id':_0x2edb75[_0x5473('0x3c')]['id']}},_0x3e85f5={};_0x3e85f5[_0x5473('0x2b')]=_[_0x5473('0x2d')](db[_0x5473('0x27')][_0x5473('0x28')]);_0x3e85f5[_0x5473('0x2c')]=_['keys'](_0x2edb75[_0x5473('0x2c')]);_0x3e85f5[_0x5473('0x2e')]=_['intersection'](_0x3e85f5[_0x5473('0x2b')],_0x3e85f5[_0x5473('0x2c')]);_0x1cbe67[_0x5473('0x31')]=_[_0x5473('0x2f')](_0x3e85f5[_0x5473('0x2b')],qs['fields'](_0x2edb75[_0x5473('0x2c')][_0x5473('0x30')]));_0x1cbe67[_0x5473('0x31')]=_0x1cbe67[_0x5473('0x31')]['length']?_0x1cbe67[_0x5473('0x31')]:_0x3e85f5[_0x5473('0x2b')];if(_0x2edb75[_0x5473('0x2c')][_0x5473('0x38')]){_0x1cbe67[_0x5473('0x39')]=[{'all':!![]}];}_0x1cbe67=_['merge']({},_0x1cbe67,_0x2edb75[_0x5473('0x37')]);return db[_0x5473('0x27')][_0x5473('0x1f')](_0x1cbe67)['then'](handleEntityNotFound(_0x182bcb,null))[_0x5473('0x15')](respondWithResult(_0x182bcb,null))[_0x5473('0x3b')](handleError(_0x182bcb,null));};exports[_0x5473('0x14')]=function(_0xfe913,_0x37c8e0){return db[_0x5473('0x27')][_0x5473('0x1f')]({'where':{'id':_0xfe913[_0x5473('0x3c')]['id']}})[_0x5473('0x15')](handleEntityNotFound(_0x37c8e0,null))[_0x5473('0x15')](removeEntity(_0x37c8e0,null))[_0x5473('0x3b')](handleError(_0x37c8e0,null));};exports[_0x5473('0x3d')]=function(_0x27b0ed,_0x42a124){if(_0x27b0ed[_0x5473('0x3e')][_0x5473('0x20')]===_0x5473('0x19')&&!_[_0x5473('0x3f')](_0x27b0ed[_0x5473('0x3e')][_0x5473('0x40')],'_')){_0x27b0ed[_0x5473('0x3e')]['exten']='_'[_0x5473('0x41')](_0x27b0ed[_0x5473('0x3e')][_0x5473('0x40')]);}return db[_0x5473('0x27')][_0x5473('0x3d')](_0x27b0ed[_0x5473('0x3e')],{'raw':![]})[_0x5473('0x15')](function(_0x526357){var _0xf4360b=_0x27b0ed['user'][_0x5473('0x42')]({'plain':!![]});if(!_0xf4360b)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0xf4360b[_0x5473('0x43')]===_0x5473('0x44')){var _0xa8e55f=_0x526357[_0x5473('0x42')]({'plain':!![]});var _0x51f4d7=[{'name':'InboundRoutes','value':_0x5473('0x17')},{'name':_0x5473('0x18'),'value':'outbound'},{'name':_0x5473('0x1a'),'value':_0x5473('0x45')}];var _0x3312c5=_[_0x5473('0x1f')](_0x51f4d7,[_0x5473('0x1d'),_0xa8e55f['type']])['name'];return db['UserProfileSection'][_0x5473('0x1f')]({'where':{'name':_0x3312c5,'userProfileId':_0xf4360b[_0x5473('0x46')]},'raw':!![]})[_0x5473('0x15')](function(_0x4f19b0){if(_0x4f19b0&&_0x4f19b0[_0x5473('0x47')]===0x0){return db[_0x5473('0x22')][_0x5473('0x3d')]({'name':_0xa8e55f['name'],'resourceId':_0xa8e55f['id'],'type':_0x4f19b0[_0x5473('0x21')],'sectionId':_0x4f19b0['id']},{})[_0x5473('0x15')](function(){return _0x526357;});}else{return _0x526357;}})['catch'](function(_0x5918ff){logger['error'](_0x5473('0x48'),_0x5918ff);throw _0x5918ff;});}return _0x526357;})[_0x5473('0x15')](respondWithResult(_0x42a124,0xc9))['catch'](handleError(_0x42a124,null));};exports[_0x5473('0x49')]=function(_0x38c5be,_0x4df165){if(_0x38c5be[_0x5473('0x3e')]['id']){delete _0x38c5be[_0x5473('0x3e')]['id'];}return db[_0x5473('0x27')][_0x5473('0x1f')]({'where':{'id':_0x38c5be[_0x5473('0x3c')]['id']}})[_0x5473('0x15')](handleEntityNotFound(_0x4df165,null))[_0x5473('0x15')](function(_0x5a96d8){if(_0x5a96d8){return db[_0x5473('0x27')][_0x5473('0x49')](_[_0x5473('0x4a')](_0x38c5be[_0x5473('0x3e')],[_0x5473('0x40'),'context','description',_0x5473('0x4b'),_0x5473('0x4c'),'mandatoryDisposition',_0x5473('0x4d')]),{'where':{'context':_0x5a96d8['context'],'exten':_0x5a96d8[_0x5473('0x40')]},'individualHooks':!![]})[_0x5473('0x15')](function(_0x58e8bb){return _0x58e8bb;});}return null;})['then'](respondWithStatusCode(_0x4df165,null))[_0x5473('0x3b')](handleError(_0x4df165,null));};exports[_0x5473('0x4e')]=function(_0x33482e,_0x253553){var _0x3151ad=_0x33482e[_0x5473('0x3c')]['id'];var _0x3d0b93=_0x33482e[_0x5473('0x3e')];var _0x528eac=0xc8;var _0x507a51=null;return db[_0x5473('0x4f')][_0x5473('0x50')]({'isolationLevel':db[_0x5473('0x4f')][_0x5473('0x51')][_0x5473('0x52')][_0x5473('0x53')]},function(_0x2f3a70){return db['VoiceExtension'][_0x5473('0x54')]({'where':{'id':_0x3151ad},'transaction':_0x2f3a70})[_0x5473('0x15')](function(_0x276581){if(_0x276581){return db['VoiceExtension']['destroy']({'where':{'VoiceExtensionId':_0x3151ad},'transaction':_0x2f3a70})['then'](function(){var _0x2ac37f=_['map'](_0x3d0b93,function(_0x3de2a4){_0x3de2a4[_0x5473('0x55')]=_0x3151ad;_0x3de2a4[_0x5473('0x56')]=!![];return _0x3de2a4;});return _0x276581[_0x5473('0x57')](_0x2ac37f);})[_0x5473('0x15')](function(_0x36bc1d){return db[_0x5473('0x27')][_0x5473('0x58')](_0x36bc1d,{'transaction':_0x2f3a70});});}else{_0x528eac=0x194;_0x507a51=[];}});})[_0x5473('0x15')](function(){if(_0x528eac!==0x194){return db[_0x5473('0x27')][_0x5473('0x59')]({'where':{'isApp':!![],'VoiceExtensionId':_0x3151ad},'order':_0x5473('0x5a')})[_0x5473('0x15')](function(_0x342fd8){_0x507a51=_0x342fd8;});}})[_0x5473('0x3b')](function(_0x5b7a8c){_0x528eac=0x1f4;logger[_0x5473('0x23')](_0x5b7a8c['stack']);if(_0x5b7a8c[_0x5473('0x21')]){delete _0x5b7a8c['name'];}_0x507a51=_0x5b7a8c;})['finally'](function(){if(_0x507a51===null){_0x253553['sendStatus'](_0x528eac);}else{if(_0x528eac===0x1f4){_0x253553[_0x5473('0xb')](_0x528eac)[_0x5473('0x5b')](_0x507a51);}else{_0x253553[_0x5473('0xb')](_0x528eac)['json'](_0x507a51);}}});};