Built motion from commit 9d0783e6.|2.6.13
[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 _0xa208=['findAll','rows','catch','show','params','create','body','exten','concat','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','InboundRoutes','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','context','description','cutdigits','mandatoryDisposition','addApplications','sequelize','transaction','ISOLATION_LEVELS','READ_COMMITTED','findOne','VoiceExtensionId','createRouting','findAndCountAll','cast(priority\x20as\x20unsigned)','stack','finally','send','lodash','ioredis','../../components/parsers/qs','../../config/logger','api','../../config/environment','../../mysqldb','redis','defaults','socket.io-emitter','./voiceExtension.socket','register','sendStatus','status','end','offset','undefined','limit','count','Content-Range','json','destroy','then','get','inbound','OutboundRoutes','outbound','InternalRoutes','internal','filter','ignore','value','type','find','name','UserProfileResource','error','index','map','VoiceExtension','rawAttributes','fieldName','key','query','keys','filters','intersection','model','attributes','fields','length','hasOwnProperty','order','sort','pick','where','merge','VIRTUAL','options','includeAll','include'];(function(_0x1181f5,_0x3e8551){var _0x2c806e=function(_0x325dca){while(--_0x325dca){_0x1181f5['push'](_0x1181f5['shift']());}};_0x2c806e(++_0x3e8551);}(_0xa208,0x13b));var _0x8a20=function(_0x2f3848,_0x48564d){_0x2f3848=_0x2f3848-0x0;var _0x102668=_0xa208[_0x2f3848];return _0x102668;};'use strict';var _=require(_0x8a20('0x0'));var Redis=require(_0x8a20('0x1'));var qs=require(_0x8a20('0x2'));var logger=require(_0x8a20('0x3'))(_0x8a20('0x4'));var config=require(_0x8a20('0x5'));var db=require(_0x8a20('0x6'))['db'];config[_0x8a20('0x7')]=_[_0x8a20('0x8')](config['redis'],{'host':'localhost','port':0x18eb});var socket=require(_0x8a20('0x9'))(new Redis(config['redis']));require(_0x8a20('0xa'))[_0x8a20('0xb')](socket);function respondWithStatusCode(_0x481ce8,_0x532cb7){_0x532cb7=_0x532cb7||0xcc;return function(_0xd67b4c){if(_0xd67b4c){return _0x481ce8[_0x8a20('0xc')](_0x532cb7);}return _0x481ce8[_0x8a20('0xd')](_0x532cb7)[_0x8a20('0xe')]();};}function respondWithResult(_0x4993d5,_0x30e56b){_0x30e56b=_0x30e56b||0xc8;return function(_0x15c8e6){if(_0x15c8e6){return _0x4993d5['status'](_0x30e56b)['json'](_0x15c8e6);}};}function respondWithFilteredResult(_0x3d7550,_0x199d65){return function(_0xfa7c1){if(_0xfa7c1){var _0x3e4fe9=typeof _0x199d65[_0x8a20('0xf')]===_0x8a20('0x10')&&typeof _0x199d65[_0x8a20('0x11')]===_0x8a20('0x10');var _0xa45e8c=_0xfa7c1['count'];var _0x3ac7c8=_0x3e4fe9?0x0:_0x199d65['offset'];var _0x4db18c=_0x3e4fe9?_0xfa7c1[_0x8a20('0x12')]:_0x199d65['offset']+_0x199d65[_0x8a20('0x11')];var _0x34e5b5;if(_0x4db18c>=_0xa45e8c){_0x4db18c=_0xa45e8c;_0x34e5b5=0xc8;}else{_0x34e5b5=0xce;}_0x3d7550[_0x8a20('0xd')](_0x34e5b5);return _0x3d7550['set'](_0x8a20('0x13'),_0x3ac7c8+'-'+_0x4db18c+'/'+_0xa45e8c)[_0x8a20('0x14')](_0xfa7c1);}return null;};}function removeEntity(_0x4254ec){return function(_0x161040){if(_0x161040){return _0x161040[_0x8a20('0x15')]()[_0x8a20('0x16')](function(){var _0x5efa16=_0x161040[_0x8a20('0x17')]({'plain':!![]});var _0x5be9da=[{'name':'InboundRoutes','value':_0x8a20('0x18'),'ignore':![]},{'name':_0x8a20('0x19'),'value':_0x8a20('0x1a'),'ignore':![]},{'name':_0x8a20('0x1b'),'value':_0x8a20('0x1c'),'ignore':![]}];var _0x18a17a=_(_0x5be9da)[_0x8a20('0x1d')](_0x8a20('0x1e'))['map'](_0x8a20('0x1f'))[_0x8a20('0x1f')]();if(_['includes'](_0x18a17a,_0x5efa16[_0x8a20('0x20')])){return;}var _0x1f8ca8=_[_0x8a20('0x21')](_0x5be9da,[_0x8a20('0x1f'),_0x5efa16['type']])[_0x8a20('0x22')];return db[_0x8a20('0x23')][_0x8a20('0x15')]({'where':{'type':_0x1f8ca8,'resourceId':_0x5efa16['id']}})[_0x8a20('0x16')](function(){return _0x161040;});})['then'](function(){_0x4254ec['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x516086){return function(_0x267e8e){if(!_0x267e8e){_0x516086['sendStatus'](0x194);}return _0x267e8e;};}function handleError(_0x522a9c,_0x85ec00){_0x85ec00=_0x85ec00||0x1f4;return function(_0x1959f8){logger[_0x8a20('0x24')](_0x1959f8['stack']);if(_0x1959f8[_0x8a20('0x22')]){delete _0x1959f8[_0x8a20('0x22')];}_0x522a9c['status'](_0x85ec00)['send'](_0x1959f8);};}exports[_0x8a20('0x25')]=function(_0x5431f1,_0x4c077e){var _0x7d9834={},_0xce8158={},_0x4a6b0c={'count':0x0,'rows':[]};var _0x29b3ca=_[_0x8a20('0x26')](db[_0x8a20('0x27')][_0x8a20('0x28')],function(_0x46a38c){return{'name':_0x46a38c[_0x8a20('0x29')],'type':_0x46a38c[_0x8a20('0x20')][_0x8a20('0x2a')]};});_0xce8158['model']=_[_0x8a20('0x26')](_0x29b3ca,_0x8a20('0x22'));_0xce8158[_0x8a20('0x2b')]=_[_0x8a20('0x2c')](_0x5431f1[_0x8a20('0x2b')]);_0xce8158[_0x8a20('0x2d')]=_[_0x8a20('0x2e')](_0xce8158[_0x8a20('0x2f')],_0xce8158[_0x8a20('0x2b')]);_0x7d9834[_0x8a20('0x30')]=_[_0x8a20('0x2e')](_0xce8158[_0x8a20('0x2f')],qs[_0x8a20('0x31')](_0x5431f1[_0x8a20('0x2b')][_0x8a20('0x31')]));_0x7d9834[_0x8a20('0x30')]=_0x7d9834[_0x8a20('0x30')][_0x8a20('0x32')]?_0x7d9834[_0x8a20('0x30')]:_0xce8158['model'];if(!_0x5431f1[_0x8a20('0x2b')][_0x8a20('0x33')]('nolimit')){_0x7d9834['limit']=qs[_0x8a20('0x11')](_0x5431f1[_0x8a20('0x2b')][_0x8a20('0x11')]);_0x7d9834[_0x8a20('0xf')]=qs[_0x8a20('0xf')](_0x5431f1[_0x8a20('0x2b')]['offset']);}_0x7d9834[_0x8a20('0x34')]=qs['sort'](_0x5431f1[_0x8a20('0x2b')][_0x8a20('0x35')]);_0x7d9834['where']=qs[_0x8a20('0x2d')](_[_0x8a20('0x36')](_0x5431f1[_0x8a20('0x2b')],_0xce8158['filters']),_0x29b3ca);if(_0x5431f1[_0x8a20('0x2b')][_0x8a20('0x1d')]){_0x7d9834[_0x8a20('0x37')]=_[_0x8a20('0x38')](_0x7d9834[_0x8a20('0x37')],{'$or':_[_0x8a20('0x26')](_0x29b3ca,function(_0x324f4f){if(_0x324f4f[_0x8a20('0x20')]!==_0x8a20('0x39')){var _0x5cdc37={};_0x5cdc37[_0x324f4f[_0x8a20('0x22')]]={'$like':'%'+_0x5431f1[_0x8a20('0x2b')][_0x8a20('0x1d')]+'%'};return _0x5cdc37;}})});}_0x7d9834=_[_0x8a20('0x38')]({},_0x7d9834,_0x5431f1[_0x8a20('0x3a')]);var _0x85c248={'where':_0x7d9834[_0x8a20('0x37')]};return db['VoiceExtension'][_0x8a20('0x12')](_0x85c248)[_0x8a20('0x16')](function(_0x5e12b){_0x4a6b0c[_0x8a20('0x12')]=_0x5e12b;if(_0x5431f1[_0x8a20('0x2b')][_0x8a20('0x3b')]){_0x7d9834[_0x8a20('0x3c')]=[{'all':!![]}];}return db[_0x8a20('0x27')][_0x8a20('0x3d')](_0x7d9834);})['then'](function(_0x364d14){_0x4a6b0c[_0x8a20('0x3e')]=_0x364d14;return _0x4a6b0c;})[_0x8a20('0x16')](respondWithFilteredResult(_0x4c077e,_0x7d9834))[_0x8a20('0x3f')](handleError(_0x4c077e,null));};exports[_0x8a20('0x40')]=function(_0x2fbf47,_0x11ecbc){var _0x24d660={'raw':![],'where':{'id':_0x2fbf47['params']['id']}},_0x14624e={};_0x14624e[_0x8a20('0x2f')]=_[_0x8a20('0x2c')](db['VoiceExtension']['rawAttributes']);_0x14624e[_0x8a20('0x2b')]=_['keys'](_0x2fbf47[_0x8a20('0x2b')]);_0x14624e[_0x8a20('0x2d')]=_[_0x8a20('0x2e')](_0x14624e[_0x8a20('0x2f')],_0x14624e[_0x8a20('0x2b')]);_0x24d660[_0x8a20('0x30')]=_[_0x8a20('0x2e')](_0x14624e[_0x8a20('0x2f')],qs['fields'](_0x2fbf47['query'][_0x8a20('0x31')]));_0x24d660[_0x8a20('0x30')]=_0x24d660['attributes']['length']?_0x24d660[_0x8a20('0x30')]:_0x14624e[_0x8a20('0x2f')];if(_0x2fbf47[_0x8a20('0x2b')]['includeAll']){_0x24d660[_0x8a20('0x3c')]=[{'all':!![]}];}_0x24d660=_[_0x8a20('0x38')]({},_0x24d660,_0x2fbf47[_0x8a20('0x3a')]);return db[_0x8a20('0x27')][_0x8a20('0x21')](_0x24d660)[_0x8a20('0x16')](handleEntityNotFound(_0x11ecbc,null))[_0x8a20('0x16')](respondWithResult(_0x11ecbc,null))['catch'](handleError(_0x11ecbc,null));};exports[_0x8a20('0x15')]=function(_0x4a7050,_0x16ffb2){return db['VoiceExtension'][_0x8a20('0x21')]({'where':{'id':_0x4a7050[_0x8a20('0x41')]['id']}})[_0x8a20('0x16')](handleEntityNotFound(_0x16ffb2,null))[_0x8a20('0x16')](removeEntity(_0x16ffb2,null))[_0x8a20('0x3f')](handleError(_0x16ffb2,null));};exports[_0x8a20('0x42')]=function(_0x41bbda,_0x2d8471){if(_0x41bbda['body'][_0x8a20('0x20')]===_0x8a20('0x1a')&&!_['startsWith'](_0x41bbda[_0x8a20('0x43')][_0x8a20('0x44')],'_')){_0x41bbda[_0x8a20('0x43')]['exten']='_'[_0x8a20('0x45')](_0x41bbda[_0x8a20('0x43')][_0x8a20('0x44')]);}return db[_0x8a20('0x27')][_0x8a20('0x42')](_0x41bbda[_0x8a20('0x43')],{'raw':![]})[_0x8a20('0x16')](function(_0x27cbef){var _0x5807e2=_0x41bbda[_0x8a20('0x46')][_0x8a20('0x17')]({'plain':!![]});if(!_0x5807e2)throw new Error(_0x8a20('0x47'));if(_0x5807e2[_0x8a20('0x48')]===_0x8a20('0x46')){var _0x57acd5=_0x27cbef[_0x8a20('0x17')]({'plain':!![]});var _0x4818c8=[{'name':_0x8a20('0x49'),'value':_0x8a20('0x18')},{'name':_0x8a20('0x19'),'value':_0x8a20('0x1a')},{'name':'InternalRoutes','value':_0x8a20('0x1c')}];var _0x106707=_[_0x8a20('0x21')](_0x4818c8,['value',_0x57acd5[_0x8a20('0x20')]])['name'];return db['UserProfileSection'][_0x8a20('0x21')]({'where':{'name':_0x106707,'userProfileId':_0x5807e2['userProfileId']},'raw':!![]})['then'](function(_0x661a7c){if(_0x661a7c&&_0x661a7c[_0x8a20('0x4a')]===0x0){return db[_0x8a20('0x23')][_0x8a20('0x42')]({'name':_0x57acd5[_0x8a20('0x22')],'resourceId':_0x57acd5['id'],'type':_0x661a7c[_0x8a20('0x22')],'sectionId':_0x661a7c['id']},{})[_0x8a20('0x16')](function(){return _0x27cbef;});}else{return _0x27cbef;}})[_0x8a20('0x3f')](function(_0x2f7140){logger[_0x8a20('0x24')](_0x8a20('0x4b'),_0x2f7140);throw _0x2f7140;});}return _0x27cbef;})[_0x8a20('0x16')](respondWithResult(_0x2d8471,0xc9))[_0x8a20('0x3f')](handleError(_0x2d8471,null));};exports[_0x8a20('0x4c')]=function(_0x21f9a8,_0x274d1e){if(_0x21f9a8[_0x8a20('0x43')]['id']){delete _0x21f9a8[_0x8a20('0x43')]['id'];}return db['VoiceExtension']['find']({'where':{'id':_0x21f9a8[_0x8a20('0x41')]['id']}})['then'](handleEntityNotFound(_0x274d1e,null))[_0x8a20('0x16')](function(_0x298585){if(_0x298585){return db[_0x8a20('0x27')]['update'](_[_0x8a20('0x36')](_0x21f9a8[_0x8a20('0x43')],['exten',_0x8a20('0x4d'),_0x8a20('0x4e'),'recordingFormat',_0x8a20('0x4f'),_0x8a20('0x50'),'alias']),{'where':{'context':_0x298585[_0x8a20('0x4d')],'exten':_0x298585[_0x8a20('0x44')]},'individualHooks':!![]})[_0x8a20('0x16')](function(_0x343794){return _0x343794;});}return null;})['then'](respondWithStatusCode(_0x274d1e,null))[_0x8a20('0x3f')](handleError(_0x274d1e,null));};exports[_0x8a20('0x51')]=function(_0x4ba13e,_0x142400){var _0xabc413=_0x4ba13e[_0x8a20('0x41')]['id'];var _0x566ab6=_0x4ba13e[_0x8a20('0x43')];var _0x548d2c=0xc8;var _0x14fc59=null;return db[_0x8a20('0x52')][_0x8a20('0x53')]({'isolationLevel':db[_0x8a20('0x52')]['Transaction'][_0x8a20('0x54')][_0x8a20('0x55')]},function(_0x2ad981){return db[_0x8a20('0x27')][_0x8a20('0x56')]({'where':{'id':_0xabc413},'transaction':_0x2ad981})['then'](function(_0x528ce9){if(_0x528ce9){return db[_0x8a20('0x27')][_0x8a20('0x15')]({'where':{'VoiceExtensionId':_0xabc413},'transaction':_0x2ad981})[_0x8a20('0x16')](function(){var _0x20f6fa=_[_0x8a20('0x26')](_0x566ab6,function(_0x3b565e){_0x3b565e[_0x8a20('0x57')]=_0xabc413;_0x3b565e['isApp']=!![];return _0x3b565e;});return _0x528ce9[_0x8a20('0x58')](_0x20f6fa);})['then'](function(_0xd2a76b){return db[_0x8a20('0x27')]['bulkCreate'](_0xd2a76b,{'transaction':_0x2ad981});});}else{_0x548d2c=0x194;_0x14fc59=[];}});})['then'](function(){if(_0x548d2c!==0x194){return db[_0x8a20('0x27')][_0x8a20('0x59')]({'where':{'isApp':!![],'VoiceExtensionId':_0xabc413},'order':_0x8a20('0x5a')})[_0x8a20('0x16')](function(_0x143eb2){_0x14fc59=_0x143eb2;});}})[_0x8a20('0x3f')](function(_0x3aab55){_0x548d2c=0x1f4;logger[_0x8a20('0x24')](_0x3aab55[_0x8a20('0x5b')]);if(_0x3aab55[_0x8a20('0x22')]){delete _0x3aab55[_0x8a20('0x22')];}_0x14fc59=_0x3aab55;})[_0x8a20('0x5c')](function(){if(_0x14fc59===null){_0x142400[_0x8a20('0xc')](_0x548d2c);}else{if(_0x548d2c===0x1f4){_0x142400[_0x8a20('0xd')](_0x548d2c)[_0x8a20('0x5d')](_0x14fc59);}else{_0x142400['status'](_0x548d2c)[_0x8a20('0x14')](_0x14fc59);}}});};