f42577b3e42b56976ebebe613ab20036591cd21d
[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 _0xc64d=['internal','filter','map','value','includes','type','name','error','stack','send','index','fieldName','key','model','query','keys','filters','intersection','attributes','nolimit','order','sort','pick','where','VIRTUAL','merge','options','VoiceExtension','include','findAll','catch','show','rawAttributes','fields','length','includeAll','find','params','body','concat','create','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','InboundRoutes','UserProfileSection','userProfileId','autoAssociation','UserProfileResource','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','exten','description','recordingFormat','mandatoryDisposition','addApplications','transaction','sequelize','Transaction','READ_COMMITTED','findOne','VoiceExtensionId','isApp','createRouting','bulkCreate','cast(priority\x20as\x20unsigned)','finally','ioredis','../../components/parsers/qs','api','../../config/environment','../../mysqldb','redis','defaults','socket.io-emitter','./voiceExtension.socket','register','sendStatus','end','status','offset','undefined','count','limit','Content-Range','json','destroy','then','get','inbound','OutboundRoutes','outbound','InternalRoutes'];(function(_0x19e35c,_0x29cd1e){var _0x3e1fe8=function(_0x17258b){while(--_0x17258b){_0x19e35c['push'](_0x19e35c['shift']());}};_0x3e1fe8(++_0x29cd1e);}(_0xc64d,0xa0));var _0xdc64=function(_0x4f809b,_0x4072e2){_0x4f809b=_0x4f809b-0x0;var _0x1ace0d=_0xc64d[_0x4f809b];return _0x1ace0d;};'use strict';var _=require('lodash');var Redis=require(_0xdc64('0x0'));var qs=require(_0xdc64('0x1'));var logger=require('../../config/logger')(_0xdc64('0x2'));var config=require(_0xdc64('0x3'));var db=require(_0xdc64('0x4'))['db'];config[_0xdc64('0x5')]=_[_0xdc64('0x6')](config[_0xdc64('0x5')],{'host':'localhost','port':0x18eb});var socket=require(_0xdc64('0x7'))(new Redis(config[_0xdc64('0x5')]));require(_0xdc64('0x8'))[_0xdc64('0x9')](socket);function respondWithStatusCode(_0x208656,_0x5bbffa){_0x5bbffa=_0x5bbffa||0xcc;return function(_0xc0a877){if(_0xc0a877){return _0x208656[_0xdc64('0xa')](_0x5bbffa);}return _0x208656['status'](_0x5bbffa)[_0xdc64('0xb')]();};}function respondWithResult(_0x173d7f,_0x30463e){_0x30463e=_0x30463e||0xc8;return function(_0x1563ee){if(_0x1563ee){return _0x173d7f[_0xdc64('0xc')](_0x30463e)['json'](_0x1563ee);}};}function respondWithFilteredResult(_0x4acda2,_0x3fc96f){return function(_0x12796b){if(_0x12796b){var _0x35d2a3=typeof _0x3fc96f[_0xdc64('0xd')]==='undefined'&&typeof _0x3fc96f['limit']===_0xdc64('0xe');var _0x340957=_0x12796b[_0xdc64('0xf')];var _0x104a79=_0x35d2a3?0x0:_0x3fc96f[_0xdc64('0xd')];var _0x212458=_0x35d2a3?_0x12796b[_0xdc64('0xf')]:_0x3fc96f[_0xdc64('0xd')]+_0x3fc96f[_0xdc64('0x10')];var _0x75e183;if(_0x212458>=_0x340957){_0x212458=_0x340957;_0x75e183=0xc8;}else{_0x75e183=0xce;}_0x4acda2[_0xdc64('0xc')](_0x75e183);return _0x4acda2['set'](_0xdc64('0x11'),_0x104a79+'-'+_0x212458+'/'+_0x340957)[_0xdc64('0x12')](_0x12796b);}return null;};}function removeEntity(_0x17ae1e){return function(_0x51492c){if(_0x51492c){return _0x51492c[_0xdc64('0x13')]()[_0xdc64('0x14')](function(){var _0x56941e=_0x51492c[_0xdc64('0x15')]({'plain':!![]});var _0x132614=[{'name':'InboundRoutes','value':_0xdc64('0x16'),'ignore':![]},{'name':_0xdc64('0x17'),'value':_0xdc64('0x18'),'ignore':![]},{'name':_0xdc64('0x19'),'value':_0xdc64('0x1a'),'ignore':![]}];var _0x25e9bb=_(_0x132614)[_0xdc64('0x1b')]('ignore')[_0xdc64('0x1c')](_0xdc64('0x1d'))[_0xdc64('0x1d')]();if(_[_0xdc64('0x1e')](_0x25e9bb,_0x56941e[_0xdc64('0x1f')])){return;}var _0x540040=_['find'](_0x132614,['value',_0x56941e[_0xdc64('0x1f')]])[_0xdc64('0x20')];return db['UserProfileResource'][_0xdc64('0x13')]({'where':{'type':_0x540040,'resourceId':_0x56941e['id']}})[_0xdc64('0x14')](function(){return _0x51492c;});})[_0xdc64('0x14')](function(){_0x17ae1e[_0xdc64('0xc')](0xcc)['end']();});}};}function handleEntityNotFound(_0x505468){return function(_0xfc009e){if(!_0xfc009e){_0x505468[_0xdc64('0xa')](0x194);}return _0xfc009e;};}function handleError(_0x4382fe,_0xc47fc5){_0xc47fc5=_0xc47fc5||0x1f4;return function(_0x49a08a){logger[_0xdc64('0x21')](_0x49a08a[_0xdc64('0x22')]);if(_0x49a08a[_0xdc64('0x20')]){delete _0x49a08a[_0xdc64('0x20')];}_0x4382fe[_0xdc64('0xc')](_0xc47fc5)[_0xdc64('0x23')](_0x49a08a);};}exports[_0xdc64('0x24')]=function(_0x417612,_0x532a74){var _0x14e72f={},_0x3f4777={},_0x150c06={'count':0x0,'rows':[]};var _0x1f7a23=_[_0xdc64('0x1c')](db['VoiceExtension']['rawAttributes'],function(_0x50540e){return{'name':_0x50540e[_0xdc64('0x25')],'type':_0x50540e[_0xdc64('0x1f')][_0xdc64('0x26')]};});_0x3f4777[_0xdc64('0x27')]=_[_0xdc64('0x1c')](_0x1f7a23,'name');_0x3f4777[_0xdc64('0x28')]=_[_0xdc64('0x29')](_0x417612[_0xdc64('0x28')]);_0x3f4777[_0xdc64('0x2a')]=_[_0xdc64('0x2b')](_0x3f4777[_0xdc64('0x27')],_0x3f4777[_0xdc64('0x28')]);_0x14e72f[_0xdc64('0x2c')]=_['intersection'](_0x3f4777[_0xdc64('0x27')],qs['fields'](_0x417612[_0xdc64('0x28')]['fields']));_0x14e72f['attributes']=_0x14e72f[_0xdc64('0x2c')]['length']?_0x14e72f[_0xdc64('0x2c')]:_0x3f4777[_0xdc64('0x27')];if(!_0x417612['query']['hasOwnProperty'](_0xdc64('0x2d'))){_0x14e72f['limit']=qs[_0xdc64('0x10')](_0x417612[_0xdc64('0x28')][_0xdc64('0x10')]);_0x14e72f['offset']=qs[_0xdc64('0xd')](_0x417612[_0xdc64('0x28')]['offset']);}_0x14e72f[_0xdc64('0x2e')]=qs[_0xdc64('0x2f')](_0x417612[_0xdc64('0x28')][_0xdc64('0x2f')]);_0x14e72f['where']=qs[_0xdc64('0x2a')](_[_0xdc64('0x30')](_0x417612[_0xdc64('0x28')],_0x3f4777[_0xdc64('0x2a')]),_0x1f7a23);if(_0x417612['query'][_0xdc64('0x1b')]){_0x14e72f[_0xdc64('0x31')]=_['merge'](_0x14e72f[_0xdc64('0x31')],{'$or':_[_0xdc64('0x1c')](_0x1f7a23,function(_0x515315){if(_0x515315[_0xdc64('0x1f')]!==_0xdc64('0x32')){var _0x156409={};_0x156409[_0x515315['name']]={'$like':'%'+_0x417612[_0xdc64('0x28')][_0xdc64('0x1b')]+'%'};return _0x156409;}})});}_0x14e72f=_[_0xdc64('0x33')]({},_0x14e72f,_0x417612[_0xdc64('0x34')]);var _0x44a9e2={'where':_0x14e72f[_0xdc64('0x31')]};return db[_0xdc64('0x35')][_0xdc64('0xf')](_0x44a9e2)[_0xdc64('0x14')](function(_0x43134e){_0x150c06[_0xdc64('0xf')]=_0x43134e;if(_0x417612[_0xdc64('0x28')]['includeAll']){_0x14e72f[_0xdc64('0x36')]=[{'all':!![]}];}return db['VoiceExtension'][_0xdc64('0x37')](_0x14e72f);})[_0xdc64('0x14')](function(_0x3d6148){_0x150c06['rows']=_0x3d6148;return _0x150c06;})[_0xdc64('0x14')](respondWithFilteredResult(_0x532a74,_0x14e72f))[_0xdc64('0x38')](handleError(_0x532a74,null));};exports[_0xdc64('0x39')]=function(_0x2c7d47,_0x2df042){var _0x3d7be5={'raw':![],'where':{'id':_0x2c7d47['params']['id']}},_0x371af7={};_0x371af7['model']=_['keys'](db['VoiceExtension'][_0xdc64('0x3a')]);_0x371af7['query']=_[_0xdc64('0x29')](_0x2c7d47[_0xdc64('0x28')]);_0x371af7['filters']=_[_0xdc64('0x2b')](_0x371af7[_0xdc64('0x27')],_0x371af7['query']);_0x3d7be5['attributes']=_[_0xdc64('0x2b')](_0x371af7[_0xdc64('0x27')],qs[_0xdc64('0x3b')](_0x2c7d47['query'][_0xdc64('0x3b')]));_0x3d7be5['attributes']=_0x3d7be5['attributes'][_0xdc64('0x3c')]?_0x3d7be5[_0xdc64('0x2c')]:_0x371af7[_0xdc64('0x27')];if(_0x2c7d47[_0xdc64('0x28')][_0xdc64('0x3d')]){_0x3d7be5[_0xdc64('0x36')]=[{'all':!![]}];}_0x3d7be5=_[_0xdc64('0x33')]({},_0x3d7be5,_0x2c7d47[_0xdc64('0x34')]);return db[_0xdc64('0x35')][_0xdc64('0x3e')](_0x3d7be5)[_0xdc64('0x14')](handleEntityNotFound(_0x2df042,null))[_0xdc64('0x14')](respondWithResult(_0x2df042,null))[_0xdc64('0x38')](handleError(_0x2df042,null));};exports['destroy']=function(_0x578c7d,_0x382d4c){return db[_0xdc64('0x35')]['find']({'where':{'id':_0x578c7d[_0xdc64('0x3f')]['id']}})[_0xdc64('0x14')](handleEntityNotFound(_0x382d4c,null))[_0xdc64('0x14')](removeEntity(_0x382d4c,null))[_0xdc64('0x38')](handleError(_0x382d4c,null));};exports['create']=function(_0x3ae511,_0x456979){if(_0x3ae511[_0xdc64('0x40')][_0xdc64('0x1f')]===_0xdc64('0x18')&&!_['startsWith'](_0x3ae511[_0xdc64('0x40')]['exten'],'_')){_0x3ae511[_0xdc64('0x40')]['exten']='_'[_0xdc64('0x41')](_0x3ae511['body']['exten']);}return db[_0xdc64('0x35')][_0xdc64('0x42')](_0x3ae511[_0xdc64('0x40')],{'raw':![]})['then'](function(_0x48442d){var _0x2952b3=_0x3ae511[_0xdc64('0x43')][_0xdc64('0x15')]({'plain':!![]});if(!_0x2952b3)throw new Error(_0xdc64('0x44'));if(_0x2952b3[_0xdc64('0x45')]===_0xdc64('0x43')){var _0xd52275=_0x48442d[_0xdc64('0x15')]({'plain':!![]});var _0x484e92=[{'name':_0xdc64('0x46'),'value':_0xdc64('0x16')},{'name':_0xdc64('0x17'),'value':_0xdc64('0x18')},{'name':_0xdc64('0x19'),'value':'internal'}];var _0x13aeec=_['find'](_0x484e92,[_0xdc64('0x1d'),_0xd52275['type']])[_0xdc64('0x20')];return db[_0xdc64('0x47')][_0xdc64('0x3e')]({'where':{'name':_0x13aeec,'userProfileId':_0x2952b3[_0xdc64('0x48')]},'raw':!![]})['then'](function(_0x5b1a21){if(_0x5b1a21&&_0x5b1a21[_0xdc64('0x49')]===0x0){return db[_0xdc64('0x4a')]['create']({'name':_0xd52275[_0xdc64('0x20')],'resourceId':_0xd52275['id'],'type':_0x5b1a21[_0xdc64('0x20')],'sectionId':_0x5b1a21['id']},{})[_0xdc64('0x14')](function(){return _0x48442d;});}else{return _0x48442d;}})[_0xdc64('0x38')](function(_0x58f059){logger[_0xdc64('0x21')](_0xdc64('0x4b'),_0x58f059);throw _0x58f059;});}return _0x48442d;})[_0xdc64('0x14')](respondWithResult(_0x456979,0xc9))['catch'](handleError(_0x456979,null));};exports[_0xdc64('0x4c')]=function(_0xc48dd2,_0x3f2cbf){if(_0xc48dd2['body']['id']){delete _0xc48dd2[_0xdc64('0x40')]['id'];}return db[_0xdc64('0x35')][_0xdc64('0x3e')]({'where':{'id':_0xc48dd2[_0xdc64('0x3f')]['id']}})[_0xdc64('0x14')](handleEntityNotFound(_0x3f2cbf,null))[_0xdc64('0x14')](function(_0x1369cd){if(_0x1369cd){return db[_0xdc64('0x35')][_0xdc64('0x4c')](_[_0xdc64('0x30')](_0xc48dd2[_0xdc64('0x40')],[_0xdc64('0x4d'),'context',_0xdc64('0x4e'),_0xdc64('0x4f'),'cutdigits',_0xdc64('0x50'),'alias']),{'where':{'context':_0x1369cd['context'],'exten':_0x1369cd[_0xdc64('0x4d')]},'individualHooks':!![]})[_0xdc64('0x14')](function(_0x572d72){return _0x572d72;});}return null;})[_0xdc64('0x14')](respondWithStatusCode(_0x3f2cbf,null))['catch'](handleError(_0x3f2cbf,null));};exports[_0xdc64('0x51')]=function(_0x32d452,_0x40718f){var _0x1701b3=_0x32d452[_0xdc64('0x3f')]['id'];var _0xe1b412=_0x32d452[_0xdc64('0x40')];var _0x10db91=0xc8;var _0x338b99=null;return db['sequelize'][_0xdc64('0x52')]({'isolationLevel':db[_0xdc64('0x53')][_0xdc64('0x54')]['ISOLATION_LEVELS'][_0xdc64('0x55')]},function(_0x179dad){return db[_0xdc64('0x35')][_0xdc64('0x56')]({'where':{'id':_0x1701b3},'transaction':_0x179dad})[_0xdc64('0x14')](function(_0x51028a){if(_0x51028a){return db['VoiceExtension']['destroy']({'where':{'VoiceExtensionId':_0x1701b3},'transaction':_0x179dad})[_0xdc64('0x14')](function(){var _0x5831d2=_[_0xdc64('0x1c')](_0xe1b412,function(_0x1262e6){_0x1262e6[_0xdc64('0x57')]=_0x1701b3;_0x1262e6[_0xdc64('0x58')]=!![];return _0x1262e6;});return _0x51028a[_0xdc64('0x59')](_0x5831d2);})[_0xdc64('0x14')](function(_0x27b895){return db[_0xdc64('0x35')][_0xdc64('0x5a')](_0x27b895,{'transaction':_0x179dad});});}else{_0x10db91=0x194;_0x338b99=[];}});})[_0xdc64('0x14')](function(){if(_0x10db91!==0x194){return db[_0xdc64('0x35')]['findAndCountAll']({'where':{'isApp':!![],'VoiceExtensionId':_0x1701b3},'order':_0xdc64('0x5b')})[_0xdc64('0x14')](function(_0x31a824){_0x338b99=_0x31a824;});}})[_0xdc64('0x38')](function(_0x3a836f){_0x10db91=0x1f4;logger['error'](_0x3a836f['stack']);if(_0x3a836f['name']){delete _0x3a836f[_0xdc64('0x20')];}_0x338b99=_0x3a836f;})[_0xdc64('0x5c')](function(){if(_0x338b99===null){_0x40718f['sendStatus'](_0x10db91);}else{if(_0x10db91===0x1f4){_0x40718f[_0xdc64('0xc')](_0x10db91)[_0xdc64('0x23')](_0x338b99);}else{_0x40718f[_0xdc64('0xc')](_0x10db91)[_0xdc64('0x12')](_0x338b99);}}});};