8d0f4b3db9d7298c10e773eebd4e94fe172c781d
[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 _0xf6e3=['UserProfileSection','userProfileId','autoAssociation','create','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','description','recordingFormat','cutdigits','alias','context','addApplications','transaction','sequelize','Transaction','ISOLATION_LEVELS','READ_COMMITTED','findOne','VoiceExtensionId','isApp','createRouting','bulkCreate','cast(priority\x20as\x20unsigned)','finally','lodash','ioredis','../../config/logger','api','../../config/environment','../../mysqldb','redis','localhost','./voiceExtension.socket','register','sendStatus','status','end','json','undefined','limit','count','offset','set','Content-Range','destroy','then','get','inbound','OutboundRoutes','outbound','InternalRoutes','internal','filter','ignore','map','value','includes','type','name','UserProfileResource','error','stack','send','index','rawAttributes','key','query','keys','intersection','model','attributes','fields','nolimit','sort','where','filters','merge','options','VoiceExtension','includeAll','include','findAll','rows','catch','show','params','length','find','body','startsWith','exten','concat','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','InboundRoutes'];(function(_0x45df91,_0x59947b){var _0x2faad7=function(_0x5cb743){while(--_0x5cb743){_0x45df91['push'](_0x45df91['shift']());}};_0x2faad7(++_0x59947b);}(_0xf6e3,0x138));var _0x3f6e=function(_0x5998d0,_0x2ca24c){_0x5998d0=_0x5998d0-0x0;var _0x541560=_0xf6e3[_0x5998d0];return _0x541560;};'use strict';var _=require(_0x3f6e('0x0'));var Redis=require(_0x3f6e('0x1'));var qs=require('../../components/parsers/qs');var logger=require(_0x3f6e('0x2'))(_0x3f6e('0x3'));var config=require(_0x3f6e('0x4'));var db=require(_0x3f6e('0x5'))['db'];config['redis']=_['defaults'](config[_0x3f6e('0x6')],{'host':_0x3f6e('0x7'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x3f6e('0x6')]));require(_0x3f6e('0x8'))[_0x3f6e('0x9')](socket);function respondWithStatusCode(_0x2d6a13,_0x322ada){_0x322ada=_0x322ada||0xcc;return function(_0x47406e){if(_0x47406e){return _0x2d6a13[_0x3f6e('0xa')](_0x322ada);}return _0x2d6a13[_0x3f6e('0xb')](_0x322ada)[_0x3f6e('0xc')]();};}function respondWithResult(_0x5664b7,_0x51cb1c){_0x51cb1c=_0x51cb1c||0xc8;return function(_0x4d9652){if(_0x4d9652){return _0x5664b7['status'](_0x51cb1c)[_0x3f6e('0xd')](_0x4d9652);}};}function respondWithFilteredResult(_0x27355d,_0x53552b){return function(_0x1f83f1){if(_0x1f83f1){var _0x59e600=typeof _0x53552b['offset']===_0x3f6e('0xe')&&typeof _0x53552b[_0x3f6e('0xf')]==='undefined';var _0x204c61=_0x1f83f1[_0x3f6e('0x10')];var _0x5870f3=_0x59e600?0x0:_0x53552b[_0x3f6e('0x11')];var _0xfae168=_0x59e600?_0x1f83f1['count']:_0x53552b[_0x3f6e('0x11')]+_0x53552b[_0x3f6e('0xf')];var _0x52360c;if(_0xfae168>=_0x204c61){_0xfae168=_0x204c61;_0x52360c=0xc8;}else{_0x52360c=0xce;}_0x27355d[_0x3f6e('0xb')](_0x52360c);return _0x27355d[_0x3f6e('0x12')](_0x3f6e('0x13'),_0x5870f3+'-'+_0xfae168+'/'+_0x204c61)[_0x3f6e('0xd')](_0x1f83f1);}return null;};}function removeEntity(_0x2757a8){return function(_0x2b4a80){if(_0x2b4a80){return _0x2b4a80[_0x3f6e('0x14')]()[_0x3f6e('0x15')](function(){var _0x1d4125=_0x2b4a80[_0x3f6e('0x16')]({'plain':!![]});var _0x57351d=[{'name':'InboundRoutes','value':_0x3f6e('0x17'),'ignore':![]},{'name':_0x3f6e('0x18'),'value':_0x3f6e('0x19'),'ignore':![]},{'name':_0x3f6e('0x1a'),'value':_0x3f6e('0x1b'),'ignore':![]}];var _0x41ae58=_(_0x57351d)[_0x3f6e('0x1c')](_0x3f6e('0x1d'))[_0x3f6e('0x1e')](_0x3f6e('0x1f'))[_0x3f6e('0x1f')]();if(_[_0x3f6e('0x20')](_0x41ae58,_0x1d4125['type'])){return;}var _0x4550fa=_['find'](_0x57351d,['value',_0x1d4125[_0x3f6e('0x21')]])[_0x3f6e('0x22')];return db[_0x3f6e('0x23')][_0x3f6e('0x14')]({'where':{'type':_0x4550fa,'resourceId':_0x1d4125['id']}})[_0x3f6e('0x15')](function(){return _0x2b4a80;});})[_0x3f6e('0x15')](function(){_0x2757a8[_0x3f6e('0xb')](0xcc)['end']();});}};}function handleEntityNotFound(_0x57d6c7){return function(_0x43ebbf){if(!_0x43ebbf){_0x57d6c7['sendStatus'](0x194);}return _0x43ebbf;};}function handleError(_0x2ea2b1,_0x3a70c5){_0x3a70c5=_0x3a70c5||0x1f4;return function(_0x4214cd){logger[_0x3f6e('0x24')](_0x4214cd[_0x3f6e('0x25')]);if(_0x4214cd[_0x3f6e('0x22')]){delete _0x4214cd['name'];}_0x2ea2b1['status'](_0x3a70c5)[_0x3f6e('0x26')](_0x4214cd);};}exports[_0x3f6e('0x27')]=function(_0x427865,_0x1e0317){var _0x5086a4={},_0x399e36={},_0x141a61={'count':0x0,'rows':[]};var _0xb86f8=_[_0x3f6e('0x1e')](db['VoiceExtension'][_0x3f6e('0x28')],function(_0x554dcc){return{'name':_0x554dcc['fieldName'],'type':_0x554dcc[_0x3f6e('0x21')][_0x3f6e('0x29')]};});_0x399e36['model']=_[_0x3f6e('0x1e')](_0xb86f8,'name');_0x399e36[_0x3f6e('0x2a')]=_[_0x3f6e('0x2b')](_0x427865[_0x3f6e('0x2a')]);_0x399e36['filters']=_[_0x3f6e('0x2c')](_0x399e36[_0x3f6e('0x2d')],_0x399e36[_0x3f6e('0x2a')]);_0x5086a4[_0x3f6e('0x2e')]=_[_0x3f6e('0x2c')](_0x399e36[_0x3f6e('0x2d')],qs['fields'](_0x427865[_0x3f6e('0x2a')][_0x3f6e('0x2f')]));_0x5086a4[_0x3f6e('0x2e')]=_0x5086a4['attributes']['length']?_0x5086a4['attributes']:_0x399e36[_0x3f6e('0x2d')];if(!_0x427865['query']['hasOwnProperty'](_0x3f6e('0x30'))){_0x5086a4[_0x3f6e('0xf')]=qs[_0x3f6e('0xf')](_0x427865[_0x3f6e('0x2a')][_0x3f6e('0xf')]);_0x5086a4['offset']=qs[_0x3f6e('0x11')](_0x427865[_0x3f6e('0x2a')]['offset']);}_0x5086a4['order']=qs[_0x3f6e('0x31')](_0x427865[_0x3f6e('0x2a')]['sort']);_0x5086a4[_0x3f6e('0x32')]=qs[_0x3f6e('0x33')](_['pick'](_0x427865[_0x3f6e('0x2a')],_0x399e36[_0x3f6e('0x33')]),_0xb86f8);if(_0x427865['query'][_0x3f6e('0x1c')]){_0x5086a4[_0x3f6e('0x32')]=_[_0x3f6e('0x34')](_0x5086a4[_0x3f6e('0x32')],{'$or':_['map'](_0xb86f8,function(_0x18f654){if(_0x18f654[_0x3f6e('0x21')]!=='VIRTUAL'){var _0x1352d0={};_0x1352d0[_0x18f654[_0x3f6e('0x22')]]={'$like':'%'+_0x427865[_0x3f6e('0x2a')][_0x3f6e('0x1c')]+'%'};return _0x1352d0;}})});}_0x5086a4=_['merge']({},_0x5086a4,_0x427865[_0x3f6e('0x35')]);var _0x11e9b3={'where':_0x5086a4[_0x3f6e('0x32')]};return db[_0x3f6e('0x36')][_0x3f6e('0x10')](_0x11e9b3)[_0x3f6e('0x15')](function(_0x4ad074){_0x141a61[_0x3f6e('0x10')]=_0x4ad074;if(_0x427865[_0x3f6e('0x2a')][_0x3f6e('0x37')]){_0x5086a4[_0x3f6e('0x38')]=[{'all':!![]}];}return db[_0x3f6e('0x36')][_0x3f6e('0x39')](_0x5086a4);})[_0x3f6e('0x15')](function(_0x1581b8){_0x141a61[_0x3f6e('0x3a')]=_0x1581b8;return _0x141a61;})[_0x3f6e('0x15')](respondWithFilteredResult(_0x1e0317,_0x5086a4))[_0x3f6e('0x3b')](handleError(_0x1e0317,null));};exports[_0x3f6e('0x3c')]=function(_0x3c3927,_0x212645){var _0x19b37d={'raw':![],'where':{'id':_0x3c3927[_0x3f6e('0x3d')]['id']}},_0x1fbf90={};_0x1fbf90[_0x3f6e('0x2d')]=_['keys'](db[_0x3f6e('0x36')][_0x3f6e('0x28')]);_0x1fbf90[_0x3f6e('0x2a')]=_[_0x3f6e('0x2b')](_0x3c3927[_0x3f6e('0x2a')]);_0x1fbf90['filters']=_[_0x3f6e('0x2c')](_0x1fbf90[_0x3f6e('0x2d')],_0x1fbf90['query']);_0x19b37d[_0x3f6e('0x2e')]=_[_0x3f6e('0x2c')](_0x1fbf90[_0x3f6e('0x2d')],qs[_0x3f6e('0x2f')](_0x3c3927['query'][_0x3f6e('0x2f')]));_0x19b37d[_0x3f6e('0x2e')]=_0x19b37d[_0x3f6e('0x2e')][_0x3f6e('0x3e')]?_0x19b37d[_0x3f6e('0x2e')]:_0x1fbf90[_0x3f6e('0x2d')];if(_0x3c3927[_0x3f6e('0x2a')][_0x3f6e('0x37')]){_0x19b37d[_0x3f6e('0x38')]=[{'all':!![]}];}_0x19b37d=_[_0x3f6e('0x34')]({},_0x19b37d,_0x3c3927['options']);return db['VoiceExtension'][_0x3f6e('0x3f')](_0x19b37d)[_0x3f6e('0x15')](handleEntityNotFound(_0x212645,null))[_0x3f6e('0x15')](respondWithResult(_0x212645,null))['catch'](handleError(_0x212645,null));};exports[_0x3f6e('0x14')]=function(_0x4864bd,_0x197bb9){return db[_0x3f6e('0x36')]['find']({'where':{'id':_0x4864bd[_0x3f6e('0x3d')]['id']}})[_0x3f6e('0x15')](handleEntityNotFound(_0x197bb9,null))[_0x3f6e('0x15')](removeEntity(_0x197bb9,null))[_0x3f6e('0x3b')](handleError(_0x197bb9,null));};exports['create']=function(_0xd27439,_0x76483a){if(_0xd27439[_0x3f6e('0x40')][_0x3f6e('0x21')]===_0x3f6e('0x19')&&!_[_0x3f6e('0x41')](_0xd27439[_0x3f6e('0x40')][_0x3f6e('0x42')],'_')){_0xd27439[_0x3f6e('0x40')][_0x3f6e('0x42')]='_'[_0x3f6e('0x43')](_0xd27439['body'][_0x3f6e('0x42')]);}return db[_0x3f6e('0x36')]['create'](_0xd27439[_0x3f6e('0x40')],{'raw':![]})[_0x3f6e('0x15')](function(_0x2c6f59){var _0x2d4af0=_0xd27439[_0x3f6e('0x44')]['get']({'plain':!![]});if(!_0x2d4af0)throw new Error(_0x3f6e('0x45'));if(_0x2d4af0[_0x3f6e('0x46')]===_0x3f6e('0x44')){var _0x124ca=_0x2c6f59[_0x3f6e('0x16')]({'plain':!![]});var _0x4d3451=[{'name':_0x3f6e('0x47'),'value':_0x3f6e('0x17')},{'name':_0x3f6e('0x18'),'value':_0x3f6e('0x19')},{'name':_0x3f6e('0x1a'),'value':'internal'}];var _0x30dee5=_['find'](_0x4d3451,[_0x3f6e('0x1f'),_0x124ca[_0x3f6e('0x21')]])[_0x3f6e('0x22')];return db[_0x3f6e('0x48')]['find']({'where':{'name':_0x30dee5,'userProfileId':_0x2d4af0[_0x3f6e('0x49')]},'raw':!![]})['then'](function(_0x4a8589){if(_0x4a8589&&_0x4a8589[_0x3f6e('0x4a')]===0x0){return db[_0x3f6e('0x23')][_0x3f6e('0x4b')]({'name':_0x124ca[_0x3f6e('0x22')],'resourceId':_0x124ca['id'],'type':_0x4a8589[_0x3f6e('0x22')],'sectionId':_0x4a8589['id']},{})[_0x3f6e('0x15')](function(){return _0x2c6f59;});}else{return _0x2c6f59;}})[_0x3f6e('0x3b')](function(_0x4bc93b){logger[_0x3f6e('0x24')](_0x3f6e('0x4c'),_0x4bc93b);throw _0x4bc93b;});}return _0x2c6f59;})[_0x3f6e('0x15')](respondWithResult(_0x76483a,0xc9))[_0x3f6e('0x3b')](handleError(_0x76483a,null));};exports['update']=function(_0x30638a,_0x54026a){if(_0x30638a['body']['id']){delete _0x30638a[_0x3f6e('0x40')]['id'];}return db[_0x3f6e('0x36')]['find']({'where':{'id':_0x30638a[_0x3f6e('0x3d')]['id']}})['then'](handleEntityNotFound(_0x54026a,null))[_0x3f6e('0x15')](function(_0x421d6a){if(_0x421d6a){return db[_0x3f6e('0x36')][_0x3f6e('0x4d')](_['pick'](_0x30638a[_0x3f6e('0x40')],[_0x3f6e('0x42'),'context',_0x3f6e('0x4e'),_0x3f6e('0x4f'),_0x3f6e('0x50'),'mandatoryDisposition',_0x3f6e('0x51')]),{'where':{'context':_0x421d6a[_0x3f6e('0x52')],'exten':_0x421d6a['exten']},'individualHooks':!![]})[_0x3f6e('0x15')](function(_0x17edfc){return _0x17edfc;});}return null;})[_0x3f6e('0x15')](respondWithStatusCode(_0x54026a,null))[_0x3f6e('0x3b')](handleError(_0x54026a,null));};exports[_0x3f6e('0x53')]=function(_0xd7e70c,_0x383e3a){var _0x23a900=_0xd7e70c[_0x3f6e('0x3d')]['id'];var _0x506d01=_0xd7e70c[_0x3f6e('0x40')];var _0x23c895=0xc8;var _0xf1c3c4=null;return db['sequelize'][_0x3f6e('0x54')]({'isolationLevel':db[_0x3f6e('0x55')][_0x3f6e('0x56')][_0x3f6e('0x57')][_0x3f6e('0x58')]},function(_0x2662c2){return db[_0x3f6e('0x36')][_0x3f6e('0x59')]({'where':{'id':_0x23a900},'transaction':_0x2662c2})[_0x3f6e('0x15')](function(_0x5855f4){if(_0x5855f4){return db[_0x3f6e('0x36')][_0x3f6e('0x14')]({'where':{'VoiceExtensionId':_0x23a900},'transaction':_0x2662c2})[_0x3f6e('0x15')](function(){var _0x16ab8c=_[_0x3f6e('0x1e')](_0x506d01,function(_0x24ab6f){_0x24ab6f[_0x3f6e('0x5a')]=_0x23a900;_0x24ab6f[_0x3f6e('0x5b')]=!![];return _0x24ab6f;});return _0x5855f4[_0x3f6e('0x5c')](_0x16ab8c);})[_0x3f6e('0x15')](function(_0x49b61d){return db[_0x3f6e('0x36')][_0x3f6e('0x5d')](_0x49b61d,{'transaction':_0x2662c2});});}else{_0x23c895=0x194;_0xf1c3c4=[];}});})[_0x3f6e('0x15')](function(){if(_0x23c895!==0x194){return db[_0x3f6e('0x36')]['findAndCountAll']({'where':{'isApp':!![],'VoiceExtensionId':_0x23a900},'order':_0x3f6e('0x5e')})['then'](function(_0x3352a9){_0xf1c3c4=_0x3352a9;});}})[_0x3f6e('0x3b')](function(_0x423871){_0x23c895=0x1f4;logger[_0x3f6e('0x24')](_0x423871['stack']);if(_0x423871[_0x3f6e('0x22')]){delete _0x423871[_0x3f6e('0x22')];}_0xf1c3c4=_0x423871;})[_0x3f6e('0x5f')](function(){if(_0xf1c3c4===null){_0x383e3a[_0x3f6e('0xa')](_0x23c895);}else{if(_0x23c895===0x1f4){_0x383e3a[_0x3f6e('0xb')](_0x23c895)[_0x3f6e('0x26')](_0xf1c3c4);}else{_0x383e3a[_0x3f6e('0xb')](_0x23c895)[_0x3f6e('0xd')](_0xf1c3c4);}}});};