Built motion from commit fe909640.|2.6.8
[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 _0x56cd=['../../config/environment','../../mysqldb','redis','defaults','localhost','socket.io-emitter','./voiceExtension.socket','register','sendStatus','status','end','json','offset','count','limit','set','Content-Range','then','get','InboundRoutes','OutboundRoutes','outbound','internal','filter','ignore','map','value','find','type','destroy','error','stack','name','send','index','VoiceExtension','rawAttributes','key','model','query','attributes','intersection','fields','length','order','sort','where','filters','pick','VIRTUAL','merge','options','includeAll','include','findAll','catch','show','params','keys','create','body','startsWith','exten','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','inbound','UserProfileSection','autoAssociation','UserProfileResource','update','context','description','recordingFormat','cutdigits','addApplications','sequelize','transaction','Transaction','ISOLATION_LEVELS','READ_COMMITTED','findOne','isApp','createRouting','bulkCreate','finally','lodash','ioredis','../../components/parsers/qs','../../config/logger','api'];(function(_0x4931f6,_0x434de8){var _0x4efb0d=function(_0x59e7eb){while(--_0x59e7eb){_0x4931f6['push'](_0x4931f6['shift']());}};_0x4efb0d(++_0x434de8);}(_0x56cd,0x10c));var _0xd56c=function(_0x565c49,_0x54acd0){_0x565c49=_0x565c49-0x0;var _0x20ca34=_0x56cd[_0x565c49];return _0x20ca34;};'use strict';var _=require(_0xd56c('0x0'));var Redis=require(_0xd56c('0x1'));var qs=require(_0xd56c('0x2'));var logger=require(_0xd56c('0x3'))(_0xd56c('0x4'));var config=require(_0xd56c('0x5'));var db=require(_0xd56c('0x6'))['db'];config[_0xd56c('0x7')]=_[_0xd56c('0x8')](config[_0xd56c('0x7')],{'host':_0xd56c('0x9'),'port':0x18eb});var socket=require(_0xd56c('0xa'))(new Redis(config[_0xd56c('0x7')]));require(_0xd56c('0xb'))[_0xd56c('0xc')](socket);function respondWithStatusCode(_0x24bb11,_0x4504b9){_0x4504b9=_0x4504b9||0xcc;return function(_0x27eef2){if(_0x27eef2){return _0x24bb11[_0xd56c('0xd')](_0x4504b9);}return _0x24bb11[_0xd56c('0xe')](_0x4504b9)[_0xd56c('0xf')]();};}function respondWithResult(_0x3397a1,_0x273cba){_0x273cba=_0x273cba||0xc8;return function(_0x298d80){if(_0x298d80){return _0x3397a1[_0xd56c('0xe')](_0x273cba)[_0xd56c('0x10')](_0x298d80);}};}function respondWithFilteredResult(_0x4f7434,_0x50e94a){return function(_0x54c3ed){if(_0x54c3ed){var _0x44e5f8=typeof _0x50e94a[_0xd56c('0x11')]==='undefined'&&typeof _0x50e94a['limit']==='undefined';var _0x4c63e7=_0x54c3ed[_0xd56c('0x12')];var _0x278829=_0x44e5f8?0x0:_0x50e94a[_0xd56c('0x11')];var _0x4c68bf=_0x44e5f8?_0x54c3ed[_0xd56c('0x12')]:_0x50e94a[_0xd56c('0x11')]+_0x50e94a[_0xd56c('0x13')];var _0x3d7b42;if(_0x4c68bf>=_0x4c63e7){_0x4c68bf=_0x4c63e7;_0x3d7b42=0xc8;}else{_0x3d7b42=0xce;}_0x4f7434[_0xd56c('0xe')](_0x3d7b42);return _0x4f7434[_0xd56c('0x14')](_0xd56c('0x15'),_0x278829+'-'+_0x4c68bf+'/'+_0x4c63e7)[_0xd56c('0x10')](_0x54c3ed);}return null;};}function removeEntity(_0x322727){return function(_0x419f21){if(_0x419f21){return _0x419f21['destroy']()[_0xd56c('0x16')](function(){var _0x2a4304=_0x419f21[_0xd56c('0x17')]({'plain':!![]});var _0x1fb04e=[{'name':_0xd56c('0x18'),'value':'inbound','ignore':![]},{'name':_0xd56c('0x19'),'value':_0xd56c('0x1a'),'ignore':![]},{'name':'InternalRoutes','value':_0xd56c('0x1b'),'ignore':![]}];var _0x44392e=_(_0x1fb04e)[_0xd56c('0x1c')](_0xd56c('0x1d'))[_0xd56c('0x1e')](_0xd56c('0x1f'))[_0xd56c('0x1f')]();if(_['includes'](_0x44392e,_0x2a4304['type'])){return;}var _0x1718ee=_[_0xd56c('0x20')](_0x1fb04e,[_0xd56c('0x1f'),_0x2a4304[_0xd56c('0x21')]])['name'];return db['UserProfileResource'][_0xd56c('0x22')]({'where':{'type':_0x1718ee,'resourceId':_0x2a4304['id']}})[_0xd56c('0x16')](function(){return _0x419f21;});})[_0xd56c('0x16')](function(){_0x322727[_0xd56c('0xe')](0xcc)[_0xd56c('0xf')]();});}};}function handleEntityNotFound(_0x11f26f){return function(_0x1b9adb){if(!_0x1b9adb){_0x11f26f[_0xd56c('0xd')](0x194);}return _0x1b9adb;};}function handleError(_0x45a603,_0x1a2ca2){_0x1a2ca2=_0x1a2ca2||0x1f4;return function(_0x1e8f03){logger[_0xd56c('0x23')](_0x1e8f03[_0xd56c('0x24')]);if(_0x1e8f03[_0xd56c('0x25')]){delete _0x1e8f03[_0xd56c('0x25')];}_0x45a603['status'](_0x1a2ca2)[_0xd56c('0x26')](_0x1e8f03);};}exports[_0xd56c('0x27')]=function(_0xacc39b,_0x4095d7){var _0x21f1b5={},_0x291723={},_0x2cc45b={'count':0x0,'rows':[]};var _0x270303=_[_0xd56c('0x1e')](db[_0xd56c('0x28')][_0xd56c('0x29')],function(_0x283416){return{'name':_0x283416['fieldName'],'type':_0x283416['type'][_0xd56c('0x2a')]};});_0x291723[_0xd56c('0x2b')]=_['map'](_0x270303,_0xd56c('0x25'));_0x291723['query']=_['keys'](_0xacc39b[_0xd56c('0x2c')]);_0x291723['filters']=_['intersection'](_0x291723[_0xd56c('0x2b')],_0x291723[_0xd56c('0x2c')]);_0x21f1b5[_0xd56c('0x2d')]=_[_0xd56c('0x2e')](_0x291723[_0xd56c('0x2b')],qs[_0xd56c('0x2f')](_0xacc39b[_0xd56c('0x2c')][_0xd56c('0x2f')]));_0x21f1b5['attributes']=_0x21f1b5[_0xd56c('0x2d')][_0xd56c('0x30')]?_0x21f1b5[_0xd56c('0x2d')]:_0x291723['model'];if(!_0xacc39b[_0xd56c('0x2c')]['hasOwnProperty']('nolimit')){_0x21f1b5['limit']=qs['limit'](_0xacc39b[_0xd56c('0x2c')][_0xd56c('0x13')]);_0x21f1b5[_0xd56c('0x11')]=qs[_0xd56c('0x11')](_0xacc39b[_0xd56c('0x2c')][_0xd56c('0x11')]);}_0x21f1b5[_0xd56c('0x31')]=qs['sort'](_0xacc39b[_0xd56c('0x2c')][_0xd56c('0x32')]);_0x21f1b5[_0xd56c('0x33')]=qs[_0xd56c('0x34')](_[_0xd56c('0x35')](_0xacc39b[_0xd56c('0x2c')],_0x291723[_0xd56c('0x34')]),_0x270303);if(_0xacc39b[_0xd56c('0x2c')]['filter']){_0x21f1b5[_0xd56c('0x33')]=_['merge'](_0x21f1b5[_0xd56c('0x33')],{'$or':_[_0xd56c('0x1e')](_0x270303,function(_0x3eb072){if(_0x3eb072['type']!==_0xd56c('0x36')){var _0x2ed089={};_0x2ed089[_0x3eb072[_0xd56c('0x25')]]={'$like':'%'+_0xacc39b[_0xd56c('0x2c')][_0xd56c('0x1c')]+'%'};return _0x2ed089;}})});}_0x21f1b5=_[_0xd56c('0x37')]({},_0x21f1b5,_0xacc39b[_0xd56c('0x38')]);var _0x334a6c={'where':_0x21f1b5['where']};return db[_0xd56c('0x28')][_0xd56c('0x12')](_0x334a6c)[_0xd56c('0x16')](function(_0x3445e9){_0x2cc45b[_0xd56c('0x12')]=_0x3445e9;if(_0xacc39b[_0xd56c('0x2c')][_0xd56c('0x39')]){_0x21f1b5[_0xd56c('0x3a')]=[{'all':!![]}];}return db[_0xd56c('0x28')][_0xd56c('0x3b')](_0x21f1b5);})[_0xd56c('0x16')](function(_0x4c17a1){_0x2cc45b['rows']=_0x4c17a1;return _0x2cc45b;})[_0xd56c('0x16')](respondWithFilteredResult(_0x4095d7,_0x21f1b5))[_0xd56c('0x3c')](handleError(_0x4095d7,null));};exports[_0xd56c('0x3d')]=function(_0x468a9f,_0x9e2a57){var _0x100da3={'raw':![],'where':{'id':_0x468a9f[_0xd56c('0x3e')]['id']}},_0x5a0678={};_0x5a0678[_0xd56c('0x2b')]=_[_0xd56c('0x3f')](db['VoiceExtension'][_0xd56c('0x29')]);_0x5a0678[_0xd56c('0x2c')]=_[_0xd56c('0x3f')](_0x468a9f[_0xd56c('0x2c')]);_0x5a0678[_0xd56c('0x34')]=_[_0xd56c('0x2e')](_0x5a0678[_0xd56c('0x2b')],_0x5a0678['query']);_0x100da3[_0xd56c('0x2d')]=_['intersection'](_0x5a0678[_0xd56c('0x2b')],qs['fields'](_0x468a9f[_0xd56c('0x2c')][_0xd56c('0x2f')]));_0x100da3[_0xd56c('0x2d')]=_0x100da3[_0xd56c('0x2d')][_0xd56c('0x30')]?_0x100da3[_0xd56c('0x2d')]:_0x5a0678['model'];if(_0x468a9f[_0xd56c('0x2c')][_0xd56c('0x39')]){_0x100da3[_0xd56c('0x3a')]=[{'all':!![]}];}_0x100da3=_[_0xd56c('0x37')]({},_0x100da3,_0x468a9f['options']);return db[_0xd56c('0x28')][_0xd56c('0x20')](_0x100da3)[_0xd56c('0x16')](handleEntityNotFound(_0x9e2a57,null))[_0xd56c('0x16')](respondWithResult(_0x9e2a57,null))[_0xd56c('0x3c')](handleError(_0x9e2a57,null));};exports['destroy']=function(_0x2ab366,_0x100042){return db[_0xd56c('0x28')][_0xd56c('0x20')]({'where':{'id':_0x2ab366[_0xd56c('0x3e')]['id']}})[_0xd56c('0x16')](handleEntityNotFound(_0x100042,null))[_0xd56c('0x16')](removeEntity(_0x100042,null))[_0xd56c('0x3c')](handleError(_0x100042,null));};exports[_0xd56c('0x40')]=function(_0x7aa165,_0x1f40a3){if(_0x7aa165[_0xd56c('0x41')][_0xd56c('0x21')]===_0xd56c('0x1a')&&!_[_0xd56c('0x42')](_0x7aa165[_0xd56c('0x41')][_0xd56c('0x43')],'_')){_0x7aa165[_0xd56c('0x41')][_0xd56c('0x43')]='_'['concat'](_0x7aa165['body'][_0xd56c('0x43')]);}return db[_0xd56c('0x28')][_0xd56c('0x40')](_0x7aa165[_0xd56c('0x41')],{'raw':![]})['then'](function(_0x19f1ec){var _0x55af65=_0x7aa165[_0xd56c('0x44')][_0xd56c('0x17')]({'plain':!![]});if(!_0x55af65)throw new Error(_0xd56c('0x45'));if(_0x55af65[_0xd56c('0x46')]==='user'){var _0x58c39e=_0x19f1ec['get']({'plain':!![]});var _0x5d3b00=[{'name':_0xd56c('0x18'),'value':_0xd56c('0x47')},{'name':_0xd56c('0x19'),'value':_0xd56c('0x1a')},{'name':'InternalRoutes','value':_0xd56c('0x1b')}];var _0x1e039c=_[_0xd56c('0x20')](_0x5d3b00,[_0xd56c('0x1f'),_0x58c39e[_0xd56c('0x21')]])[_0xd56c('0x25')];return db[_0xd56c('0x48')][_0xd56c('0x20')]({'where':{'name':_0x1e039c,'userProfileId':_0x55af65['userProfileId']},'raw':!![]})[_0xd56c('0x16')](function(_0x603c6b){if(_0x603c6b&&_0x603c6b[_0xd56c('0x49')]===0x0){return db[_0xd56c('0x4a')]['create']({'name':_0x58c39e[_0xd56c('0x25')],'resourceId':_0x58c39e['id'],'type':_0x603c6b[_0xd56c('0x25')],'sectionId':_0x603c6b['id']},{})[_0xd56c('0x16')](function(){return _0x19f1ec;});}else{return _0x19f1ec;}})[_0xd56c('0x3c')](function(_0x11891e){logger[_0xd56c('0x23')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x11891e);throw _0x11891e;});}return _0x19f1ec;})[_0xd56c('0x16')](respondWithResult(_0x1f40a3,0xc9))['catch'](handleError(_0x1f40a3,null));};exports[_0xd56c('0x4b')]=function(_0x14bb4d,_0x4fc0aa){if(_0x14bb4d[_0xd56c('0x41')]['id']){delete _0x14bb4d[_0xd56c('0x41')]['id'];}return db[_0xd56c('0x28')][_0xd56c('0x20')]({'where':{'id':_0x14bb4d['params']['id']}})[_0xd56c('0x16')](handleEntityNotFound(_0x4fc0aa,null))['then'](function(_0x4190bc){if(_0x4190bc){return db[_0xd56c('0x28')][_0xd56c('0x4b')](_[_0xd56c('0x35')](_0x14bb4d[_0xd56c('0x41')],[_0xd56c('0x43'),_0xd56c('0x4c'),_0xd56c('0x4d'),_0xd56c('0x4e'),_0xd56c('0x4f'),'mandatoryDisposition','alias']),{'where':{'context':_0x4190bc['context'],'exten':_0x4190bc[_0xd56c('0x43')]},'individualHooks':!![]})[_0xd56c('0x16')](function(_0x3399de){return _0x3399de;});}return null;})[_0xd56c('0x16')](respondWithStatusCode(_0x4fc0aa,null))['catch'](handleError(_0x4fc0aa,null));};exports[_0xd56c('0x50')]=function(_0xb5a717,_0x4c2806){var _0x29c8d3=_0xb5a717[_0xd56c('0x3e')]['id'];var _0x14b0e0=_0xb5a717['body'];var _0x27d179=0xc8;var _0x4dac25=null;return db[_0xd56c('0x51')][_0xd56c('0x52')]({'isolationLevel':db['sequelize'][_0xd56c('0x53')][_0xd56c('0x54')][_0xd56c('0x55')]},function(_0x1d580d){return db[_0xd56c('0x28')][_0xd56c('0x56')]({'where':{'id':_0x29c8d3},'transaction':_0x1d580d})[_0xd56c('0x16')](function(_0x1a60c6){if(_0x1a60c6){return db[_0xd56c('0x28')][_0xd56c('0x22')]({'where':{'VoiceExtensionId':_0x29c8d3},'transaction':_0x1d580d})[_0xd56c('0x16')](function(){var _0x2bb6b0=_[_0xd56c('0x1e')](_0x14b0e0,function(_0x2e1ad8){_0x2e1ad8['VoiceExtensionId']=_0x29c8d3;_0x2e1ad8[_0xd56c('0x57')]=!![];return _0x2e1ad8;});return _0x1a60c6[_0xd56c('0x58')](_0x2bb6b0);})[_0xd56c('0x16')](function(_0x40e270){return db[_0xd56c('0x28')][_0xd56c('0x59')](_0x40e270,{'transaction':_0x1d580d});});}else{_0x27d179=0x194;_0x4dac25=[];}});})[_0xd56c('0x16')](function(){if(_0x27d179!==0x194){return db['VoiceExtension']['findAndCountAll']({'where':{'isApp':!![],'VoiceExtensionId':_0x29c8d3},'order':'cast(priority\x20as\x20unsigned)'})['then'](function(_0x2735ea){_0x4dac25=_0x2735ea;});}})[_0xd56c('0x3c')](function(_0x2a18d6){_0x27d179=0x1f4;logger[_0xd56c('0x23')](_0x2a18d6[_0xd56c('0x24')]);if(_0x2a18d6[_0xd56c('0x25')]){delete _0x2a18d6[_0xd56c('0x25')];}_0x4dac25=_0x2a18d6;})[_0xd56c('0x5a')](function(){if(_0x4dac25===null){_0x4c2806['sendStatus'](_0x27d179);}else{if(_0x27d179===0x1f4){_0x4c2806[_0xd56c('0xe')](_0x27d179)['send'](_0x4dac25);}else{_0x4c2806[_0xd56c('0xe')](_0x27d179)[_0xd56c('0x10')](_0x4dac25);}}});};