2d114ff075a003385626020aec4f9535a61484fa
[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 _0x0d40=['lodash','ioredis','../../components/parsers/qs','../../config/logger','api','../../config/environment','redis','defaults','localhost','socket.io-emitter','./voiceExtension.socket','register','sendStatus','end','json','limit','undefined','count','offset','status','set','Content-Range','destroy','then','get','InboundRoutes','OutboundRoutes','InternalRoutes','internal','ignore','map','value','includes','type','error','stack','name','send','VoiceExtension','rawAttributes','key','model','keys','query','filters','intersection','fields','attributes','length','order','sort','where','pick','filter','VIRTUAL','merge','options','include','findAll','rows','catch','params','includeAll','find','body','outbound','startsWith','exten','concat','create','user','role','inbound','UserProfileSection','userProfileId','autoAssociation','UserProfileResource','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','context','description','cutdigits','mandatoryDisposition','alias','sequelize','transaction','Transaction','ISOLATION_LEVELS','READ_COMMITTED','findOne','VoiceExtensionId','isApp','createRouting','bulkCreate','cast(priority\x20as\x20unsigned)','finally'];(function(_0x55e08b,_0x421620){var _0xd1a7ff=function(_0x58c7ff){while(--_0x58c7ff){_0x55e08b['push'](_0x55e08b['shift']());}};_0xd1a7ff(++_0x421620);}(_0x0d40,0x1e0));var _0x00d4=function(_0x1046ba,_0x17699d){_0x1046ba=_0x1046ba-0x0;var _0x31ae08=_0x0d40[_0x1046ba];return _0x31ae08;};'use strict';var _=require(_0x00d4('0x0'));var Redis=require(_0x00d4('0x1'));var qs=require(_0x00d4('0x2'));var logger=require(_0x00d4('0x3'))(_0x00d4('0x4'));var config=require(_0x00d4('0x5'));var db=require('../../mysqldb')['db'];config[_0x00d4('0x6')]=_[_0x00d4('0x7')](config[_0x00d4('0x6')],{'host':_0x00d4('0x8'),'port':0x18eb});var socket=require(_0x00d4('0x9'))(new Redis(config[_0x00d4('0x6')]));require(_0x00d4('0xa'))[_0x00d4('0xb')](socket);function respondWithStatusCode(_0x24153c,_0x2aa1e2){_0x2aa1e2=_0x2aa1e2||0xcc;return function(_0x34990a){if(_0x34990a){return _0x24153c[_0x00d4('0xc')](_0x2aa1e2);}return _0x24153c['status'](_0x2aa1e2)[_0x00d4('0xd')]();};}function respondWithResult(_0x2b4a2d,_0x376da1){_0x376da1=_0x376da1||0xc8;return function(_0x3dc221){if(_0x3dc221){return _0x2b4a2d['status'](_0x376da1)[_0x00d4('0xe')](_0x3dc221);}};}function respondWithFilteredResult(_0x24cd53,_0x21ea6c){return function(_0x169ca4){if(_0x169ca4){var _0x30d8b5=typeof _0x21ea6c['offset']==='undefined'&&typeof _0x21ea6c[_0x00d4('0xf')]===_0x00d4('0x10');var _0xbee153=_0x169ca4[_0x00d4('0x11')];var _0x2a92e1=_0x30d8b5?0x0:_0x21ea6c[_0x00d4('0x12')];var _0x36a888=_0x30d8b5?_0x169ca4['count']:_0x21ea6c[_0x00d4('0x12')]+_0x21ea6c['limit'];var _0x1c2877;if(_0x36a888>=_0xbee153){_0x36a888=_0xbee153;_0x1c2877=0xc8;}else{_0x1c2877=0xce;}_0x24cd53[_0x00d4('0x13')](_0x1c2877);return _0x24cd53[_0x00d4('0x14')](_0x00d4('0x15'),_0x2a92e1+'-'+_0x36a888+'/'+_0xbee153)[_0x00d4('0xe')](_0x169ca4);}return null;};}function removeEntity(_0x5d001c){return function(_0x995c40){if(_0x995c40){return _0x995c40[_0x00d4('0x16')]()[_0x00d4('0x17')](function(){var _0x4b9073=_0x995c40[_0x00d4('0x18')]({'plain':!![]});var _0x48968a=[{'name':_0x00d4('0x19'),'value':'inbound','ignore':![]},{'name':_0x00d4('0x1a'),'value':'outbound','ignore':![]},{'name':_0x00d4('0x1b'),'value':_0x00d4('0x1c'),'ignore':![]}];var _0x14a208=_(_0x48968a)['filter'](_0x00d4('0x1d'))[_0x00d4('0x1e')]('value')[_0x00d4('0x1f')]();if(_[_0x00d4('0x20')](_0x14a208,_0x4b9073['type'])){return;}var _0x46b3f7=_['find'](_0x48968a,[_0x00d4('0x1f'),_0x4b9073[_0x00d4('0x21')]])['name'];return db['UserProfileResource'][_0x00d4('0x16')]({'where':{'type':_0x46b3f7,'resourceId':_0x4b9073['id']}})[_0x00d4('0x17')](function(){return _0x995c40;});})['then'](function(){_0x5d001c[_0x00d4('0x13')](0xcc)[_0x00d4('0xd')]();});}};}function handleEntityNotFound(_0x59b1bb){return function(_0x3d1982){if(!_0x3d1982){_0x59b1bb[_0x00d4('0xc')](0x194);}return _0x3d1982;};}function handleError(_0x22f99a,_0x52fd6d){_0x52fd6d=_0x52fd6d||0x1f4;return function(_0x4357df){logger[_0x00d4('0x22')](_0x4357df[_0x00d4('0x23')]);if(_0x4357df[_0x00d4('0x24')]){delete _0x4357df[_0x00d4('0x24')];}_0x22f99a[_0x00d4('0x13')](_0x52fd6d)[_0x00d4('0x25')](_0x4357df);};}exports['index']=function(_0x25d31a,_0x1d8ee2){var _0x3efc23={},_0x30a396={},_0x27ca85={'count':0x0,'rows':[]};var _0x532fd5=_[_0x00d4('0x1e')](db[_0x00d4('0x26')][_0x00d4('0x27')],function(_0x5a7884){return{'name':_0x5a7884['fieldName'],'type':_0x5a7884[_0x00d4('0x21')][_0x00d4('0x28')]};});_0x30a396[_0x00d4('0x29')]=_[_0x00d4('0x1e')](_0x532fd5,_0x00d4('0x24'));_0x30a396['query']=_[_0x00d4('0x2a')](_0x25d31a[_0x00d4('0x2b')]);_0x30a396[_0x00d4('0x2c')]=_[_0x00d4('0x2d')](_0x30a396[_0x00d4('0x29')],_0x30a396[_0x00d4('0x2b')]);_0x3efc23['attributes']=_[_0x00d4('0x2d')](_0x30a396[_0x00d4('0x29')],qs[_0x00d4('0x2e')](_0x25d31a[_0x00d4('0x2b')][_0x00d4('0x2e')]));_0x3efc23[_0x00d4('0x2f')]=_0x3efc23[_0x00d4('0x2f')][_0x00d4('0x30')]?_0x3efc23[_0x00d4('0x2f')]:_0x30a396[_0x00d4('0x29')];if(!_0x25d31a['query']['hasOwnProperty']('nolimit')){_0x3efc23[_0x00d4('0xf')]=qs['limit'](_0x25d31a[_0x00d4('0x2b')][_0x00d4('0xf')]);_0x3efc23[_0x00d4('0x12')]=qs['offset'](_0x25d31a[_0x00d4('0x2b')][_0x00d4('0x12')]);}_0x3efc23[_0x00d4('0x31')]=qs['sort'](_0x25d31a[_0x00d4('0x2b')][_0x00d4('0x32')]);_0x3efc23[_0x00d4('0x33')]=qs[_0x00d4('0x2c')](_[_0x00d4('0x34')](_0x25d31a[_0x00d4('0x2b')],_0x30a396['filters']),_0x532fd5);if(_0x25d31a[_0x00d4('0x2b')][_0x00d4('0x35')]){_0x3efc23['where']=_['merge'](_0x3efc23['where'],{'$or':_[_0x00d4('0x1e')](_0x532fd5,function(_0x13c495){if(_0x13c495[_0x00d4('0x21')]!==_0x00d4('0x36')){var _0x462c42={};_0x462c42[_0x13c495['name']]={'$like':'%'+_0x25d31a[_0x00d4('0x2b')][_0x00d4('0x35')]+'%'};return _0x462c42;}})});}_0x3efc23=_[_0x00d4('0x37')]({},_0x3efc23,_0x25d31a[_0x00d4('0x38')]);var _0x8a03dc={'where':_0x3efc23[_0x00d4('0x33')]};return db[_0x00d4('0x26')][_0x00d4('0x11')](_0x8a03dc)['then'](function(_0x5a73f7){_0x27ca85[_0x00d4('0x11')]=_0x5a73f7;if(_0x25d31a[_0x00d4('0x2b')]['includeAll']){_0x3efc23[_0x00d4('0x39')]=[{'all':!![]}];}return db['VoiceExtension'][_0x00d4('0x3a')](_0x3efc23);})[_0x00d4('0x17')](function(_0x2c4115){_0x27ca85[_0x00d4('0x3b')]=_0x2c4115;return _0x27ca85;})[_0x00d4('0x17')](respondWithFilteredResult(_0x1d8ee2,_0x3efc23))[_0x00d4('0x3c')](handleError(_0x1d8ee2,null));};exports['show']=function(_0x415eec,_0x3153dd){var _0x3ede53={'raw':![],'where':{'id':_0x415eec[_0x00d4('0x3d')]['id']}},_0x384858={};_0x384858['model']=_['keys'](db[_0x00d4('0x26')][_0x00d4('0x27')]);_0x384858['query']=_['keys'](_0x415eec[_0x00d4('0x2b')]);_0x384858[_0x00d4('0x2c')]=_[_0x00d4('0x2d')](_0x384858[_0x00d4('0x29')],_0x384858['query']);_0x3ede53[_0x00d4('0x2f')]=_[_0x00d4('0x2d')](_0x384858['model'],qs[_0x00d4('0x2e')](_0x415eec[_0x00d4('0x2b')][_0x00d4('0x2e')]));_0x3ede53[_0x00d4('0x2f')]=_0x3ede53['attributes'][_0x00d4('0x30')]?_0x3ede53[_0x00d4('0x2f')]:_0x384858[_0x00d4('0x29')];if(_0x415eec['query'][_0x00d4('0x3e')]){_0x3ede53[_0x00d4('0x39')]=[{'all':!![]}];}_0x3ede53=_[_0x00d4('0x37')]({},_0x3ede53,_0x415eec[_0x00d4('0x38')]);return db[_0x00d4('0x26')][_0x00d4('0x3f')](_0x3ede53)['then'](handleEntityNotFound(_0x3153dd,null))[_0x00d4('0x17')](respondWithResult(_0x3153dd,null))[_0x00d4('0x3c')](handleError(_0x3153dd,null));};exports[_0x00d4('0x16')]=function(_0x39fee5,_0x43537e){return db[_0x00d4('0x26')]['find']({'where':{'id':_0x39fee5['params']['id']}})['then'](handleEntityNotFound(_0x43537e,null))[_0x00d4('0x17')](removeEntity(_0x43537e,null))['catch'](handleError(_0x43537e,null));};exports['create']=function(_0x2d77d6,_0x2880bc){if(_0x2d77d6[_0x00d4('0x40')][_0x00d4('0x21')]===_0x00d4('0x41')&&!_[_0x00d4('0x42')](_0x2d77d6[_0x00d4('0x40')][_0x00d4('0x43')],'_')){_0x2d77d6[_0x00d4('0x40')][_0x00d4('0x43')]='_'[_0x00d4('0x44')](_0x2d77d6['body'][_0x00d4('0x43')]);}return db['VoiceExtension'][_0x00d4('0x45')](_0x2d77d6[_0x00d4('0x40')],{'raw':![]})['then'](function(_0x2620cf){var _0x10e631=_0x2d77d6[_0x00d4('0x46')][_0x00d4('0x18')]({'plain':!![]});if(!_0x10e631)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x10e631[_0x00d4('0x47')]===_0x00d4('0x46')){var _0x2df828=_0x2620cf['get']({'plain':!![]});var _0x240a0d=[{'name':_0x00d4('0x19'),'value':_0x00d4('0x48')},{'name':_0x00d4('0x1a'),'value':'outbound'},{'name':_0x00d4('0x1b'),'value':_0x00d4('0x1c')}];var _0x508527=_[_0x00d4('0x3f')](_0x240a0d,['value',_0x2df828[_0x00d4('0x21')]])[_0x00d4('0x24')];return db[_0x00d4('0x49')]['find']({'where':{'name':_0x508527,'userProfileId':_0x10e631[_0x00d4('0x4a')]},'raw':!![]})[_0x00d4('0x17')](function(_0x1e02ba){if(_0x1e02ba&&_0x1e02ba[_0x00d4('0x4b')]===0x0){return db[_0x00d4('0x4c')][_0x00d4('0x45')]({'name':_0x2df828[_0x00d4('0x24')],'resourceId':_0x2df828['id'],'type':_0x1e02ba[_0x00d4('0x24')],'sectionId':_0x1e02ba['id']},{})[_0x00d4('0x17')](function(){return _0x2620cf;});}else{return _0x2620cf;}})['catch'](function(_0x25e6df){logger[_0x00d4('0x22')](_0x00d4('0x4d'),_0x25e6df);throw _0x25e6df;});}return _0x2620cf;})[_0x00d4('0x17')](respondWithResult(_0x2880bc,0xc9))[_0x00d4('0x3c')](handleError(_0x2880bc,null));};exports[_0x00d4('0x4e')]=function(_0x30d532,_0x29ce78){if(_0x30d532['body']['id']){delete _0x30d532[_0x00d4('0x40')]['id'];}return db[_0x00d4('0x26')]['find']({'where':{'id':_0x30d532[_0x00d4('0x3d')]['id']}})[_0x00d4('0x17')](handleEntityNotFound(_0x29ce78,null))[_0x00d4('0x17')](function(_0x9d74a0){if(_0x9d74a0){return db[_0x00d4('0x26')][_0x00d4('0x4e')](_[_0x00d4('0x34')](_0x30d532[_0x00d4('0x40')],[_0x00d4('0x43'),_0x00d4('0x4f'),_0x00d4('0x50'),'recordingFormat',_0x00d4('0x51'),_0x00d4('0x52'),_0x00d4('0x53')]),{'where':{'context':_0x9d74a0[_0x00d4('0x4f')],'exten':_0x9d74a0[_0x00d4('0x43')]},'individualHooks':!![]})[_0x00d4('0x17')](function(_0x322ff9){return _0x322ff9;});}return null;})[_0x00d4('0x17')](respondWithStatusCode(_0x29ce78,null))['catch'](handleError(_0x29ce78,null));};exports['addApplications']=function(_0x23e6ad,_0x45d27f){var _0x5dc16e=_0x23e6ad[_0x00d4('0x3d')]['id'];var _0x21539a=_0x23e6ad['body'];var _0x285e3c=0xc8;var _0x29a5f0=null;return db[_0x00d4('0x54')][_0x00d4('0x55')]({'isolationLevel':db[_0x00d4('0x54')][_0x00d4('0x56')][_0x00d4('0x57')][_0x00d4('0x58')]},function(_0x4dbb06){return db[_0x00d4('0x26')][_0x00d4('0x59')]({'where':{'id':_0x5dc16e},'transaction':_0x4dbb06})[_0x00d4('0x17')](function(_0x511766){if(_0x511766){return db[_0x00d4('0x26')]['destroy']({'where':{'VoiceExtensionId':_0x5dc16e},'transaction':_0x4dbb06})[_0x00d4('0x17')](function(){var _0x47b63a=_[_0x00d4('0x1e')](_0x21539a,function(_0x38d21f){_0x38d21f[_0x00d4('0x5a')]=_0x5dc16e;_0x38d21f[_0x00d4('0x5b')]=!![];return _0x38d21f;});return _0x511766[_0x00d4('0x5c')](_0x47b63a);})[_0x00d4('0x17')](function(_0xd9fc8d){return db['VoiceExtension'][_0x00d4('0x5d')](_0xd9fc8d,{'transaction':_0x4dbb06});});}else{_0x285e3c=0x194;_0x29a5f0=[];}});})['then'](function(){if(_0x285e3c!==0x194){return db[_0x00d4('0x26')]['findAndCountAll']({'where':{'isApp':!![],'VoiceExtensionId':_0x5dc16e},'order':_0x00d4('0x5e')})[_0x00d4('0x17')](function(_0x686383){_0x29a5f0=_0x686383;});}})[_0x00d4('0x3c')](function(_0x29ba67){_0x285e3c=0x1f4;logger['error'](_0x29ba67['stack']);if(_0x29ba67['name']){delete _0x29ba67[_0x00d4('0x24')];}_0x29a5f0=_0x29ba67;})[_0x00d4('0x5f')](function(){if(_0x29a5f0===null){_0x45d27f[_0x00d4('0xc')](_0x285e3c);}else{if(_0x285e3c===0x1f4){_0x45d27f[_0x00d4('0x13')](_0x285e3c)[_0x00d4('0x25')](_0x29a5f0);}else{_0x45d27f['status'](_0x285e3c)[_0x00d4('0xe')](_0x29a5f0);}}});};