Built motion from commit 753c950e.|2.5.42
[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 _0x38c6=['transaction','Transaction','ISOLATION_LEVELS','READ_COMMITTED','findOne','VoiceExtensionId','isApp','createRouting','bulkCreate','findAndCountAll','cast(priority\x20as\x20unsigned)','finally','lodash','../../components/parsers/qs','../../config/logger','redis','defaults','localhost','socket.io-emitter','./voiceExtension.socket','register','sendStatus','status','end','json','undefined','limit','count','offset','set','Content-Range','destroy','then','get','InboundRoutes','inbound','OutboundRoutes','outbound','InternalRoutes','internal','filter','ignore','map','value','type','name','stack','send','index','VoiceExtension','rawAttributes','fieldName','key','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','sort','where','pick','merge','VIRTUAL','options','include','findAll','show','params','includeAll','catch','find','create','body','startsWith','exten','concat','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','userProfileId','autoAssociation','error','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','context','description','recordingFormat','cutdigits','mandatoryDisposition','alias','sequelize'];(function(_0x54696a,_0x571132){var _0x1693bb=function(_0x10b9ce){while(--_0x10b9ce){_0x54696a['push'](_0x54696a['shift']());}};_0x1693bb(++_0x571132);}(_0x38c6,0x1e7));var _0x638c=function(_0x545b71,_0x4f44eb){_0x545b71=_0x545b71-0x0;var _0x26e587=_0x38c6[_0x545b71];return _0x26e587;};'use strict';var _=require(_0x638c('0x0'));var Redis=require('ioredis');var qs=require(_0x638c('0x1'));var logger=require(_0x638c('0x2'))('api');var config=require('../../config/environment');var db=require('../../mysqldb')['db'];config[_0x638c('0x3')]=_[_0x638c('0x4')](config[_0x638c('0x3')],{'host':_0x638c('0x5'),'port':0x18eb});var socket=require(_0x638c('0x6'))(new Redis(config['redis']));require(_0x638c('0x7'))[_0x638c('0x8')](socket);function respondWithStatusCode(_0x58db15,_0xf75adf){_0xf75adf=_0xf75adf||0xcc;return function(_0x5af13c){if(_0x5af13c){return _0x58db15[_0x638c('0x9')](_0xf75adf);}return _0x58db15[_0x638c('0xa')](_0xf75adf)[_0x638c('0xb')]();};}function respondWithResult(_0x3f1476,_0x55f0d5){_0x55f0d5=_0x55f0d5||0xc8;return function(_0x19261e){if(_0x19261e){return _0x3f1476[_0x638c('0xa')](_0x55f0d5)[_0x638c('0xc')](_0x19261e);}};}function respondWithFilteredResult(_0x124fb1,_0x3f4eff){return function(_0x296f9b){if(_0x296f9b){var _0x4245bf=typeof _0x3f4eff['offset']===_0x638c('0xd')&&typeof _0x3f4eff[_0x638c('0xe')]===_0x638c('0xd');var _0x31ee47=_0x296f9b[_0x638c('0xf')];var _0x3a2fc6=_0x4245bf?0x0:_0x3f4eff[_0x638c('0x10')];var _0x2aa921=_0x4245bf?_0x296f9b['count']:_0x3f4eff[_0x638c('0x10')]+_0x3f4eff['limit'];var _0x4822a3;if(_0x2aa921>=_0x31ee47){_0x2aa921=_0x31ee47;_0x4822a3=0xc8;}else{_0x4822a3=0xce;}_0x124fb1['status'](_0x4822a3);return _0x124fb1[_0x638c('0x11')](_0x638c('0x12'),_0x3a2fc6+'-'+_0x2aa921+'/'+_0x31ee47)[_0x638c('0xc')](_0x296f9b);}return null;};}function removeEntity(_0x205ed5){return function(_0x3b157b){if(_0x3b157b){return _0x3b157b[_0x638c('0x13')]()[_0x638c('0x14')](function(){var _0xb73713=_0x3b157b[_0x638c('0x15')]({'plain':!![]});var _0x491d88=[{'name':_0x638c('0x16'),'value':_0x638c('0x17'),'ignore':![]},{'name':_0x638c('0x18'),'value':_0x638c('0x19'),'ignore':![]},{'name':_0x638c('0x1a'),'value':_0x638c('0x1b'),'ignore':![]}];var _0x4a0851=_(_0x491d88)[_0x638c('0x1c')](_0x638c('0x1d'))[_0x638c('0x1e')](_0x638c('0x1f'))['value']();if(_['includes'](_0x4a0851,_0xb73713['type'])){return;}var _0x2211c7=_['find'](_0x491d88,[_0x638c('0x1f'),_0xb73713[_0x638c('0x20')]])[_0x638c('0x21')];return db['UserProfileResource'][_0x638c('0x13')]({'where':{'type':_0x2211c7,'resourceId':_0xb73713['id']}})[_0x638c('0x14')](function(){return _0x3b157b;});})['then'](function(){_0x205ed5[_0x638c('0xa')](0xcc)[_0x638c('0xb')]();});}};}function handleEntityNotFound(_0x3b22f2){return function(_0x46c141){if(!_0x46c141){_0x3b22f2[_0x638c('0x9')](0x194);}return _0x46c141;};}function handleError(_0x1b466a,_0x214e14){_0x214e14=_0x214e14||0x1f4;return function(_0x3d77e6){logger['error'](_0x3d77e6[_0x638c('0x22')]);if(_0x3d77e6[_0x638c('0x21')]){delete _0x3d77e6['name'];}_0x1b466a['status'](_0x214e14)[_0x638c('0x23')](_0x3d77e6);};}exports[_0x638c('0x24')]=function(_0x4e6470,_0x45f56e){var _0x13471a={},_0x120d6f={},_0x46e98f={'count':0x0,'rows':[]};var _0x438035=_[_0x638c('0x1e')](db[_0x638c('0x25')][_0x638c('0x26')],function(_0x263f24){return{'name':_0x263f24[_0x638c('0x27')],'type':_0x263f24[_0x638c('0x20')][_0x638c('0x28')]};});_0x120d6f[_0x638c('0x29')]=_[_0x638c('0x1e')](_0x438035,_0x638c('0x21'));_0x120d6f[_0x638c('0x2a')]=_[_0x638c('0x2b')](_0x4e6470['query']);_0x120d6f[_0x638c('0x2c')]=_[_0x638c('0x2d')](_0x120d6f[_0x638c('0x29')],_0x120d6f[_0x638c('0x2a')]);_0x13471a[_0x638c('0x2e')]=_['intersection'](_0x120d6f[_0x638c('0x29')],qs[_0x638c('0x2f')](_0x4e6470[_0x638c('0x2a')][_0x638c('0x2f')]));_0x13471a[_0x638c('0x2e')]=_0x13471a['attributes'][_0x638c('0x30')]?_0x13471a[_0x638c('0x2e')]:_0x120d6f[_0x638c('0x29')];if(!_0x4e6470[_0x638c('0x2a')][_0x638c('0x31')]('nolimit')){_0x13471a[_0x638c('0xe')]=qs['limit'](_0x4e6470[_0x638c('0x2a')][_0x638c('0xe')]);_0x13471a[_0x638c('0x10')]=qs[_0x638c('0x10')](_0x4e6470[_0x638c('0x2a')][_0x638c('0x10')]);}_0x13471a['order']=qs[_0x638c('0x32')](_0x4e6470[_0x638c('0x2a')][_0x638c('0x32')]);_0x13471a[_0x638c('0x33')]=qs[_0x638c('0x2c')](_[_0x638c('0x34')](_0x4e6470['query'],_0x120d6f['filters']),_0x438035);if(_0x4e6470[_0x638c('0x2a')]['filter']){_0x13471a[_0x638c('0x33')]=_[_0x638c('0x35')](_0x13471a[_0x638c('0x33')],{'$or':_[_0x638c('0x1e')](_0x438035,function(_0x43a478){if(_0x43a478['type']!==_0x638c('0x36')){var _0x557fce={};_0x557fce[_0x43a478['name']]={'$like':'%'+_0x4e6470[_0x638c('0x2a')][_0x638c('0x1c')]+'%'};return _0x557fce;}})});}_0x13471a=_[_0x638c('0x35')]({},_0x13471a,_0x4e6470[_0x638c('0x37')]);var _0x632f97={'where':_0x13471a[_0x638c('0x33')]};return db[_0x638c('0x25')][_0x638c('0xf')](_0x632f97)['then'](function(_0x1652cb){_0x46e98f[_0x638c('0xf')]=_0x1652cb;if(_0x4e6470[_0x638c('0x2a')]['includeAll']){_0x13471a[_0x638c('0x38')]=[{'all':!![]}];}return db['VoiceExtension'][_0x638c('0x39')](_0x13471a);})[_0x638c('0x14')](function(_0x216a32){_0x46e98f['rows']=_0x216a32;return _0x46e98f;})[_0x638c('0x14')](respondWithFilteredResult(_0x45f56e,_0x13471a))['catch'](handleError(_0x45f56e,null));};exports[_0x638c('0x3a')]=function(_0x23d74e,_0x2e9ce7){var _0x16e0a5={'raw':![],'where':{'id':_0x23d74e[_0x638c('0x3b')]['id']}},_0x189269={};_0x189269[_0x638c('0x29')]=_['keys'](db[_0x638c('0x25')][_0x638c('0x26')]);_0x189269[_0x638c('0x2a')]=_[_0x638c('0x2b')](_0x23d74e['query']);_0x189269[_0x638c('0x2c')]=_[_0x638c('0x2d')](_0x189269[_0x638c('0x29')],_0x189269[_0x638c('0x2a')]);_0x16e0a5[_0x638c('0x2e')]=_[_0x638c('0x2d')](_0x189269[_0x638c('0x29')],qs['fields'](_0x23d74e['query']['fields']));_0x16e0a5['attributes']=_0x16e0a5[_0x638c('0x2e')][_0x638c('0x30')]?_0x16e0a5[_0x638c('0x2e')]:_0x189269[_0x638c('0x29')];if(_0x23d74e['query'][_0x638c('0x3c')]){_0x16e0a5[_0x638c('0x38')]=[{'all':!![]}];}_0x16e0a5=_['merge']({},_0x16e0a5,_0x23d74e['options']);return db[_0x638c('0x25')]['find'](_0x16e0a5)['then'](handleEntityNotFound(_0x2e9ce7,null))[_0x638c('0x14')](respondWithResult(_0x2e9ce7,null))[_0x638c('0x3d')](handleError(_0x2e9ce7,null));};exports[_0x638c('0x13')]=function(_0x225c16,_0x562c03){return db[_0x638c('0x25')][_0x638c('0x3e')]({'where':{'id':_0x225c16['params']['id']}})[_0x638c('0x14')](handleEntityNotFound(_0x562c03,null))['then'](removeEntity(_0x562c03,null))[_0x638c('0x3d')](handleError(_0x562c03,null));};exports[_0x638c('0x3f')]=function(_0x4119b5,_0x490eef){if(_0x4119b5[_0x638c('0x40')]['type']==='outbound'&&!_[_0x638c('0x41')](_0x4119b5['body'][_0x638c('0x42')],'_')){_0x4119b5[_0x638c('0x40')][_0x638c('0x42')]='_'[_0x638c('0x43')](_0x4119b5['body']['exten']);}return db['VoiceExtension'][_0x638c('0x3f')](_0x4119b5[_0x638c('0x40')],{'raw':![]})[_0x638c('0x14')](function(_0x67e541){var _0x5d3d2a=_0x4119b5[_0x638c('0x44')][_0x638c('0x15')]({'plain':!![]});if(!_0x5d3d2a)throw new Error(_0x638c('0x45'));if(_0x5d3d2a[_0x638c('0x46')]===_0x638c('0x44')){var _0x524761=_0x67e541[_0x638c('0x15')]({'plain':!![]});var _0x52ea32=[{'name':_0x638c('0x16'),'value':_0x638c('0x17')},{'name':'OutboundRoutes','value':_0x638c('0x19')},{'name':_0x638c('0x1a'),'value':'internal'}];var _0x1d3d09=_[_0x638c('0x3e')](_0x52ea32,[_0x638c('0x1f'),_0x524761[_0x638c('0x20')]])[_0x638c('0x21')];return db['UserProfileSection'][_0x638c('0x3e')]({'where':{'name':_0x1d3d09,'userProfileId':_0x5d3d2a[_0x638c('0x47')]},'raw':!![]})[_0x638c('0x14')](function(_0x215d98){if(_0x215d98&&_0x215d98[_0x638c('0x48')]===0x0){return db['UserProfileResource'][_0x638c('0x3f')]({'name':_0x524761['name'],'resourceId':_0x524761['id'],'type':_0x215d98['name'],'sectionId':_0x215d98['id']},{})[_0x638c('0x14')](function(){return _0x67e541;});}else{return _0x67e541;}})[_0x638c('0x3d')](function(_0x20a27c){logger[_0x638c('0x49')](_0x638c('0x4a'),_0x20a27c);throw _0x20a27c;});}return _0x67e541;})[_0x638c('0x14')](respondWithResult(_0x490eef,0xc9))[_0x638c('0x3d')](handleError(_0x490eef,null));};exports[_0x638c('0x4b')]=function(_0x3407db,_0x2ba836){if(_0x3407db[_0x638c('0x40')]['id']){delete _0x3407db[_0x638c('0x40')]['id'];}return db[_0x638c('0x25')]['find']({'where':{'id':_0x3407db[_0x638c('0x3b')]['id']}})[_0x638c('0x14')](handleEntityNotFound(_0x2ba836,null))['then'](function(_0x2709d7){if(_0x2709d7){return db[_0x638c('0x25')][_0x638c('0x4b')](_['pick'](_0x3407db['body'],[_0x638c('0x42'),_0x638c('0x4c'),_0x638c('0x4d'),_0x638c('0x4e'),_0x638c('0x4f'),_0x638c('0x50'),_0x638c('0x51')]),{'where':{'context':_0x2709d7[_0x638c('0x4c')],'exten':_0x2709d7['exten']},'individualHooks':!![]})['then'](function(_0x452f6b){return _0x452f6b;});}return null;})[_0x638c('0x14')](respondWithStatusCode(_0x2ba836,null))[_0x638c('0x3d')](handleError(_0x2ba836,null));};exports['addApplications']=function(_0x5d6272,_0x992fa){var _0x2c4cac=_0x5d6272[_0x638c('0x3b')]['id'];var _0x1ccd12=_0x5d6272[_0x638c('0x40')];var _0x363642=0xc8;var _0x416c15=null;return db[_0x638c('0x52')][_0x638c('0x53')]({'isolationLevel':db['sequelize'][_0x638c('0x54')][_0x638c('0x55')][_0x638c('0x56')]},function(_0x1124fc){return db[_0x638c('0x25')][_0x638c('0x57')]({'where':{'id':_0x2c4cac},'transaction':_0x1124fc})[_0x638c('0x14')](function(_0x3539ef){if(_0x3539ef){return db[_0x638c('0x25')][_0x638c('0x13')]({'where':{'VoiceExtensionId':_0x2c4cac},'transaction':_0x1124fc})[_0x638c('0x14')](function(){var _0x126896=_['map'](_0x1ccd12,function(_0xecd786){_0xecd786[_0x638c('0x58')]=_0x2c4cac;_0xecd786[_0x638c('0x59')]=!![];return _0xecd786;});return _0x3539ef[_0x638c('0x5a')](_0x126896);})[_0x638c('0x14')](function(_0x2bd53a){return db[_0x638c('0x25')][_0x638c('0x5b')](_0x2bd53a,{'transaction':_0x1124fc});});}else{_0x363642=0x194;_0x416c15=[];}});})[_0x638c('0x14')](function(){if(_0x363642!==0x194){return db[_0x638c('0x25')][_0x638c('0x5c')]({'where':{'isApp':!![],'VoiceExtensionId':_0x2c4cac},'order':_0x638c('0x5d')})[_0x638c('0x14')](function(_0x17301b){_0x416c15=_0x17301b;});}})[_0x638c('0x3d')](function(_0x2b0f14){_0x363642=0x1f4;logger[_0x638c('0x49')](_0x2b0f14[_0x638c('0x22')]);if(_0x2b0f14[_0x638c('0x21')]){delete _0x2b0f14['name'];}_0x416c15=_0x2b0f14;})[_0x638c('0x5e')](function(){if(_0x416c15===null){_0x992fa[_0x638c('0x9')](_0x363642);}else{if(_0x363642===0x1f4){_0x992fa[_0x638c('0xa')](_0x363642)[_0x638c('0x23')](_0x416c15);}else{_0x992fa['status'](_0x363642)['json'](_0x416c15);}}});};