Built motion from commit da24aabd.|2.6.20
[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 _0x6bbc=['stack','name','index','map','VoiceExtension','rawAttributes','model','query','keys','filters','attributes','fields','length','hasOwnProperty','limit','order','sort','where','VIRTUAL','includeAll','include','rows','catch','show','intersection','merge','options','params','create','body','exten','concat','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','InternalRoutes','UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','context','description','recordingFormat','cutdigits','alias','addApplications','sequelize','transaction','findOne','VoiceExtensionId','isApp','createRouting','bulkCreate','findAndCountAll','cast(priority\x20as\x20unsigned)','finally','send','../../components/parsers/qs','api','redis','defaults','localhost','socket.io-emitter','./voiceExtension.socket','register','sendStatus','end','status','offset','undefined','count','set','Content-Range','json','destroy','then','get','InboundRoutes','inbound','outbound','internal','filter','ignore','value','find','type','UserProfileResource','error'];(function(_0x483635,_0x5e66ae){var _0x686b8=function(_0x50aab8){while(--_0x50aab8){_0x483635['push'](_0x483635['shift']());}};_0x686b8(++_0x5e66ae);}(_0x6bbc,0x91));var _0xc6bb=function(_0x1d86c2,_0x45468a){_0x1d86c2=_0x1d86c2-0x0;var _0x2f07e0=_0x6bbc[_0x1d86c2];return _0x2f07e0;};'use strict';var _=require('lodash');var Redis=require('ioredis');var qs=require(_0xc6bb('0x0'));var logger=require('../../config/logger')(_0xc6bb('0x1'));var config=require('../../config/environment');var db=require('../../mysqldb')['db'];config[_0xc6bb('0x2')]=_[_0xc6bb('0x3')](config[_0xc6bb('0x2')],{'host':_0xc6bb('0x4'),'port':0x18eb});var socket=require(_0xc6bb('0x5'))(new Redis(config['redis']));require(_0xc6bb('0x6'))[_0xc6bb('0x7')](socket);function respondWithStatusCode(_0x557b98,_0x2e997b){_0x2e997b=_0x2e997b||0xcc;return function(_0x59bd17){if(_0x59bd17){return _0x557b98[_0xc6bb('0x8')](_0x2e997b);}return _0x557b98['status'](_0x2e997b)[_0xc6bb('0x9')]();};}function respondWithResult(_0x3dbedf,_0x1b4e64){_0x1b4e64=_0x1b4e64||0xc8;return function(_0x481f00){if(_0x481f00){return _0x3dbedf[_0xc6bb('0xa')](_0x1b4e64)['json'](_0x481f00);}};}function respondWithFilteredResult(_0x44b110,_0x1ae404){return function(_0x12aa71){if(_0x12aa71){var _0x216ab0=typeof _0x1ae404[_0xc6bb('0xb')]===_0xc6bb('0xc')&&typeof _0x1ae404['limit']===_0xc6bb('0xc');var _0x332789=_0x12aa71[_0xc6bb('0xd')];var _0x38c4ff=_0x216ab0?0x0:_0x1ae404['offset'];var _0x25f7fd=_0x216ab0?_0x12aa71[_0xc6bb('0xd')]:_0x1ae404['offset']+_0x1ae404['limit'];var _0x37207b;if(_0x25f7fd>=_0x332789){_0x25f7fd=_0x332789;_0x37207b=0xc8;}else{_0x37207b=0xce;}_0x44b110[_0xc6bb('0xa')](_0x37207b);return _0x44b110[_0xc6bb('0xe')](_0xc6bb('0xf'),_0x38c4ff+'-'+_0x25f7fd+'/'+_0x332789)[_0xc6bb('0x10')](_0x12aa71);}return null;};}function removeEntity(_0x3bffd9){return function(_0x2a6e77){if(_0x2a6e77){return _0x2a6e77[_0xc6bb('0x11')]()[_0xc6bb('0x12')](function(){var _0x30f12c=_0x2a6e77[_0xc6bb('0x13')]({'plain':!![]});var _0x6cbbfd=[{'name':_0xc6bb('0x14'),'value':_0xc6bb('0x15'),'ignore':![]},{'name':'OutboundRoutes','value':_0xc6bb('0x16'),'ignore':![]},{'name':'InternalRoutes','value':_0xc6bb('0x17'),'ignore':![]}];var _0x338b2b=_(_0x6cbbfd)[_0xc6bb('0x18')](_0xc6bb('0x19'))['map']('value')[_0xc6bb('0x1a')]();if(_['includes'](_0x338b2b,_0x30f12c['type'])){return;}var _0x2733c4=_[_0xc6bb('0x1b')](_0x6cbbfd,[_0xc6bb('0x1a'),_0x30f12c[_0xc6bb('0x1c')]])['name'];return db[_0xc6bb('0x1d')]['destroy']({'where':{'type':_0x2733c4,'resourceId':_0x30f12c['id']}})['then'](function(){return _0x2a6e77;});})[_0xc6bb('0x12')](function(){_0x3bffd9['status'](0xcc)[_0xc6bb('0x9')]();});}};}function handleEntityNotFound(_0x3f3732){return function(_0x4833ef){if(!_0x4833ef){_0x3f3732[_0xc6bb('0x8')](0x194);}return _0x4833ef;};}function handleError(_0x3c5152,_0x4f1ad4){_0x4f1ad4=_0x4f1ad4||0x1f4;return function(_0x83e821){logger[_0xc6bb('0x1e')](_0x83e821[_0xc6bb('0x1f')]);if(_0x83e821[_0xc6bb('0x20')]){delete _0x83e821[_0xc6bb('0x20')];}_0x3c5152[_0xc6bb('0xa')](_0x4f1ad4)['send'](_0x83e821);};}exports[_0xc6bb('0x21')]=function(_0x1b1e6f,_0x12bc64){var _0x35fa21={},_0x4b4a56={},_0x786774={'count':0x0,'rows':[]};var _0x522e8d=_[_0xc6bb('0x22')](db[_0xc6bb('0x23')][_0xc6bb('0x24')],function(_0x362e29){return{'name':_0x362e29['fieldName'],'type':_0x362e29[_0xc6bb('0x1c')]['key']};});_0x4b4a56[_0xc6bb('0x25')]=_[_0xc6bb('0x22')](_0x522e8d,'name');_0x4b4a56[_0xc6bb('0x26')]=_[_0xc6bb('0x27')](_0x1b1e6f[_0xc6bb('0x26')]);_0x4b4a56[_0xc6bb('0x28')]=_['intersection'](_0x4b4a56[_0xc6bb('0x25')],_0x4b4a56[_0xc6bb('0x26')]);_0x35fa21[_0xc6bb('0x29')]=_['intersection'](_0x4b4a56[_0xc6bb('0x25')],qs['fields'](_0x1b1e6f[_0xc6bb('0x26')][_0xc6bb('0x2a')]));_0x35fa21['attributes']=_0x35fa21['attributes'][_0xc6bb('0x2b')]?_0x35fa21[_0xc6bb('0x29')]:_0x4b4a56['model'];if(!_0x1b1e6f['query'][_0xc6bb('0x2c')]('nolimit')){_0x35fa21['limit']=qs[_0xc6bb('0x2d')](_0x1b1e6f['query'][_0xc6bb('0x2d')]);_0x35fa21['offset']=qs[_0xc6bb('0xb')](_0x1b1e6f[_0xc6bb('0x26')][_0xc6bb('0xb')]);}_0x35fa21[_0xc6bb('0x2e')]=qs['sort'](_0x1b1e6f[_0xc6bb('0x26')][_0xc6bb('0x2f')]);_0x35fa21[_0xc6bb('0x30')]=qs[_0xc6bb('0x28')](_['pick'](_0x1b1e6f[_0xc6bb('0x26')],_0x4b4a56['filters']),_0x522e8d);if(_0x1b1e6f['query'][_0xc6bb('0x18')]){_0x35fa21[_0xc6bb('0x30')]=_['merge'](_0x35fa21[_0xc6bb('0x30')],{'$or':_[_0xc6bb('0x22')](_0x522e8d,function(_0x56f340){if(_0x56f340['type']!==_0xc6bb('0x31')){var _0x48f205={};_0x48f205[_0x56f340['name']]={'$like':'%'+_0x1b1e6f[_0xc6bb('0x26')][_0xc6bb('0x18')]+'%'};return _0x48f205;}})});}_0x35fa21=_['merge']({},_0x35fa21,_0x1b1e6f['options']);var _0x38ea45={'where':_0x35fa21[_0xc6bb('0x30')]};return db['VoiceExtension'][_0xc6bb('0xd')](_0x38ea45)['then'](function(_0x14ee7e){_0x786774[_0xc6bb('0xd')]=_0x14ee7e;if(_0x1b1e6f[_0xc6bb('0x26')][_0xc6bb('0x32')]){_0x35fa21[_0xc6bb('0x33')]=[{'all':!![]}];}return db[_0xc6bb('0x23')]['findAll'](_0x35fa21);})['then'](function(_0x1b4f1f){_0x786774[_0xc6bb('0x34')]=_0x1b4f1f;return _0x786774;})['then'](respondWithFilteredResult(_0x12bc64,_0x35fa21))[_0xc6bb('0x35')](handleError(_0x12bc64,null));};exports[_0xc6bb('0x36')]=function(_0x3a5f88,_0x27c22f){var _0x23e41b={'raw':![],'where':{'id':_0x3a5f88['params']['id']}},_0x4c1228={};_0x4c1228[_0xc6bb('0x25')]=_[_0xc6bb('0x27')](db[_0xc6bb('0x23')]['rawAttributes']);_0x4c1228['query']=_[_0xc6bb('0x27')](_0x3a5f88[_0xc6bb('0x26')]);_0x4c1228[_0xc6bb('0x28')]=_[_0xc6bb('0x37')](_0x4c1228[_0xc6bb('0x25')],_0x4c1228[_0xc6bb('0x26')]);_0x23e41b[_0xc6bb('0x29')]=_[_0xc6bb('0x37')](_0x4c1228[_0xc6bb('0x25')],qs['fields'](_0x3a5f88[_0xc6bb('0x26')][_0xc6bb('0x2a')]));_0x23e41b[_0xc6bb('0x29')]=_0x23e41b['attributes']['length']?_0x23e41b[_0xc6bb('0x29')]:_0x4c1228[_0xc6bb('0x25')];if(_0x3a5f88['query']['includeAll']){_0x23e41b[_0xc6bb('0x33')]=[{'all':!![]}];}_0x23e41b=_[_0xc6bb('0x38')]({},_0x23e41b,_0x3a5f88[_0xc6bb('0x39')]);return db['VoiceExtension'][_0xc6bb('0x1b')](_0x23e41b)[_0xc6bb('0x12')](handleEntityNotFound(_0x27c22f,null))[_0xc6bb('0x12')](respondWithResult(_0x27c22f,null))[_0xc6bb('0x35')](handleError(_0x27c22f,null));};exports[_0xc6bb('0x11')]=function(_0x160a08,_0x374d06){return db[_0xc6bb('0x23')]['find']({'where':{'id':_0x160a08[_0xc6bb('0x3a')]['id']}})[_0xc6bb('0x12')](handleEntityNotFound(_0x374d06,null))[_0xc6bb('0x12')](removeEntity(_0x374d06,null))[_0xc6bb('0x35')](handleError(_0x374d06,null));};exports[_0xc6bb('0x3b')]=function(_0x231996,_0x205a6f){if(_0x231996[_0xc6bb('0x3c')][_0xc6bb('0x1c')]===_0xc6bb('0x16')&&!_['startsWith'](_0x231996[_0xc6bb('0x3c')][_0xc6bb('0x3d')],'_')){_0x231996[_0xc6bb('0x3c')][_0xc6bb('0x3d')]='_'[_0xc6bb('0x3e')](_0x231996[_0xc6bb('0x3c')][_0xc6bb('0x3d')]);}return db['VoiceExtension'][_0xc6bb('0x3b')](_0x231996[_0xc6bb('0x3c')],{'raw':![]})[_0xc6bb('0x12')](function(_0x5668b3){var _0x2e3f2f=_0x231996['user'][_0xc6bb('0x13')]({'plain':!![]});if(!_0x2e3f2f)throw new Error(_0xc6bb('0x3f'));if(_0x2e3f2f[_0xc6bb('0x40')]==='user'){var _0x45c6fe=_0x5668b3[_0xc6bb('0x13')]({'plain':!![]});var _0x19748d=[{'name':_0xc6bb('0x14'),'value':'inbound'},{'name':'OutboundRoutes','value':_0xc6bb('0x16')},{'name':_0xc6bb('0x41'),'value':_0xc6bb('0x17')}];var _0x1e9507=_[_0xc6bb('0x1b')](_0x19748d,[_0xc6bb('0x1a'),_0x45c6fe[_0xc6bb('0x1c')]])[_0xc6bb('0x20')];return db[_0xc6bb('0x42')][_0xc6bb('0x1b')]({'where':{'name':_0x1e9507,'userProfileId':_0x2e3f2f[_0xc6bb('0x43')]},'raw':!![]})[_0xc6bb('0x12')](function(_0x1c0aeb){if(_0x1c0aeb&&_0x1c0aeb[_0xc6bb('0x44')]===0x0){return db[_0xc6bb('0x1d')][_0xc6bb('0x3b')]({'name':_0x45c6fe[_0xc6bb('0x20')],'resourceId':_0x45c6fe['id'],'type':_0x1c0aeb[_0xc6bb('0x20')],'sectionId':_0x1c0aeb['id']},{})[_0xc6bb('0x12')](function(){return _0x5668b3;});}else{return _0x5668b3;}})[_0xc6bb('0x35')](function(_0x207489){logger[_0xc6bb('0x1e')](_0xc6bb('0x45'),_0x207489);throw _0x207489;});}return _0x5668b3;})['then'](respondWithResult(_0x205a6f,0xc9))[_0xc6bb('0x35')](handleError(_0x205a6f,null));};exports[_0xc6bb('0x46')]=function(_0x5b7ca3,_0x3e8189){if(_0x5b7ca3[_0xc6bb('0x3c')]['id']){delete _0x5b7ca3[_0xc6bb('0x3c')]['id'];}return db['VoiceExtension'][_0xc6bb('0x1b')]({'where':{'id':_0x5b7ca3[_0xc6bb('0x3a')]['id']}})[_0xc6bb('0x12')](handleEntityNotFound(_0x3e8189,null))[_0xc6bb('0x12')](function(_0x31d341){if(_0x31d341){return db[_0xc6bb('0x23')][_0xc6bb('0x46')](_['pick'](_0x5b7ca3[_0xc6bb('0x3c')],['exten',_0xc6bb('0x47'),_0xc6bb('0x48'),_0xc6bb('0x49'),_0xc6bb('0x4a'),'mandatoryDisposition',_0xc6bb('0x4b')]),{'where':{'context':_0x31d341[_0xc6bb('0x47')],'exten':_0x31d341[_0xc6bb('0x3d')]},'individualHooks':!![]})[_0xc6bb('0x12')](function(_0x42f896){return _0x42f896;});}return null;})['then'](respondWithStatusCode(_0x3e8189,null))[_0xc6bb('0x35')](handleError(_0x3e8189,null));};exports[_0xc6bb('0x4c')]=function(_0x5d731b,_0x1a1fbe){var _0x40e1d2=_0x5d731b[_0xc6bb('0x3a')]['id'];var _0x8f2d94=_0x5d731b['body'];var _0xdf9c56=0xc8;var _0x1866a0=null;return db[_0xc6bb('0x4d')][_0xc6bb('0x4e')]({'isolationLevel':db[_0xc6bb('0x4d')]['Transaction']['ISOLATION_LEVELS']['READ_COMMITTED']},function(_0x5b0dfd){return db['VoiceExtension'][_0xc6bb('0x4f')]({'where':{'id':_0x40e1d2},'transaction':_0x5b0dfd})[_0xc6bb('0x12')](function(_0xedf870){if(_0xedf870){return db[_0xc6bb('0x23')][_0xc6bb('0x11')]({'where':{'VoiceExtensionId':_0x40e1d2},'transaction':_0x5b0dfd})['then'](function(){var _0x1ac490=_['map'](_0x8f2d94,function(_0x3ed236){_0x3ed236[_0xc6bb('0x50')]=_0x40e1d2;_0x3ed236[_0xc6bb('0x51')]=!![];return _0x3ed236;});return _0xedf870[_0xc6bb('0x52')](_0x1ac490);})['then'](function(_0x4641ff){return db[_0xc6bb('0x23')][_0xc6bb('0x53')](_0x4641ff,{'transaction':_0x5b0dfd});});}else{_0xdf9c56=0x194;_0x1866a0=[];}});})[_0xc6bb('0x12')](function(){if(_0xdf9c56!==0x194){return db[_0xc6bb('0x23')][_0xc6bb('0x54')]({'where':{'isApp':!![],'VoiceExtensionId':_0x40e1d2},'order':_0xc6bb('0x55')})[_0xc6bb('0x12')](function(_0x269277){_0x1866a0=_0x269277;});}})[_0xc6bb('0x35')](function(_0x4499b1){_0xdf9c56=0x1f4;logger[_0xc6bb('0x1e')](_0x4499b1[_0xc6bb('0x1f')]);if(_0x4499b1[_0xc6bb('0x20')]){delete _0x4499b1['name'];}_0x1866a0=_0x4499b1;})[_0xc6bb('0x56')](function(){if(_0x1866a0===null){_0x1a1fbe[_0xc6bb('0x8')](_0xdf9c56);}else{if(_0xdf9c56===0x1f4){_0x1a1fbe[_0xc6bb('0xa')](_0xdf9c56)[_0xc6bb('0x57')](_0x1866a0);}else{_0x1a1fbe[_0xc6bb('0xa')](_0xdf9c56)['json'](_0x1866a0);}}});};