a98ade736492386f266038083f81afe041257ffa
[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 _0x5d9b=['params','create','body','outbound','startsWith','exten','concat','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','InboundRoutes','inbound','UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','context','recordingFormat','cutdigits','mandatoryDisposition','alias','addApplications','sequelize','transaction','Transaction','ISOLATION_LEVELS','READ_COMMITTED','findOne','destroy','VoiceExtensionId','createRouting','bulkCreate','findAndCountAll','cast(priority\x20as\x20unsigned)','finally','send','lodash','ioredis','../../components/parsers/qs','../../config/logger','api','../../config/environment','../../mysqldb','redis','defaults','./voiceExtension.socket','register','sendStatus','status','end','json','offset','undefined','limit','count','set','Content-Range','get','OutboundRoutes','InternalRoutes','internal','filter','value','includes','type','find','name','UserProfileResource','then','error','stack','index','VoiceExtension','rawAttributes','model','map','keys','query','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filters','merge','options','includeAll','include','rows','catch'];(function(_0x10a5e5,_0x834079){var _0x427d7b=function(_0x22299b){while(--_0x22299b){_0x10a5e5['push'](_0x10a5e5['shift']());}};_0x427d7b(++_0x834079);}(_0x5d9b,0x85));var _0xb5d9=function(_0x463da2,_0x14ee55){_0x463da2=_0x463da2-0x0;var _0x19cbc5=_0x5d9b[_0x463da2];return _0x19cbc5;};'use strict';var _=require(_0xb5d9('0x0'));var Redis=require(_0xb5d9('0x1'));var qs=require(_0xb5d9('0x2'));var logger=require(_0xb5d9('0x3'))(_0xb5d9('0x4'));var config=require(_0xb5d9('0x5'));var db=require(_0xb5d9('0x6'))['db'];config[_0xb5d9('0x7')]=_[_0xb5d9('0x8')](config[_0xb5d9('0x7')],{'host':'localhost','port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0xb5d9('0x7')]));require(_0xb5d9('0x9'))[_0xb5d9('0xa')](socket);function respondWithStatusCode(_0x5292d2,_0x2b06af){_0x2b06af=_0x2b06af||0xcc;return function(_0x49da8a){if(_0x49da8a){return _0x5292d2[_0xb5d9('0xb')](_0x2b06af);}return _0x5292d2[_0xb5d9('0xc')](_0x2b06af)[_0xb5d9('0xd')]();};}function respondWithResult(_0x2e0d2b,_0x11b52d){_0x11b52d=_0x11b52d||0xc8;return function(_0x313297){if(_0x313297){return _0x2e0d2b[_0xb5d9('0xc')](_0x11b52d)[_0xb5d9('0xe')](_0x313297);}};}function respondWithFilteredResult(_0xcb805c,_0x3e3752){return function(_0xc5088a){if(_0xc5088a){var _0x22e010=typeof _0x3e3752[_0xb5d9('0xf')]===_0xb5d9('0x10')&&typeof _0x3e3752[_0xb5d9('0x11')]===_0xb5d9('0x10');var _0x2ff796=_0xc5088a['count'];var _0x43e41e=_0x22e010?0x0:_0x3e3752[_0xb5d9('0xf')];var _0x20b74b=_0x22e010?_0xc5088a[_0xb5d9('0x12')]:_0x3e3752[_0xb5d9('0xf')]+_0x3e3752[_0xb5d9('0x11')];var _0x1eb4cb;if(_0x20b74b>=_0x2ff796){_0x20b74b=_0x2ff796;_0x1eb4cb=0xc8;}else{_0x1eb4cb=0xce;}_0xcb805c[_0xb5d9('0xc')](_0x1eb4cb);return _0xcb805c[_0xb5d9('0x13')](_0xb5d9('0x14'),_0x43e41e+'-'+_0x20b74b+'/'+_0x2ff796)[_0xb5d9('0xe')](_0xc5088a);}return null;};}function removeEntity(_0x56cfed){return function(_0x10c5cf){if(_0x10c5cf){return _0x10c5cf['destroy']()['then'](function(){var _0x4f33d7=_0x10c5cf[_0xb5d9('0x15')]({'plain':!![]});var _0x3e4579=[{'name':'InboundRoutes','value':'inbound','ignore':![]},{'name':_0xb5d9('0x16'),'value':'outbound','ignore':![]},{'name':_0xb5d9('0x17'),'value':_0xb5d9('0x18'),'ignore':![]}];var _0x581dea=_(_0x3e4579)[_0xb5d9('0x19')]('ignore')['map'](_0xb5d9('0x1a'))['value']();if(_[_0xb5d9('0x1b')](_0x581dea,_0x4f33d7[_0xb5d9('0x1c')])){return;}var _0x30c02c=_[_0xb5d9('0x1d')](_0x3e4579,[_0xb5d9('0x1a'),_0x4f33d7[_0xb5d9('0x1c')]])[_0xb5d9('0x1e')];return db[_0xb5d9('0x1f')]['destroy']({'where':{'type':_0x30c02c,'resourceId':_0x4f33d7['id']}})[_0xb5d9('0x20')](function(){return _0x10c5cf;});})[_0xb5d9('0x20')](function(){_0x56cfed[_0xb5d9('0xc')](0xcc)[_0xb5d9('0xd')]();});}};}function handleEntityNotFound(_0x31050c){return function(_0x2eac9c){if(!_0x2eac9c){_0x31050c[_0xb5d9('0xb')](0x194);}return _0x2eac9c;};}function handleError(_0x193052,_0x13c84f){_0x13c84f=_0x13c84f||0x1f4;return function(_0x5381ed){logger[_0xb5d9('0x21')](_0x5381ed[_0xb5d9('0x22')]);if(_0x5381ed[_0xb5d9('0x1e')]){delete _0x5381ed[_0xb5d9('0x1e')];}_0x193052[_0xb5d9('0xc')](_0x13c84f)['send'](_0x5381ed);};}exports[_0xb5d9('0x23')]=function(_0x113fb8,_0x2fec22){var _0x34588e={},_0x323f8f={},_0x3b4afa={'count':0x0,'rows':[]};var _0x3f1008=_['map'](db[_0xb5d9('0x24')][_0xb5d9('0x25')],function(_0x3dfdab){return{'name':_0x3dfdab['fieldName'],'type':_0x3dfdab[_0xb5d9('0x1c')]['key']};});_0x323f8f[_0xb5d9('0x26')]=_[_0xb5d9('0x27')](_0x3f1008,_0xb5d9('0x1e'));_0x323f8f['query']=_[_0xb5d9('0x28')](_0x113fb8[_0xb5d9('0x29')]);_0x323f8f['filters']=_[_0xb5d9('0x2a')](_0x323f8f[_0xb5d9('0x26')],_0x323f8f[_0xb5d9('0x29')]);_0x34588e[_0xb5d9('0x2b')]=_[_0xb5d9('0x2a')](_0x323f8f[_0xb5d9('0x26')],qs[_0xb5d9('0x2c')](_0x113fb8['query']['fields']));_0x34588e[_0xb5d9('0x2b')]=_0x34588e[_0xb5d9('0x2b')][_0xb5d9('0x2d')]?_0x34588e[_0xb5d9('0x2b')]:_0x323f8f[_0xb5d9('0x26')];if(!_0x113fb8[_0xb5d9('0x29')][_0xb5d9('0x2e')](_0xb5d9('0x2f'))){_0x34588e[_0xb5d9('0x11')]=qs[_0xb5d9('0x11')](_0x113fb8['query'][_0xb5d9('0x11')]);_0x34588e[_0xb5d9('0xf')]=qs['offset'](_0x113fb8['query'][_0xb5d9('0xf')]);}_0x34588e[_0xb5d9('0x30')]=qs['sort'](_0x113fb8[_0xb5d9('0x29')][_0xb5d9('0x31')]);_0x34588e[_0xb5d9('0x32')]=qs['filters'](_[_0xb5d9('0x33')](_0x113fb8[_0xb5d9('0x29')],_0x323f8f[_0xb5d9('0x34')]),_0x3f1008);if(_0x113fb8[_0xb5d9('0x29')][_0xb5d9('0x19')]){_0x34588e['where']=_[_0xb5d9('0x35')](_0x34588e['where'],{'$or':_[_0xb5d9('0x27')](_0x3f1008,function(_0x3dfb36){if(_0x3dfb36[_0xb5d9('0x1c')]!=='VIRTUAL'){var _0x3cc005={};_0x3cc005[_0x3dfb36[_0xb5d9('0x1e')]]={'$like':'%'+_0x113fb8[_0xb5d9('0x29')]['filter']+'%'};return _0x3cc005;}})});}_0x34588e=_['merge']({},_0x34588e,_0x113fb8[_0xb5d9('0x36')]);var _0x4723f7={'where':_0x34588e[_0xb5d9('0x32')]};return db['VoiceExtension']['count'](_0x4723f7)['then'](function(_0x4385ab){_0x3b4afa[_0xb5d9('0x12')]=_0x4385ab;if(_0x113fb8[_0xb5d9('0x29')][_0xb5d9('0x37')]){_0x34588e[_0xb5d9('0x38')]=[{'all':!![]}];}return db[_0xb5d9('0x24')]['findAll'](_0x34588e);})[_0xb5d9('0x20')](function(_0x56cf95){_0x3b4afa[_0xb5d9('0x39')]=_0x56cf95;return _0x3b4afa;})[_0xb5d9('0x20')](respondWithFilteredResult(_0x2fec22,_0x34588e))[_0xb5d9('0x3a')](handleError(_0x2fec22,null));};exports['show']=function(_0x5b0c06,_0x38a129){var _0xeb95a9={'raw':![],'where':{'id':_0x5b0c06['params']['id']}},_0x41e362={};_0x41e362[_0xb5d9('0x26')]=_[_0xb5d9('0x28')](db[_0xb5d9('0x24')]['rawAttributes']);_0x41e362['query']=_[_0xb5d9('0x28')](_0x5b0c06[_0xb5d9('0x29')]);_0x41e362[_0xb5d9('0x34')]=_['intersection'](_0x41e362['model'],_0x41e362['query']);_0xeb95a9[_0xb5d9('0x2b')]=_['intersection'](_0x41e362[_0xb5d9('0x26')],qs[_0xb5d9('0x2c')](_0x5b0c06[_0xb5d9('0x29')][_0xb5d9('0x2c')]));_0xeb95a9[_0xb5d9('0x2b')]=_0xeb95a9[_0xb5d9('0x2b')][_0xb5d9('0x2d')]?_0xeb95a9[_0xb5d9('0x2b')]:_0x41e362['model'];if(_0x5b0c06[_0xb5d9('0x29')][_0xb5d9('0x37')]){_0xeb95a9['include']=[{'all':!![]}];}_0xeb95a9=_[_0xb5d9('0x35')]({},_0xeb95a9,_0x5b0c06[_0xb5d9('0x36')]);return db[_0xb5d9('0x24')][_0xb5d9('0x1d')](_0xeb95a9)['then'](handleEntityNotFound(_0x38a129,null))[_0xb5d9('0x20')](respondWithResult(_0x38a129,null))[_0xb5d9('0x3a')](handleError(_0x38a129,null));};exports['destroy']=function(_0x3d69f2,_0x39b18d){return db[_0xb5d9('0x24')][_0xb5d9('0x1d')]({'where':{'id':_0x3d69f2[_0xb5d9('0x3b')]['id']}})[_0xb5d9('0x20')](handleEntityNotFound(_0x39b18d,null))[_0xb5d9('0x20')](removeEntity(_0x39b18d,null))[_0xb5d9('0x3a')](handleError(_0x39b18d,null));};exports[_0xb5d9('0x3c')]=function(_0x24fa2,_0x134029){if(_0x24fa2[_0xb5d9('0x3d')][_0xb5d9('0x1c')]===_0xb5d9('0x3e')&&!_[_0xb5d9('0x3f')](_0x24fa2['body'][_0xb5d9('0x40')],'_')){_0x24fa2[_0xb5d9('0x3d')][_0xb5d9('0x40')]='_'[_0xb5d9('0x41')](_0x24fa2['body'][_0xb5d9('0x40')]);}return db[_0xb5d9('0x24')][_0xb5d9('0x3c')](_0x24fa2[_0xb5d9('0x3d')],{'raw':![]})[_0xb5d9('0x20')](function(_0x4ada40){var _0x3285c3=_0x24fa2[_0xb5d9('0x42')]['get']({'plain':!![]});if(!_0x3285c3)throw new Error(_0xb5d9('0x43'));if(_0x3285c3[_0xb5d9('0x44')]==='user'){var _0x3ca8c2=_0x4ada40[_0xb5d9('0x15')]({'plain':!![]});var _0x183179=[{'name':_0xb5d9('0x45'),'value':_0xb5d9('0x46')},{'name':'OutboundRoutes','value':_0xb5d9('0x3e')},{'name':_0xb5d9('0x17'),'value':'internal'}];var _0x3d74a6=_[_0xb5d9('0x1d')](_0x183179,['value',_0x3ca8c2[_0xb5d9('0x1c')]])['name'];return db[_0xb5d9('0x47')][_0xb5d9('0x1d')]({'where':{'name':_0x3d74a6,'userProfileId':_0x3285c3[_0xb5d9('0x48')]},'raw':!![]})[_0xb5d9('0x20')](function(_0x59dd08){if(_0x59dd08&&_0x59dd08[_0xb5d9('0x49')]===0x0){return db['UserProfileResource'][_0xb5d9('0x3c')]({'name':_0x3ca8c2[_0xb5d9('0x1e')],'resourceId':_0x3ca8c2['id'],'type':_0x59dd08[_0xb5d9('0x1e')],'sectionId':_0x59dd08['id']},{})[_0xb5d9('0x20')](function(){return _0x4ada40;});}else{return _0x4ada40;}})[_0xb5d9('0x3a')](function(_0x37fa31){logger[_0xb5d9('0x21')](_0xb5d9('0x4a'),_0x37fa31);throw _0x37fa31;});}return _0x4ada40;})[_0xb5d9('0x20')](respondWithResult(_0x134029,0xc9))['catch'](handleError(_0x134029,null));};exports[_0xb5d9('0x4b')]=function(_0x3bec64,_0x48ed16){if(_0x3bec64['body']['id']){delete _0x3bec64['body']['id'];}return db['VoiceExtension'][_0xb5d9('0x1d')]({'where':{'id':_0x3bec64[_0xb5d9('0x3b')]['id']}})[_0xb5d9('0x20')](handleEntityNotFound(_0x48ed16,null))[_0xb5d9('0x20')](function(_0x242b42){if(_0x242b42){return db['VoiceExtension'][_0xb5d9('0x4b')](_[_0xb5d9('0x33')](_0x3bec64['body'],[_0xb5d9('0x40'),_0xb5d9('0x4c'),'description',_0xb5d9('0x4d'),_0xb5d9('0x4e'),_0xb5d9('0x4f'),_0xb5d9('0x50')]),{'where':{'context':_0x242b42[_0xb5d9('0x4c')],'exten':_0x242b42[_0xb5d9('0x40')]},'individualHooks':!![]})['then'](function(_0x4bc3ef){return _0x4bc3ef;});}return null;})[_0xb5d9('0x20')](respondWithStatusCode(_0x48ed16,null))['catch'](handleError(_0x48ed16,null));};exports[_0xb5d9('0x51')]=function(_0x58a57f,_0x3dc1a2){var _0x3182a1=_0x58a57f[_0xb5d9('0x3b')]['id'];var _0x5702c9=_0x58a57f[_0xb5d9('0x3d')];var _0x5ec4fb=0xc8;var _0x3af247=null;return db[_0xb5d9('0x52')][_0xb5d9('0x53')]({'isolationLevel':db[_0xb5d9('0x52')][_0xb5d9('0x54')][_0xb5d9('0x55')][_0xb5d9('0x56')]},function(_0x4103d8){return db['VoiceExtension'][_0xb5d9('0x57')]({'where':{'id':_0x3182a1},'transaction':_0x4103d8})[_0xb5d9('0x20')](function(_0x4741f4){if(_0x4741f4){return db[_0xb5d9('0x24')][_0xb5d9('0x58')]({'where':{'VoiceExtensionId':_0x3182a1},'transaction':_0x4103d8})[_0xb5d9('0x20')](function(){var _0x1eb0e8=_[_0xb5d9('0x27')](_0x5702c9,function(_0x20b020){_0x20b020[_0xb5d9('0x59')]=_0x3182a1;_0x20b020['isApp']=!![];return _0x20b020;});return _0x4741f4[_0xb5d9('0x5a')](_0x1eb0e8);})[_0xb5d9('0x20')](function(_0x2fba16){return db[_0xb5d9('0x24')][_0xb5d9('0x5b')](_0x2fba16,{'transaction':_0x4103d8});});}else{_0x5ec4fb=0x194;_0x3af247=[];}});})[_0xb5d9('0x20')](function(){if(_0x5ec4fb!==0x194){return db[_0xb5d9('0x24')][_0xb5d9('0x5c')]({'where':{'isApp':!![],'VoiceExtensionId':_0x3182a1},'order':_0xb5d9('0x5d')})['then'](function(_0x48db04){_0x3af247=_0x48db04;});}})[_0xb5d9('0x3a')](function(_0x3a0d12){_0x5ec4fb=0x1f4;logger[_0xb5d9('0x21')](_0x3a0d12[_0xb5d9('0x22')]);if(_0x3a0d12[_0xb5d9('0x1e')]){delete _0x3a0d12[_0xb5d9('0x1e')];}_0x3af247=_0x3a0d12;})[_0xb5d9('0x5e')](function(){if(_0x3af247===null){_0x3dc1a2[_0xb5d9('0xb')](_0x5ec4fb);}else{if(_0x5ec4fb===0x1f4){_0x3dc1a2['status'](_0x5ec4fb)[_0xb5d9('0x5f')](_0x3af247);}else{_0x3dc1a2['status'](_0x5ec4fb)['json'](_0x3af247);}}});};