Built motion from commit 3c2ce842.|2.6.31
[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 _0x1da3=['../../mysqldb','redis','localhost','socket.io-emitter','register','sendStatus','status','undefined','count','offset','set','json','then','get','InboundRoutes','inbound','OutboundRoutes','outbound','InternalRoutes','filter','ignore','map','value','includes','type','name','destroy','stack','send','VoiceExtension','rawAttributes','fieldName','key','model','query','keys','filters','intersection','attributes','length','hasOwnProperty','limit','order','sort','where','pick','merge','options','includeAll','include','findAll','rows','catch','show','fields','params','create','body','startsWith','exten','concat','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','internal','find','UserProfileSection','autoAssociation','UserProfileResource','error','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','description','recordingFormat','cutdigits','mandatoryDisposition','context','addApplications','sequelize','transaction','Transaction','ISOLATION_LEVELS','findOne','VoiceExtensionId','isApp','bulkCreate','cast(priority\x20as\x20unsigned)','finally','lodash','../../components/parsers/qs','api','../../config/environment'];(function(_0x2517ce,_0xa3620){var _0x48240d=function(_0x4ccccb){while(--_0x4ccccb){_0x2517ce['push'](_0x2517ce['shift']());}};_0x48240d(++_0xa3620);}(_0x1da3,0xb4));var _0x31da=function(_0x59ee6f,_0x450239){_0x59ee6f=_0x59ee6f-0x0;var _0x4c0979=_0x1da3[_0x59ee6f];return _0x4c0979;};'use strict';var _=require(_0x31da('0x0'));var Redis=require('ioredis');var qs=require(_0x31da('0x1'));var logger=require('../../config/logger')(_0x31da('0x2'));var config=require(_0x31da('0x3'));var db=require(_0x31da('0x4'))['db'];config[_0x31da('0x5')]=_['defaults'](config[_0x31da('0x5')],{'host':_0x31da('0x6'),'port':0x18eb});var socket=require(_0x31da('0x7'))(new Redis(config[_0x31da('0x5')]));require('./voiceExtension.socket')[_0x31da('0x8')](socket);function respondWithStatusCode(_0x40bc3b,_0x47e171){_0x47e171=_0x47e171||0xcc;return function(_0xa2390e){if(_0xa2390e){return _0x40bc3b[_0x31da('0x9')](_0x47e171);}return _0x40bc3b[_0x31da('0xa')](_0x47e171)['end']();};}function respondWithResult(_0x5e5a05,_0x5290d8){_0x5290d8=_0x5290d8||0xc8;return function(_0x568558){if(_0x568558){return _0x5e5a05[_0x31da('0xa')](_0x5290d8)['json'](_0x568558);}};}function respondWithFilteredResult(_0x2ed308,_0x2f0b13){return function(_0x47fe69){if(_0x47fe69){var _0x4acfdc=typeof _0x2f0b13['offset']===_0x31da('0xb')&&typeof _0x2f0b13['limit']===_0x31da('0xb');var _0x3db3f1=_0x47fe69['count'];var _0x3b9ed8=_0x4acfdc?0x0:_0x2f0b13['offset'];var _0x2c6b45=_0x4acfdc?_0x47fe69[_0x31da('0xc')]:_0x2f0b13[_0x31da('0xd')]+_0x2f0b13['limit'];var _0x4ff6bd;if(_0x2c6b45>=_0x3db3f1){_0x2c6b45=_0x3db3f1;_0x4ff6bd=0xc8;}else{_0x4ff6bd=0xce;}_0x2ed308[_0x31da('0xa')](_0x4ff6bd);return _0x2ed308[_0x31da('0xe')]('Content-Range',_0x3b9ed8+'-'+_0x2c6b45+'/'+_0x3db3f1)[_0x31da('0xf')](_0x47fe69);}return null;};}function removeEntity(_0x42dc22){return function(_0x3c4412){if(_0x3c4412){return _0x3c4412['destroy']()[_0x31da('0x10')](function(){var _0x56fcee=_0x3c4412[_0x31da('0x11')]({'plain':!![]});var _0xbf5501=[{'name':_0x31da('0x12'),'value':_0x31da('0x13'),'ignore':![]},{'name':_0x31da('0x14'),'value':_0x31da('0x15'),'ignore':![]},{'name':_0x31da('0x16'),'value':'internal','ignore':![]}];var _0x212463=_(_0xbf5501)[_0x31da('0x17')](_0x31da('0x18'))[_0x31da('0x19')](_0x31da('0x1a'))[_0x31da('0x1a')]();if(_[_0x31da('0x1b')](_0x212463,_0x56fcee[_0x31da('0x1c')])){return;}var _0xf50035=_['find'](_0xbf5501,[_0x31da('0x1a'),_0x56fcee[_0x31da('0x1c')]])[_0x31da('0x1d')];return db['UserProfileResource'][_0x31da('0x1e')]({'where':{'type':_0xf50035,'resourceId':_0x56fcee['id']}})[_0x31da('0x10')](function(){return _0x3c4412;});})[_0x31da('0x10')](function(){_0x42dc22[_0x31da('0xa')](0xcc)['end']();});}};}function handleEntityNotFound(_0x218ad3){return function(_0x40753a){if(!_0x40753a){_0x218ad3[_0x31da('0x9')](0x194);}return _0x40753a;};}function handleError(_0x54e45f,_0x2ff1f7){_0x2ff1f7=_0x2ff1f7||0x1f4;return function(_0x9bd209){logger['error'](_0x9bd209[_0x31da('0x1f')]);if(_0x9bd209[_0x31da('0x1d')]){delete _0x9bd209['name'];}_0x54e45f[_0x31da('0xa')](_0x2ff1f7)[_0x31da('0x20')](_0x9bd209);};}exports['index']=function(_0x5798ba,_0x4577a7){var _0x1ba0f3={},_0x2ede95={},_0x559480={'count':0x0,'rows':[]};var _0x47caff=_[_0x31da('0x19')](db[_0x31da('0x21')][_0x31da('0x22')],function(_0x1db957){return{'name':_0x1db957[_0x31da('0x23')],'type':_0x1db957['type'][_0x31da('0x24')]};});_0x2ede95[_0x31da('0x25')]=_[_0x31da('0x19')](_0x47caff,_0x31da('0x1d'));_0x2ede95[_0x31da('0x26')]=_[_0x31da('0x27')](_0x5798ba['query']);_0x2ede95[_0x31da('0x28')]=_[_0x31da('0x29')](_0x2ede95[_0x31da('0x25')],_0x2ede95['query']);_0x1ba0f3[_0x31da('0x2a')]=_[_0x31da('0x29')](_0x2ede95[_0x31da('0x25')],qs['fields'](_0x5798ba['query']['fields']));_0x1ba0f3[_0x31da('0x2a')]=_0x1ba0f3[_0x31da('0x2a')][_0x31da('0x2b')]?_0x1ba0f3[_0x31da('0x2a')]:_0x2ede95[_0x31da('0x25')];if(!_0x5798ba[_0x31da('0x26')][_0x31da('0x2c')]('nolimit')){_0x1ba0f3[_0x31da('0x2d')]=qs[_0x31da('0x2d')](_0x5798ba[_0x31da('0x26')][_0x31da('0x2d')]);_0x1ba0f3['offset']=qs[_0x31da('0xd')](_0x5798ba[_0x31da('0x26')]['offset']);}_0x1ba0f3[_0x31da('0x2e')]=qs[_0x31da('0x2f')](_0x5798ba['query'][_0x31da('0x2f')]);_0x1ba0f3[_0x31da('0x30')]=qs['filters'](_[_0x31da('0x31')](_0x5798ba[_0x31da('0x26')],_0x2ede95[_0x31da('0x28')]),_0x47caff);if(_0x5798ba[_0x31da('0x26')][_0x31da('0x17')]){_0x1ba0f3['where']=_[_0x31da('0x32')](_0x1ba0f3[_0x31da('0x30')],{'$or':_[_0x31da('0x19')](_0x47caff,function(_0x1e94e2){if(_0x1e94e2[_0x31da('0x1c')]!=='VIRTUAL'){var _0x40dc69={};_0x40dc69[_0x1e94e2[_0x31da('0x1d')]]={'$like':'%'+_0x5798ba['query'][_0x31da('0x17')]+'%'};return _0x40dc69;}})});}_0x1ba0f3=_[_0x31da('0x32')]({},_0x1ba0f3,_0x5798ba[_0x31da('0x33')]);var _0x5654a1={'where':_0x1ba0f3[_0x31da('0x30')]};return db['VoiceExtension'][_0x31da('0xc')](_0x5654a1)[_0x31da('0x10')](function(_0x427f3d){_0x559480['count']=_0x427f3d;if(_0x5798ba[_0x31da('0x26')][_0x31da('0x34')]){_0x1ba0f3[_0x31da('0x35')]=[{'all':!![]}];}return db['VoiceExtension'][_0x31da('0x36')](_0x1ba0f3);})['then'](function(_0x2462b3){_0x559480[_0x31da('0x37')]=_0x2462b3;return _0x559480;})[_0x31da('0x10')](respondWithFilteredResult(_0x4577a7,_0x1ba0f3))[_0x31da('0x38')](handleError(_0x4577a7,null));};exports[_0x31da('0x39')]=function(_0x2fc815,_0x395064){var _0x4085b4={'raw':![],'where':{'id':_0x2fc815['params']['id']}},_0x47dba1={};_0x47dba1['model']=_[_0x31da('0x27')](db[_0x31da('0x21')][_0x31da('0x22')]);_0x47dba1['query']=_[_0x31da('0x27')](_0x2fc815[_0x31da('0x26')]);_0x47dba1[_0x31da('0x28')]=_[_0x31da('0x29')](_0x47dba1[_0x31da('0x25')],_0x47dba1['query']);_0x4085b4['attributes']=_['intersection'](_0x47dba1[_0x31da('0x25')],qs['fields'](_0x2fc815[_0x31da('0x26')][_0x31da('0x3a')]));_0x4085b4['attributes']=_0x4085b4[_0x31da('0x2a')]['length']?_0x4085b4[_0x31da('0x2a')]:_0x47dba1[_0x31da('0x25')];if(_0x2fc815[_0x31da('0x26')][_0x31da('0x34')]){_0x4085b4['include']=[{'all':!![]}];}_0x4085b4=_[_0x31da('0x32')]({},_0x4085b4,_0x2fc815[_0x31da('0x33')]);return db[_0x31da('0x21')]['find'](_0x4085b4)['then'](handleEntityNotFound(_0x395064,null))['then'](respondWithResult(_0x395064,null))['catch'](handleError(_0x395064,null));};exports['destroy']=function(_0x382428,_0x1a5ab1){return db[_0x31da('0x21')]['find']({'where':{'id':_0x382428[_0x31da('0x3b')]['id']}})[_0x31da('0x10')](handleEntityNotFound(_0x1a5ab1,null))[_0x31da('0x10')](removeEntity(_0x1a5ab1,null))[_0x31da('0x38')](handleError(_0x1a5ab1,null));};exports[_0x31da('0x3c')]=function(_0x332183,_0x447a23){if(_0x332183[_0x31da('0x3d')][_0x31da('0x1c')]==='outbound'&&!_[_0x31da('0x3e')](_0x332183[_0x31da('0x3d')][_0x31da('0x3f')],'_')){_0x332183[_0x31da('0x3d')]['exten']='_'[_0x31da('0x40')](_0x332183['body'][_0x31da('0x3f')]);}return db[_0x31da('0x21')][_0x31da('0x3c')](_0x332183[_0x31da('0x3d')],{'raw':![]})[_0x31da('0x10')](function(_0x101acf){var _0x396c78=_0x332183[_0x31da('0x41')][_0x31da('0x11')]({'plain':!![]});if(!_0x396c78)throw new Error(_0x31da('0x42'));if(_0x396c78[_0x31da('0x43')]==='user'){var _0x49ce85=_0x101acf[_0x31da('0x11')]({'plain':!![]});var _0x495a59=[{'name':'InboundRoutes','value':_0x31da('0x13')},{'name':'OutboundRoutes','value':_0x31da('0x15')},{'name':_0x31da('0x16'),'value':_0x31da('0x44')}];var _0x33ff17=_[_0x31da('0x45')](_0x495a59,['value',_0x49ce85[_0x31da('0x1c')]])[_0x31da('0x1d')];return db[_0x31da('0x46')][_0x31da('0x45')]({'where':{'name':_0x33ff17,'userProfileId':_0x396c78['userProfileId']},'raw':!![]})['then'](function(_0x5478e8){if(_0x5478e8&&_0x5478e8[_0x31da('0x47')]===0x0){return db[_0x31da('0x48')]['create']({'name':_0x49ce85[_0x31da('0x1d')],'resourceId':_0x49ce85['id'],'type':_0x5478e8[_0x31da('0x1d')],'sectionId':_0x5478e8['id']},{})[_0x31da('0x10')](function(){return _0x101acf;});}else{return _0x101acf;}})[_0x31da('0x38')](function(_0x702d5){logger[_0x31da('0x49')](_0x31da('0x4a'),_0x702d5);throw _0x702d5;});}return _0x101acf;})['then'](respondWithResult(_0x447a23,0xc9))['catch'](handleError(_0x447a23,null));};exports[_0x31da('0x4b')]=function(_0x52f25c,_0x3bdac3){if(_0x52f25c[_0x31da('0x3d')]['id']){delete _0x52f25c['body']['id'];}return db[_0x31da('0x21')]['find']({'where':{'id':_0x52f25c[_0x31da('0x3b')]['id']}})['then'](handleEntityNotFound(_0x3bdac3,null))[_0x31da('0x10')](function(_0x146459){if(_0x146459){return db[_0x31da('0x21')][_0x31da('0x4b')](_[_0x31da('0x31')](_0x52f25c[_0x31da('0x3d')],['exten','context',_0x31da('0x4c'),_0x31da('0x4d'),_0x31da('0x4e'),_0x31da('0x4f'),'alias']),{'where':{'context':_0x146459[_0x31da('0x50')],'exten':_0x146459[_0x31da('0x3f')]},'individualHooks':!![]})[_0x31da('0x10')](function(_0xe7778c){return _0xe7778c;});}return null;})['then'](respondWithStatusCode(_0x3bdac3,null))[_0x31da('0x38')](handleError(_0x3bdac3,null));};exports[_0x31da('0x51')]=function(_0x8716fb,_0x2fca04){var _0x2b156f=_0x8716fb[_0x31da('0x3b')]['id'];var _0x5d9915=_0x8716fb['body'];var _0x58bb0d=0xc8;var _0x420aea=null;return db[_0x31da('0x52')][_0x31da('0x53')]({'isolationLevel':db['sequelize'][_0x31da('0x54')][_0x31da('0x55')]['READ_COMMITTED']},function(_0x696942){return db[_0x31da('0x21')][_0x31da('0x56')]({'where':{'id':_0x2b156f},'transaction':_0x696942})[_0x31da('0x10')](function(_0x1173b9){if(_0x1173b9){return db[_0x31da('0x21')]['destroy']({'where':{'VoiceExtensionId':_0x2b156f},'transaction':_0x696942})[_0x31da('0x10')](function(){var _0x45b585=_['map'](_0x5d9915,function(_0x10d091){_0x10d091[_0x31da('0x57')]=_0x2b156f;_0x10d091[_0x31da('0x58')]=!![];return _0x10d091;});return _0x1173b9['createRouting'](_0x45b585);})[_0x31da('0x10')](function(_0x330435){return db['VoiceExtension'][_0x31da('0x59')](_0x330435,{'transaction':_0x696942});});}else{_0x58bb0d=0x194;_0x420aea=[];}});})[_0x31da('0x10')](function(){if(_0x58bb0d!==0x194){return db[_0x31da('0x21')]['findAndCountAll']({'where':{'isApp':!![],'VoiceExtensionId':_0x2b156f},'order':_0x31da('0x5a')})[_0x31da('0x10')](function(_0x288784){_0x420aea=_0x288784;});}})[_0x31da('0x38')](function(_0x28c56b){_0x58bb0d=0x1f4;logger[_0x31da('0x49')](_0x28c56b[_0x31da('0x1f')]);if(_0x28c56b['name']){delete _0x28c56b[_0x31da('0x1d')];}_0x420aea=_0x28c56b;})[_0x31da('0x5b')](function(){if(_0x420aea===null){_0x2fca04[_0x31da('0x9')](_0x58bb0d);}else{if(_0x58bb0d===0x1f4){_0x2fca04[_0x31da('0xa')](_0x58bb0d)[_0x31da('0x20')](_0x420aea);}else{_0x2fca04[_0x31da('0xa')](_0x58bb0d)[_0x31da('0xf')](_0x420aea);}}});};