7e853f963d1ee0f986d719b565728ec2a07c1a93
[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 _0xeb47=['internal','userProfileId','error','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','context','recordingFormat','cutdigits','mandatoryDisposition','alias','addApplications','sequelize','transaction','Transaction','ISOLATION_LEVELS','READ_COMMITTED','findOne','findAndCountAll','cast(priority\x20as\x20unsigned)','finally','lodash','ioredis','../../components/parsers/qs','../../config/logger','api','../../config/environment','../../mysqldb','redis','localhost','socket.io-emitter','./voiceExtension.socket','register','sendStatus','status','end','json','offset','undefined','limit','count','set','destroy','then','get','InboundRoutes','OutboundRoutes','outbound','InternalRoutes','filter','ignore','map','value','type','name','UserProfileResource','stack','send','index','VoiceExtension','rawAttributes','fieldName','key','model','query','keys','filters','intersection','attributes','fields','length','order','sort','where','pick','merge','VIRTUAL','options','includeAll','include','findAll','show','find','catch','params','create','startsWith','exten','concat','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role'];(function(_0x511fad,_0x26cf29){var _0x4b61bd=function(_0x543692){while(--_0x543692){_0x511fad['push'](_0x511fad['shift']());}};_0x4b61bd(++_0x26cf29);}(_0xeb47,0x6e));var _0x7eb4=function(_0x354a3b,_0x120272){_0x354a3b=_0x354a3b-0x0;var _0x442c1f=_0xeb47[_0x354a3b];return _0x442c1f;};'use strict';var _=require(_0x7eb4('0x0'));var Redis=require(_0x7eb4('0x1'));var qs=require(_0x7eb4('0x2'));var logger=require(_0x7eb4('0x3'))(_0x7eb4('0x4'));var config=require(_0x7eb4('0x5'));var db=require(_0x7eb4('0x6'))['db'];config['redis']=_['defaults'](config[_0x7eb4('0x7')],{'host':_0x7eb4('0x8'),'port':0x18eb});var socket=require(_0x7eb4('0x9'))(new Redis(config['redis']));require(_0x7eb4('0xa'))[_0x7eb4('0xb')](socket);function respondWithStatusCode(_0xd6ee84,_0x46ae1a){_0x46ae1a=_0x46ae1a||0xcc;return function(_0x1dd9f8){if(_0x1dd9f8){return _0xd6ee84[_0x7eb4('0xc')](_0x46ae1a);}return _0xd6ee84[_0x7eb4('0xd')](_0x46ae1a)[_0x7eb4('0xe')]();};}function respondWithResult(_0x4eefc6,_0x985e17){_0x985e17=_0x985e17||0xc8;return function(_0x536c9f){if(_0x536c9f){return _0x4eefc6['status'](_0x985e17)[_0x7eb4('0xf')](_0x536c9f);}};}function respondWithFilteredResult(_0x2dbc50,_0x4d0dab){return function(_0x35e1a9){if(_0x35e1a9){var _0x2e9e84=typeof _0x4d0dab[_0x7eb4('0x10')]===_0x7eb4('0x11')&&typeof _0x4d0dab[_0x7eb4('0x12')]==='undefined';var _0x501da0=_0x35e1a9[_0x7eb4('0x13')];var _0x1d38f0=_0x2e9e84?0x0:_0x4d0dab[_0x7eb4('0x10')];var _0x4fe273=_0x2e9e84?_0x35e1a9['count']:_0x4d0dab['offset']+_0x4d0dab['limit'];var _0x1d99b1;if(_0x4fe273>=_0x501da0){_0x4fe273=_0x501da0;_0x1d99b1=0xc8;}else{_0x1d99b1=0xce;}_0x2dbc50[_0x7eb4('0xd')](_0x1d99b1);return _0x2dbc50[_0x7eb4('0x14')]('Content-Range',_0x1d38f0+'-'+_0x4fe273+'/'+_0x501da0)[_0x7eb4('0xf')](_0x35e1a9);}return null;};}function removeEntity(_0x588564){return function(_0x27d74d){if(_0x27d74d){return _0x27d74d[_0x7eb4('0x15')]()[_0x7eb4('0x16')](function(){var _0x33966d=_0x27d74d[_0x7eb4('0x17')]({'plain':!![]});var _0xdf789=[{'name':_0x7eb4('0x18'),'value':'inbound','ignore':![]},{'name':_0x7eb4('0x19'),'value':_0x7eb4('0x1a'),'ignore':![]},{'name':_0x7eb4('0x1b'),'value':'internal','ignore':![]}];var _0x2d36d8=_(_0xdf789)[_0x7eb4('0x1c')](_0x7eb4('0x1d'))[_0x7eb4('0x1e')](_0x7eb4('0x1f'))[_0x7eb4('0x1f')]();if(_['includes'](_0x2d36d8,_0x33966d[_0x7eb4('0x20')])){return;}var _0x15b997=_['find'](_0xdf789,[_0x7eb4('0x1f'),_0x33966d[_0x7eb4('0x20')]])[_0x7eb4('0x21')];return db[_0x7eb4('0x22')][_0x7eb4('0x15')]({'where':{'type':_0x15b997,'resourceId':_0x33966d['id']}})['then'](function(){return _0x27d74d;});})['then'](function(){_0x588564[_0x7eb4('0xd')](0xcc)['end']();});}};}function handleEntityNotFound(_0xe7da0b){return function(_0x251439){if(!_0x251439){_0xe7da0b[_0x7eb4('0xc')](0x194);}return _0x251439;};}function handleError(_0x5499c1,_0x19e8c3){_0x19e8c3=_0x19e8c3||0x1f4;return function(_0x4d18ec){logger['error'](_0x4d18ec[_0x7eb4('0x23')]);if(_0x4d18ec[_0x7eb4('0x21')]){delete _0x4d18ec['name'];}_0x5499c1[_0x7eb4('0xd')](_0x19e8c3)[_0x7eb4('0x24')](_0x4d18ec);};}exports[_0x7eb4('0x25')]=function(_0x263537,_0x221c47){var _0x4c8090={},_0x3668d5={},_0x407554={'count':0x0,'rows':[]};var _0x315f30=_[_0x7eb4('0x1e')](db[_0x7eb4('0x26')][_0x7eb4('0x27')],function(_0x3d2f2d){return{'name':_0x3d2f2d[_0x7eb4('0x28')],'type':_0x3d2f2d[_0x7eb4('0x20')][_0x7eb4('0x29')]};});_0x3668d5[_0x7eb4('0x2a')]=_['map'](_0x315f30,_0x7eb4('0x21'));_0x3668d5[_0x7eb4('0x2b')]=_[_0x7eb4('0x2c')](_0x263537[_0x7eb4('0x2b')]);_0x3668d5[_0x7eb4('0x2d')]=_[_0x7eb4('0x2e')](_0x3668d5[_0x7eb4('0x2a')],_0x3668d5[_0x7eb4('0x2b')]);_0x4c8090[_0x7eb4('0x2f')]=_['intersection'](_0x3668d5['model'],qs['fields'](_0x263537[_0x7eb4('0x2b')][_0x7eb4('0x30')]));_0x4c8090[_0x7eb4('0x2f')]=_0x4c8090[_0x7eb4('0x2f')][_0x7eb4('0x31')]?_0x4c8090['attributes']:_0x3668d5['model'];if(!_0x263537[_0x7eb4('0x2b')]['hasOwnProperty']('nolimit')){_0x4c8090[_0x7eb4('0x12')]=qs[_0x7eb4('0x12')](_0x263537[_0x7eb4('0x2b')][_0x7eb4('0x12')]);_0x4c8090[_0x7eb4('0x10')]=qs['offset'](_0x263537[_0x7eb4('0x2b')]['offset']);}_0x4c8090[_0x7eb4('0x32')]=qs[_0x7eb4('0x33')](_0x263537['query']['sort']);_0x4c8090[_0x7eb4('0x34')]=qs['filters'](_[_0x7eb4('0x35')](_0x263537[_0x7eb4('0x2b')],_0x3668d5[_0x7eb4('0x2d')]),_0x315f30);if(_0x263537[_0x7eb4('0x2b')]['filter']){_0x4c8090[_0x7eb4('0x34')]=_[_0x7eb4('0x36')](_0x4c8090[_0x7eb4('0x34')],{'$or':_[_0x7eb4('0x1e')](_0x315f30,function(_0x237c3f){if(_0x237c3f[_0x7eb4('0x20')]!==_0x7eb4('0x37')){var _0x1930e3={};_0x1930e3[_0x237c3f[_0x7eb4('0x21')]]={'$like':'%'+_0x263537[_0x7eb4('0x2b')][_0x7eb4('0x1c')]+'%'};return _0x1930e3;}})});}_0x4c8090=_['merge']({},_0x4c8090,_0x263537[_0x7eb4('0x38')]);var _0xee0a1e={'where':_0x4c8090['where']};return db[_0x7eb4('0x26')]['count'](_0xee0a1e)['then'](function(_0xd72fba){_0x407554['count']=_0xd72fba;if(_0x263537[_0x7eb4('0x2b')][_0x7eb4('0x39')]){_0x4c8090[_0x7eb4('0x3a')]=[{'all':!![]}];}return db['VoiceExtension'][_0x7eb4('0x3b')](_0x4c8090);})['then'](function(_0xd85742){_0x407554['rows']=_0xd85742;return _0x407554;})[_0x7eb4('0x16')](respondWithFilteredResult(_0x221c47,_0x4c8090))['catch'](handleError(_0x221c47,null));};exports[_0x7eb4('0x3c')]=function(_0x10943f,_0x109427){var _0x4df382={'raw':![],'where':{'id':_0x10943f['params']['id']}},_0x3745bf={};_0x3745bf['model']=_[_0x7eb4('0x2c')](db[_0x7eb4('0x26')][_0x7eb4('0x27')]);_0x3745bf[_0x7eb4('0x2b')]=_[_0x7eb4('0x2c')](_0x10943f[_0x7eb4('0x2b')]);_0x3745bf[_0x7eb4('0x2d')]=_[_0x7eb4('0x2e')](_0x3745bf[_0x7eb4('0x2a')],_0x3745bf[_0x7eb4('0x2b')]);_0x4df382[_0x7eb4('0x2f')]=_['intersection'](_0x3745bf[_0x7eb4('0x2a')],qs['fields'](_0x10943f[_0x7eb4('0x2b')]['fields']));_0x4df382[_0x7eb4('0x2f')]=_0x4df382[_0x7eb4('0x2f')][_0x7eb4('0x31')]?_0x4df382[_0x7eb4('0x2f')]:_0x3745bf[_0x7eb4('0x2a')];if(_0x10943f[_0x7eb4('0x2b')][_0x7eb4('0x39')]){_0x4df382[_0x7eb4('0x3a')]=[{'all':!![]}];}_0x4df382=_[_0x7eb4('0x36')]({},_0x4df382,_0x10943f['options']);return db[_0x7eb4('0x26')][_0x7eb4('0x3d')](_0x4df382)[_0x7eb4('0x16')](handleEntityNotFound(_0x109427,null))[_0x7eb4('0x16')](respondWithResult(_0x109427,null))[_0x7eb4('0x3e')](handleError(_0x109427,null));};exports[_0x7eb4('0x15')]=function(_0x38f8c9,_0x5054ad){return db[_0x7eb4('0x26')]['find']({'where':{'id':_0x38f8c9[_0x7eb4('0x3f')]['id']}})[_0x7eb4('0x16')](handleEntityNotFound(_0x5054ad,null))[_0x7eb4('0x16')](removeEntity(_0x5054ad,null))[_0x7eb4('0x3e')](handleError(_0x5054ad,null));};exports[_0x7eb4('0x40')]=function(_0x5a4553,_0x128570){if(_0x5a4553['body'][_0x7eb4('0x20')]===_0x7eb4('0x1a')&&!_[_0x7eb4('0x41')](_0x5a4553['body'][_0x7eb4('0x42')],'_')){_0x5a4553['body'][_0x7eb4('0x42')]='_'[_0x7eb4('0x43')](_0x5a4553[_0x7eb4('0x44')]['exten']);}return db[_0x7eb4('0x26')][_0x7eb4('0x40')](_0x5a4553[_0x7eb4('0x44')],{'raw':![]})[_0x7eb4('0x16')](function(_0x5224bb){var _0x5ba520=_0x5a4553[_0x7eb4('0x45')]['get']({'plain':!![]});if(!_0x5ba520)throw new Error(_0x7eb4('0x46'));if(_0x5ba520[_0x7eb4('0x47')]===_0x7eb4('0x45')){var _0x2d5100=_0x5224bb[_0x7eb4('0x17')]({'plain':!![]});var _0xf3642e=[{'name':_0x7eb4('0x18'),'value':'inbound'},{'name':_0x7eb4('0x19'),'value':_0x7eb4('0x1a')},{'name':_0x7eb4('0x1b'),'value':_0x7eb4('0x48')}];var _0x411ad4=_[_0x7eb4('0x3d')](_0xf3642e,[_0x7eb4('0x1f'),_0x2d5100['type']])[_0x7eb4('0x21')];return db['UserProfileSection']['find']({'where':{'name':_0x411ad4,'userProfileId':_0x5ba520[_0x7eb4('0x49')]},'raw':!![]})[_0x7eb4('0x16')](function(_0x552e7d){if(_0x552e7d&&_0x552e7d['autoAssociation']===0x0){return db[_0x7eb4('0x22')][_0x7eb4('0x40')]({'name':_0x2d5100[_0x7eb4('0x21')],'resourceId':_0x2d5100['id'],'type':_0x552e7d[_0x7eb4('0x21')],'sectionId':_0x552e7d['id']},{})['then'](function(){return _0x5224bb;});}else{return _0x5224bb;}})['catch'](function(_0x4075c6){logger[_0x7eb4('0x4a')](_0x7eb4('0x4b'),_0x4075c6);throw _0x4075c6;});}return _0x5224bb;})[_0x7eb4('0x16')](respondWithResult(_0x128570,0xc9))[_0x7eb4('0x3e')](handleError(_0x128570,null));};exports['update']=function(_0x1b6a81,_0x3ab9a2){if(_0x1b6a81[_0x7eb4('0x44')]['id']){delete _0x1b6a81[_0x7eb4('0x44')]['id'];}return db[_0x7eb4('0x26')]['find']({'where':{'id':_0x1b6a81[_0x7eb4('0x3f')]['id']}})['then'](handleEntityNotFound(_0x3ab9a2,null))[_0x7eb4('0x16')](function(_0x2b36da){if(_0x2b36da){return db[_0x7eb4('0x26')]['update'](_['pick'](_0x1b6a81[_0x7eb4('0x44')],['exten',_0x7eb4('0x4c'),'description',_0x7eb4('0x4d'),_0x7eb4('0x4e'),_0x7eb4('0x4f'),_0x7eb4('0x50')]),{'where':{'context':_0x2b36da['context'],'exten':_0x2b36da['exten']},'individualHooks':!![]})[_0x7eb4('0x16')](function(_0x5c391b){return _0x5c391b;});}return null;})[_0x7eb4('0x16')](respondWithStatusCode(_0x3ab9a2,null))[_0x7eb4('0x3e')](handleError(_0x3ab9a2,null));};exports[_0x7eb4('0x51')]=function(_0x414441,_0x29261){var _0xf9abf8=_0x414441[_0x7eb4('0x3f')]['id'];var _0x5f14ad=_0x414441[_0x7eb4('0x44')];var _0x1bc35c=0xc8;var _0x55842b=null;return db[_0x7eb4('0x52')][_0x7eb4('0x53')]({'isolationLevel':db[_0x7eb4('0x52')][_0x7eb4('0x54')][_0x7eb4('0x55')][_0x7eb4('0x56')]},function(_0x19e94e){return db['VoiceExtension'][_0x7eb4('0x57')]({'where':{'id':_0xf9abf8},'transaction':_0x19e94e})[_0x7eb4('0x16')](function(_0x24708c){if(_0x24708c){return db['VoiceExtension'][_0x7eb4('0x15')]({'where':{'VoiceExtensionId':_0xf9abf8},'transaction':_0x19e94e})['then'](function(){var _0x387f12=_[_0x7eb4('0x1e')](_0x5f14ad,function(_0x4ed2d3){_0x4ed2d3['VoiceExtensionId']=_0xf9abf8;_0x4ed2d3['isApp']=!![];return _0x4ed2d3;});return _0x24708c['createRouting'](_0x387f12);})[_0x7eb4('0x16')](function(_0xbe3755){return db[_0x7eb4('0x26')]['bulkCreate'](_0xbe3755,{'transaction':_0x19e94e});});}else{_0x1bc35c=0x194;_0x55842b=[];}});})[_0x7eb4('0x16')](function(){if(_0x1bc35c!==0x194){return db[_0x7eb4('0x26')][_0x7eb4('0x58')]({'where':{'isApp':!![],'VoiceExtensionId':_0xf9abf8},'order':_0x7eb4('0x59')})[_0x7eb4('0x16')](function(_0x9429d6){_0x55842b=_0x9429d6;});}})[_0x7eb4('0x3e')](function(_0x152771){_0x1bc35c=0x1f4;logger[_0x7eb4('0x4a')](_0x152771['stack']);if(_0x152771[_0x7eb4('0x21')]){delete _0x152771[_0x7eb4('0x21')];}_0x55842b=_0x152771;})[_0x7eb4('0x5a')](function(){if(_0x55842b===null){_0x29261['sendStatus'](_0x1bc35c);}else{if(_0x1bc35c===0x1f4){_0x29261['status'](_0x1bc35c)[_0x7eb4('0x24')](_0x55842b);}else{_0x29261[_0x7eb4('0xd')](_0x1bc35c)[_0x7eb4('0xf')](_0x55842b);}}});};