8a4823f7bc2dab085e6a55859f002dd87805761f
[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 _0x1938=['pick','filter','VIRTUAL','merge','options','includeAll','include','findAll','rows','catch','show','params','keys','length','create','startsWith','body','exten','concat','user','role','UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','context','recordingFormat','cutdigits','mandatoryDisposition','alias','addApplications','sequelize','transaction','ISOLATION_LEVELS','READ_COMMITTED','VoiceExtensionId','isApp','createRouting','bulkCreate','findAndCountAll','cast(priority\x20as\x20unsigned)','stack','finally','lodash','../../components/parsers/qs','../../config/logger','api','../../config/environment','redis','localhost','register','sendStatus','status','end','json','offset','limit','count','Content-Range','destroy','then','get','InboundRoutes','inbound','OutboundRoutes','outbound','InternalRoutes','internal','ignore','map','value','includes','type','find','UserProfileResource','error','name','send','index','VoiceExtension','rawAttributes','fieldName','model','filters','intersection','fields','query','attributes','nolimit','order','sort','where'];(function(_0x55bb35,_0x568ecb){var _0x1d7d35=function(_0x12b1c0){while(--_0x12b1c0){_0x55bb35['push'](_0x55bb35['shift']());}};_0x1d7d35(++_0x568ecb);}(_0x1938,0x1a0));var _0x8193=function(_0x489f8a,_0x44a534){_0x489f8a=_0x489f8a-0x0;var _0x15ac61=_0x1938[_0x489f8a];return _0x15ac61;};'use strict';var _=require(_0x8193('0x0'));var Redis=require('ioredis');var qs=require(_0x8193('0x1'));var logger=require(_0x8193('0x2'))(_0x8193('0x3'));var config=require(_0x8193('0x4'));var db=require('../../mysqldb')['db'];config[_0x8193('0x5')]=_['defaults'](config[_0x8193('0x5')],{'host':_0x8193('0x6'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x8193('0x5')]));require('./voiceExtension.socket')[_0x8193('0x7')](socket);function respondWithStatusCode(_0x114435,_0x1bca13){_0x1bca13=_0x1bca13||0xcc;return function(_0x2484d3){if(_0x2484d3){return _0x114435[_0x8193('0x8')](_0x1bca13);}return _0x114435[_0x8193('0x9')](_0x1bca13)[_0x8193('0xa')]();};}function respondWithResult(_0x55ca88,_0x59b512){_0x59b512=_0x59b512||0xc8;return function(_0x52dfec){if(_0x52dfec){return _0x55ca88['status'](_0x59b512)[_0x8193('0xb')](_0x52dfec);}};}function respondWithFilteredResult(_0x128d67,_0x2ca807){return function(_0x3db10e){if(_0x3db10e){var _0x24c368=typeof _0x2ca807[_0x8193('0xc')]==='undefined'&&typeof _0x2ca807[_0x8193('0xd')]==='undefined';var _0x1bb8bd=_0x3db10e[_0x8193('0xe')];var _0x240cf2=_0x24c368?0x0:_0x2ca807[_0x8193('0xc')];var _0x1bc58c=_0x24c368?_0x3db10e[_0x8193('0xe')]:_0x2ca807[_0x8193('0xc')]+_0x2ca807['limit'];var _0x195ec3;if(_0x1bc58c>=_0x1bb8bd){_0x1bc58c=_0x1bb8bd;_0x195ec3=0xc8;}else{_0x195ec3=0xce;}_0x128d67[_0x8193('0x9')](_0x195ec3);return _0x128d67['set'](_0x8193('0xf'),_0x240cf2+'-'+_0x1bc58c+'/'+_0x1bb8bd)[_0x8193('0xb')](_0x3db10e);}return null;};}function removeEntity(_0x41a633){return function(_0x4ce085){if(_0x4ce085){return _0x4ce085[_0x8193('0x10')]()[_0x8193('0x11')](function(){var _0x56b2a6=_0x4ce085[_0x8193('0x12')]({'plain':!![]});var _0x1a25dd=[{'name':_0x8193('0x13'),'value':_0x8193('0x14'),'ignore':![]},{'name':_0x8193('0x15'),'value':_0x8193('0x16'),'ignore':![]},{'name':_0x8193('0x17'),'value':_0x8193('0x18'),'ignore':![]}];var _0x697389=_(_0x1a25dd)['filter'](_0x8193('0x19'))[_0x8193('0x1a')](_0x8193('0x1b'))[_0x8193('0x1b')]();if(_[_0x8193('0x1c')](_0x697389,_0x56b2a6[_0x8193('0x1d')])){return;}var _0x1010a5=_[_0x8193('0x1e')](_0x1a25dd,[_0x8193('0x1b'),_0x56b2a6['type']])['name'];return db[_0x8193('0x1f')]['destroy']({'where':{'type':_0x1010a5,'resourceId':_0x56b2a6['id']}})['then'](function(){return _0x4ce085;});})[_0x8193('0x11')](function(){_0x41a633[_0x8193('0x9')](0xcc)[_0x8193('0xa')]();});}};}function handleEntityNotFound(_0x1454cb){return function(_0x3198c8){if(!_0x3198c8){_0x1454cb[_0x8193('0x8')](0x194);}return _0x3198c8;};}function handleError(_0x298ce4,_0x47aaef){_0x47aaef=_0x47aaef||0x1f4;return function(_0x1d3836){logger[_0x8193('0x20')](_0x1d3836['stack']);if(_0x1d3836[_0x8193('0x21')]){delete _0x1d3836[_0x8193('0x21')];}_0x298ce4[_0x8193('0x9')](_0x47aaef)[_0x8193('0x22')](_0x1d3836);};}exports[_0x8193('0x23')]=function(_0x489bf3,_0x5d4dc8){var _0x15a8b7={},_0x4b3b71={},_0x4bc130={'count':0x0,'rows':[]};var _0x331091=_[_0x8193('0x1a')](db[_0x8193('0x24')][_0x8193('0x25')],function(_0x4faf38){return{'name':_0x4faf38[_0x8193('0x26')],'type':_0x4faf38[_0x8193('0x1d')]['key']};});_0x4b3b71[_0x8193('0x27')]=_[_0x8193('0x1a')](_0x331091,_0x8193('0x21'));_0x4b3b71['query']=_['keys'](_0x489bf3['query']);_0x4b3b71[_0x8193('0x28')]=_[_0x8193('0x29')](_0x4b3b71['model'],_0x4b3b71['query']);_0x15a8b7['attributes']=_[_0x8193('0x29')](_0x4b3b71[_0x8193('0x27')],qs[_0x8193('0x2a')](_0x489bf3[_0x8193('0x2b')][_0x8193('0x2a')]));_0x15a8b7['attributes']=_0x15a8b7[_0x8193('0x2c')]['length']?_0x15a8b7[_0x8193('0x2c')]:_0x4b3b71[_0x8193('0x27')];if(!_0x489bf3[_0x8193('0x2b')]['hasOwnProperty'](_0x8193('0x2d'))){_0x15a8b7[_0x8193('0xd')]=qs['limit'](_0x489bf3[_0x8193('0x2b')][_0x8193('0xd')]);_0x15a8b7['offset']=qs['offset'](_0x489bf3[_0x8193('0x2b')][_0x8193('0xc')]);}_0x15a8b7[_0x8193('0x2e')]=qs['sort'](_0x489bf3[_0x8193('0x2b')][_0x8193('0x2f')]);_0x15a8b7[_0x8193('0x30')]=qs[_0x8193('0x28')](_[_0x8193('0x31')](_0x489bf3['query'],_0x4b3b71['filters']),_0x331091);if(_0x489bf3[_0x8193('0x2b')][_0x8193('0x32')]){_0x15a8b7['where']=_['merge'](_0x15a8b7[_0x8193('0x30')],{'$or':_['map'](_0x331091,function(_0xaa3de){if(_0xaa3de[_0x8193('0x1d')]!==_0x8193('0x33')){var _0x11e7d5={};_0x11e7d5[_0xaa3de[_0x8193('0x21')]]={'$like':'%'+_0x489bf3[_0x8193('0x2b')][_0x8193('0x32')]+'%'};return _0x11e7d5;}})});}_0x15a8b7=_[_0x8193('0x34')]({},_0x15a8b7,_0x489bf3[_0x8193('0x35')]);var _0x26aa03={'where':_0x15a8b7[_0x8193('0x30')]};return db[_0x8193('0x24')]['count'](_0x26aa03)['then'](function(_0x305b26){_0x4bc130['count']=_0x305b26;if(_0x489bf3[_0x8193('0x2b')][_0x8193('0x36')]){_0x15a8b7[_0x8193('0x37')]=[{'all':!![]}];}return db[_0x8193('0x24')][_0x8193('0x38')](_0x15a8b7);})[_0x8193('0x11')](function(_0xa7a855){_0x4bc130[_0x8193('0x39')]=_0xa7a855;return _0x4bc130;})['then'](respondWithFilteredResult(_0x5d4dc8,_0x15a8b7))[_0x8193('0x3a')](handleError(_0x5d4dc8,null));};exports[_0x8193('0x3b')]=function(_0x263d2c,_0x8ee922){var _0x4017bf={'raw':![],'where':{'id':_0x263d2c[_0x8193('0x3c')]['id']}},_0x40d169={};_0x40d169[_0x8193('0x27')]=_[_0x8193('0x3d')](db[_0x8193('0x24')]['rawAttributes']);_0x40d169[_0x8193('0x2b')]=_[_0x8193('0x3d')](_0x263d2c[_0x8193('0x2b')]);_0x40d169['filters']=_[_0x8193('0x29')](_0x40d169[_0x8193('0x27')],_0x40d169[_0x8193('0x2b')]);_0x4017bf[_0x8193('0x2c')]=_[_0x8193('0x29')](_0x40d169[_0x8193('0x27')],qs['fields'](_0x263d2c[_0x8193('0x2b')][_0x8193('0x2a')]));_0x4017bf['attributes']=_0x4017bf[_0x8193('0x2c')][_0x8193('0x3e')]?_0x4017bf[_0x8193('0x2c')]:_0x40d169[_0x8193('0x27')];if(_0x263d2c[_0x8193('0x2b')]['includeAll']){_0x4017bf[_0x8193('0x37')]=[{'all':!![]}];}_0x4017bf=_[_0x8193('0x34')]({},_0x4017bf,_0x263d2c['options']);return db[_0x8193('0x24')][_0x8193('0x1e')](_0x4017bf)[_0x8193('0x11')](handleEntityNotFound(_0x8ee922,null))[_0x8193('0x11')](respondWithResult(_0x8ee922,null))[_0x8193('0x3a')](handleError(_0x8ee922,null));};exports[_0x8193('0x10')]=function(_0x53ecbc,_0x552090){return db['VoiceExtension'][_0x8193('0x1e')]({'where':{'id':_0x53ecbc[_0x8193('0x3c')]['id']}})[_0x8193('0x11')](handleEntityNotFound(_0x552090,null))[_0x8193('0x11')](removeEntity(_0x552090,null))[_0x8193('0x3a')](handleError(_0x552090,null));};exports[_0x8193('0x3f')]=function(_0x29e11c,_0x4b37cb){if(_0x29e11c['body'][_0x8193('0x1d')]===_0x8193('0x16')&&!_[_0x8193('0x40')](_0x29e11c[_0x8193('0x41')]['exten'],'_')){_0x29e11c[_0x8193('0x41')][_0x8193('0x42')]='_'[_0x8193('0x43')](_0x29e11c[_0x8193('0x41')][_0x8193('0x42')]);}return db[_0x8193('0x24')][_0x8193('0x3f')](_0x29e11c[_0x8193('0x41')],{'raw':![]})['then'](function(_0x22923c){var _0x4dd177=_0x29e11c[_0x8193('0x44')][_0x8193('0x12')]({'plain':!![]});if(!_0x4dd177)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x4dd177[_0x8193('0x45')]===_0x8193('0x44')){var _0x3b4803=_0x22923c[_0x8193('0x12')]({'plain':!![]});var _0x61c2ad=[{'name':_0x8193('0x13'),'value':_0x8193('0x14')},{'name':_0x8193('0x15'),'value':_0x8193('0x16')},{'name':_0x8193('0x17'),'value':_0x8193('0x18')}];var _0x490f4c=_[_0x8193('0x1e')](_0x61c2ad,[_0x8193('0x1b'),_0x3b4803['type']])[_0x8193('0x21')];return db[_0x8193('0x46')]['find']({'where':{'name':_0x490f4c,'userProfileId':_0x4dd177[_0x8193('0x47')]},'raw':!![]})[_0x8193('0x11')](function(_0x178d81){if(_0x178d81&&_0x178d81[_0x8193('0x48')]===0x0){return db[_0x8193('0x1f')][_0x8193('0x3f')]({'name':_0x3b4803[_0x8193('0x21')],'resourceId':_0x3b4803['id'],'type':_0x178d81[_0x8193('0x21')],'sectionId':_0x178d81['id']},{})[_0x8193('0x11')](function(){return _0x22923c;});}else{return _0x22923c;}})['catch'](function(_0xdd8f22){logger[_0x8193('0x20')](_0x8193('0x49'),_0xdd8f22);throw _0xdd8f22;});}return _0x22923c;})[_0x8193('0x11')](respondWithResult(_0x4b37cb,0xc9))[_0x8193('0x3a')](handleError(_0x4b37cb,null));};exports[_0x8193('0x4a')]=function(_0x4c55bf,_0x266909){if(_0x4c55bf[_0x8193('0x41')]['id']){delete _0x4c55bf[_0x8193('0x41')]['id'];}return db['VoiceExtension']['find']({'where':{'id':_0x4c55bf[_0x8193('0x3c')]['id']}})[_0x8193('0x11')](handleEntityNotFound(_0x266909,null))[_0x8193('0x11')](function(_0x4a38c2){if(_0x4a38c2){return db[_0x8193('0x24')][_0x8193('0x4a')](_[_0x8193('0x31')](_0x4c55bf['body'],[_0x8193('0x42'),_0x8193('0x4b'),'description',_0x8193('0x4c'),_0x8193('0x4d'),_0x8193('0x4e'),_0x8193('0x4f')]),{'where':{'context':_0x4a38c2[_0x8193('0x4b')],'exten':_0x4a38c2['exten']},'individualHooks':!![]})[_0x8193('0x11')](function(_0x824a58){return _0x824a58;});}return null;})[_0x8193('0x11')](respondWithStatusCode(_0x266909,null))[_0x8193('0x3a')](handleError(_0x266909,null));};exports[_0x8193('0x50')]=function(_0x441c8b,_0x1b7341){var _0x3c4e37=_0x441c8b[_0x8193('0x3c')]['id'];var _0x1992ca=_0x441c8b[_0x8193('0x41')];var _0x3bb01a=0xc8;var _0x3ffabf=null;return db[_0x8193('0x51')][_0x8193('0x52')]({'isolationLevel':db[_0x8193('0x51')]['Transaction'][_0x8193('0x53')][_0x8193('0x54')]},function(_0x44af74){return db[_0x8193('0x24')]['findOne']({'where':{'id':_0x3c4e37},'transaction':_0x44af74})['then'](function(_0x4b4383){if(_0x4b4383){return db[_0x8193('0x24')][_0x8193('0x10')]({'where':{'VoiceExtensionId':_0x3c4e37},'transaction':_0x44af74})['then'](function(){var _0x1f939b=_[_0x8193('0x1a')](_0x1992ca,function(_0x4427fa){_0x4427fa[_0x8193('0x55')]=_0x3c4e37;_0x4427fa[_0x8193('0x56')]=!![];return _0x4427fa;});return _0x4b4383[_0x8193('0x57')](_0x1f939b);})[_0x8193('0x11')](function(_0x4a1973){return db[_0x8193('0x24')][_0x8193('0x58')](_0x4a1973,{'transaction':_0x44af74});});}else{_0x3bb01a=0x194;_0x3ffabf=[];}});})[_0x8193('0x11')](function(){if(_0x3bb01a!==0x194){return db[_0x8193('0x24')][_0x8193('0x59')]({'where':{'isApp':!![],'VoiceExtensionId':_0x3c4e37},'order':_0x8193('0x5a')})['then'](function(_0x5959f5){_0x3ffabf=_0x5959f5;});}})[_0x8193('0x3a')](function(_0xa89df2){_0x3bb01a=0x1f4;logger[_0x8193('0x20')](_0xa89df2[_0x8193('0x5b')]);if(_0xa89df2[_0x8193('0x21')]){delete _0xa89df2['name'];}_0x3ffabf=_0xa89df2;})[_0x8193('0x5c')](function(){if(_0x3ffabf===null){_0x1b7341[_0x8193('0x8')](_0x3bb01a);}else{if(_0x3bb01a===0x1f4){_0x1b7341[_0x8193('0x9')](_0x3bb01a)['send'](_0x3ffabf);}else{_0x1b7341[_0x8193('0x9')](_0x3bb01a)[_0x8193('0xb')](_0x3ffabf);}}});};