Built motion from commit bab6f49e.|2.6.17
[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 _0x1afa=['inbound','internal','UserProfileSection','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','context','description','recordingFormat','mandatoryDisposition','sequelize','Transaction','READ_COMMITTED','findOne','VoiceExtensionId','isApp','createRouting','findAndCountAll','cast(priority\x20as\x20unsigned)','finally','sendStatus','lodash','../../components/parsers/qs','../../config/logger','api','../../config/environment','../../mysqldb','redis','defaults','localhost','socket.io-emitter','./voiceExtension.socket','status','end','json','offset','undefined','limit','count','set','Content-Range','destroy','then','get','InboundRoutes','OutboundRoutes','filter','ignore','map','value','includes','type','find','name','UserProfileResource','error','stack','send','index','rawAttributes','fieldName','key','model','query','keys','filters','intersection','fields','attributes','hasOwnProperty','nolimit','order','sort','where','pick','merge','VoiceExtension','includeAll','include','rows','show','params','length','options','catch','create','body','outbound','exten','concat','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role'];(function(_0x55f51d,_0x4fba50){var _0x22052a=function(_0xc77b95){while(--_0xc77b95){_0x55f51d['push'](_0x55f51d['shift']());}};_0x22052a(++_0x4fba50);}(_0x1afa,0x184));var _0xa1af=function(_0x4ad762,_0x3e7464){_0x4ad762=_0x4ad762-0x0;var _0x56f931=_0x1afa[_0x4ad762];return _0x56f931;};'use strict';var _=require(_0xa1af('0x0'));var Redis=require('ioredis');var qs=require(_0xa1af('0x1'));var logger=require(_0xa1af('0x2'))(_0xa1af('0x3'));var config=require(_0xa1af('0x4'));var db=require(_0xa1af('0x5'))['db'];config[_0xa1af('0x6')]=_[_0xa1af('0x7')](config[_0xa1af('0x6')],{'host':_0xa1af('0x8'),'port':0x18eb});var socket=require(_0xa1af('0x9'))(new Redis(config[_0xa1af('0x6')]));require(_0xa1af('0xa'))['register'](socket);function respondWithStatusCode(_0x10252a,_0x5549dc){_0x5549dc=_0x5549dc||0xcc;return function(_0x3d21dd){if(_0x3d21dd){return _0x10252a['sendStatus'](_0x5549dc);}return _0x10252a[_0xa1af('0xb')](_0x5549dc)[_0xa1af('0xc')]();};}function respondWithResult(_0x33d6b2,_0x1a99b5){_0x1a99b5=_0x1a99b5||0xc8;return function(_0x1d858f){if(_0x1d858f){return _0x33d6b2[_0xa1af('0xb')](_0x1a99b5)[_0xa1af('0xd')](_0x1d858f);}};}function respondWithFilteredResult(_0x3ceb87,_0x5283ac){return function(_0xa0f516){if(_0xa0f516){var _0x159af8=typeof _0x5283ac[_0xa1af('0xe')]===_0xa1af('0xf')&&typeof _0x5283ac[_0xa1af('0x10')]==='undefined';var _0xa24bbc=_0xa0f516[_0xa1af('0x11')];var _0x37639d=_0x159af8?0x0:_0x5283ac[_0xa1af('0xe')];var _0x179b57=_0x159af8?_0xa0f516['count']:_0x5283ac[_0xa1af('0xe')]+_0x5283ac[_0xa1af('0x10')];var _0x1f4b46;if(_0x179b57>=_0xa24bbc){_0x179b57=_0xa24bbc;_0x1f4b46=0xc8;}else{_0x1f4b46=0xce;}_0x3ceb87['status'](_0x1f4b46);return _0x3ceb87[_0xa1af('0x12')](_0xa1af('0x13'),_0x37639d+'-'+_0x179b57+'/'+_0xa24bbc)[_0xa1af('0xd')](_0xa0f516);}return null;};}function removeEntity(_0x2228e5){return function(_0x52eeaf){if(_0x52eeaf){return _0x52eeaf[_0xa1af('0x14')]()[_0xa1af('0x15')](function(){var _0x2d3213=_0x52eeaf[_0xa1af('0x16')]({'plain':!![]});var _0x1a45da=[{'name':_0xa1af('0x17'),'value':'inbound','ignore':![]},{'name':_0xa1af('0x18'),'value':'outbound','ignore':![]},{'name':'InternalRoutes','value':'internal','ignore':![]}];var _0x4be912=_(_0x1a45da)[_0xa1af('0x19')](_0xa1af('0x1a'))[_0xa1af('0x1b')](_0xa1af('0x1c'))['value']();if(_[_0xa1af('0x1d')](_0x4be912,_0x2d3213[_0xa1af('0x1e')])){return;}var _0x3c657a=_[_0xa1af('0x1f')](_0x1a45da,[_0xa1af('0x1c'),_0x2d3213[_0xa1af('0x1e')]])[_0xa1af('0x20')];return db[_0xa1af('0x21')][_0xa1af('0x14')]({'where':{'type':_0x3c657a,'resourceId':_0x2d3213['id']}})['then'](function(){return _0x52eeaf;});})[_0xa1af('0x15')](function(){_0x2228e5[_0xa1af('0xb')](0xcc)[_0xa1af('0xc')]();});}};}function handleEntityNotFound(_0x5e2ec8){return function(_0x7b0830){if(!_0x7b0830){_0x5e2ec8['sendStatus'](0x194);}return _0x7b0830;};}function handleError(_0x3827bb,_0x25144a){_0x25144a=_0x25144a||0x1f4;return function(_0x2be4f6){logger[_0xa1af('0x22')](_0x2be4f6[_0xa1af('0x23')]);if(_0x2be4f6[_0xa1af('0x20')]){delete _0x2be4f6['name'];}_0x3827bb[_0xa1af('0xb')](_0x25144a)[_0xa1af('0x24')](_0x2be4f6);};}exports[_0xa1af('0x25')]=function(_0x3cdda,_0x5cc1de){var _0x20aaff={},_0x36a47={},_0xe6dcb3={'count':0x0,'rows':[]};var _0x2e8dd1=_['map'](db['VoiceExtension'][_0xa1af('0x26')],function(_0x213c7f){return{'name':_0x213c7f[_0xa1af('0x27')],'type':_0x213c7f[_0xa1af('0x1e')][_0xa1af('0x28')]};});_0x36a47[_0xa1af('0x29')]=_['map'](_0x2e8dd1,_0xa1af('0x20'));_0x36a47[_0xa1af('0x2a')]=_[_0xa1af('0x2b')](_0x3cdda[_0xa1af('0x2a')]);_0x36a47[_0xa1af('0x2c')]=_[_0xa1af('0x2d')](_0x36a47[_0xa1af('0x29')],_0x36a47['query']);_0x20aaff['attributes']=_[_0xa1af('0x2d')](_0x36a47[_0xa1af('0x29')],qs['fields'](_0x3cdda[_0xa1af('0x2a')][_0xa1af('0x2e')]));_0x20aaff[_0xa1af('0x2f')]=_0x20aaff[_0xa1af('0x2f')]['length']?_0x20aaff[_0xa1af('0x2f')]:_0x36a47['model'];if(!_0x3cdda['query'][_0xa1af('0x30')](_0xa1af('0x31'))){_0x20aaff[_0xa1af('0x10')]=qs[_0xa1af('0x10')](_0x3cdda[_0xa1af('0x2a')][_0xa1af('0x10')]);_0x20aaff[_0xa1af('0xe')]=qs[_0xa1af('0xe')](_0x3cdda['query'][_0xa1af('0xe')]);}_0x20aaff[_0xa1af('0x32')]=qs[_0xa1af('0x33')](_0x3cdda['query']['sort']);_0x20aaff[_0xa1af('0x34')]=qs[_0xa1af('0x2c')](_[_0xa1af('0x35')](_0x3cdda['query'],_0x36a47[_0xa1af('0x2c')]),_0x2e8dd1);if(_0x3cdda[_0xa1af('0x2a')][_0xa1af('0x19')]){_0x20aaff[_0xa1af('0x34')]=_[_0xa1af('0x36')](_0x20aaff[_0xa1af('0x34')],{'$or':_['map'](_0x2e8dd1,function(_0x297e75){if(_0x297e75[_0xa1af('0x1e')]!=='VIRTUAL'){var _0x342184={};_0x342184[_0x297e75[_0xa1af('0x20')]]={'$like':'%'+_0x3cdda[_0xa1af('0x2a')][_0xa1af('0x19')]+'%'};return _0x342184;}})});}_0x20aaff=_[_0xa1af('0x36')]({},_0x20aaff,_0x3cdda['options']);var _0x173778={'where':_0x20aaff['where']};return db[_0xa1af('0x37')]['count'](_0x173778)[_0xa1af('0x15')](function(_0x2d4f0a){_0xe6dcb3['count']=_0x2d4f0a;if(_0x3cdda[_0xa1af('0x2a')][_0xa1af('0x38')]){_0x20aaff[_0xa1af('0x39')]=[{'all':!![]}];}return db[_0xa1af('0x37')]['findAll'](_0x20aaff);})[_0xa1af('0x15')](function(_0x4ca342){_0xe6dcb3[_0xa1af('0x3a')]=_0x4ca342;return _0xe6dcb3;})[_0xa1af('0x15')](respondWithFilteredResult(_0x5cc1de,_0x20aaff))['catch'](handleError(_0x5cc1de,null));};exports[_0xa1af('0x3b')]=function(_0x26c787,_0x225dab){var _0x521f78={'raw':![],'where':{'id':_0x26c787[_0xa1af('0x3c')]['id']}},_0x3e166d={};_0x3e166d[_0xa1af('0x29')]=_['keys'](db[_0xa1af('0x37')]['rawAttributes']);_0x3e166d[_0xa1af('0x2a')]=_[_0xa1af('0x2b')](_0x26c787[_0xa1af('0x2a')]);_0x3e166d[_0xa1af('0x2c')]=_[_0xa1af('0x2d')](_0x3e166d['model'],_0x3e166d[_0xa1af('0x2a')]);_0x521f78['attributes']=_[_0xa1af('0x2d')](_0x3e166d[_0xa1af('0x29')],qs[_0xa1af('0x2e')](_0x26c787['query']['fields']));_0x521f78['attributes']=_0x521f78[_0xa1af('0x2f')][_0xa1af('0x3d')]?_0x521f78[_0xa1af('0x2f')]:_0x3e166d[_0xa1af('0x29')];if(_0x26c787[_0xa1af('0x2a')]['includeAll']){_0x521f78[_0xa1af('0x39')]=[{'all':!![]}];}_0x521f78=_[_0xa1af('0x36')]({},_0x521f78,_0x26c787[_0xa1af('0x3e')]);return db[_0xa1af('0x37')][_0xa1af('0x1f')](_0x521f78)[_0xa1af('0x15')](handleEntityNotFound(_0x225dab,null))[_0xa1af('0x15')](respondWithResult(_0x225dab,null))['catch'](handleError(_0x225dab,null));};exports['destroy']=function(_0x7762e5,_0x1f1e9b){return db[_0xa1af('0x37')][_0xa1af('0x1f')]({'where':{'id':_0x7762e5[_0xa1af('0x3c')]['id']}})[_0xa1af('0x15')](handleEntityNotFound(_0x1f1e9b,null))['then'](removeEntity(_0x1f1e9b,null))[_0xa1af('0x3f')](handleError(_0x1f1e9b,null));};exports[_0xa1af('0x40')]=function(_0x4a0440,_0x16662f){if(_0x4a0440[_0xa1af('0x41')][_0xa1af('0x1e')]===_0xa1af('0x42')&&!_['startsWith'](_0x4a0440[_0xa1af('0x41')]['exten'],'_')){_0x4a0440[_0xa1af('0x41')][_0xa1af('0x43')]='_'[_0xa1af('0x44')](_0x4a0440[_0xa1af('0x41')][_0xa1af('0x43')]);}return db['VoiceExtension']['create'](_0x4a0440[_0xa1af('0x41')],{'raw':![]})[_0xa1af('0x15')](function(_0x1e4c2f){var _0x59346a=_0x4a0440[_0xa1af('0x45')][_0xa1af('0x16')]({'plain':!![]});if(!_0x59346a)throw new Error(_0xa1af('0x46'));if(_0x59346a[_0xa1af('0x47')]===_0xa1af('0x45')){var _0x1c38f6=_0x1e4c2f[_0xa1af('0x16')]({'plain':!![]});var _0x184460=[{'name':_0xa1af('0x17'),'value':_0xa1af('0x48')},{'name':'OutboundRoutes','value':_0xa1af('0x42')},{'name':'InternalRoutes','value':_0xa1af('0x49')}];var _0x292404=_[_0xa1af('0x1f')](_0x184460,['value',_0x1c38f6[_0xa1af('0x1e')]])[_0xa1af('0x20')];return db[_0xa1af('0x4a')][_0xa1af('0x1f')]({'where':{'name':_0x292404,'userProfileId':_0x59346a['userProfileId']},'raw':!![]})['then'](function(_0x74cad4){if(_0x74cad4&&_0x74cad4[_0xa1af('0x4b')]===0x0){return db[_0xa1af('0x21')][_0xa1af('0x40')]({'name':_0x1c38f6[_0xa1af('0x20')],'resourceId':_0x1c38f6['id'],'type':_0x74cad4[_0xa1af('0x20')],'sectionId':_0x74cad4['id']},{})[_0xa1af('0x15')](function(){return _0x1e4c2f;});}else{return _0x1e4c2f;}})['catch'](function(_0x45b8d5){logger[_0xa1af('0x22')](_0xa1af('0x4c'),_0x45b8d5);throw _0x45b8d5;});}return _0x1e4c2f;})[_0xa1af('0x15')](respondWithResult(_0x16662f,0xc9))[_0xa1af('0x3f')](handleError(_0x16662f,null));};exports['update']=function(_0x13a997,_0x40047c){if(_0x13a997[_0xa1af('0x41')]['id']){delete _0x13a997['body']['id'];}return db[_0xa1af('0x37')][_0xa1af('0x1f')]({'where':{'id':_0x13a997['params']['id']}})[_0xa1af('0x15')](handleEntityNotFound(_0x40047c,null))['then'](function(_0x4c479f){if(_0x4c479f){return db['VoiceExtension']['update'](_[_0xa1af('0x35')](_0x13a997['body'],[_0xa1af('0x43'),_0xa1af('0x4d'),_0xa1af('0x4e'),_0xa1af('0x4f'),'cutdigits',_0xa1af('0x50'),'alias']),{'where':{'context':_0x4c479f[_0xa1af('0x4d')],'exten':_0x4c479f[_0xa1af('0x43')]},'individualHooks':!![]})[_0xa1af('0x15')](function(_0x413f03){return _0x413f03;});}return null;})[_0xa1af('0x15')](respondWithStatusCode(_0x40047c,null))[_0xa1af('0x3f')](handleError(_0x40047c,null));};exports['addApplications']=function(_0x46ac0e,_0x17a2f3){var _0xcfe45d=_0x46ac0e[_0xa1af('0x3c')]['id'];var _0x153830=_0x46ac0e[_0xa1af('0x41')];var _0x1b8b67=0xc8;var _0x29d987=null;return db['sequelize']['transaction']({'isolationLevel':db[_0xa1af('0x51')][_0xa1af('0x52')]['ISOLATION_LEVELS'][_0xa1af('0x53')]},function(_0x349fe2){return db[_0xa1af('0x37')][_0xa1af('0x54')]({'where':{'id':_0xcfe45d},'transaction':_0x349fe2})['then'](function(_0x298c63){if(_0x298c63){return db[_0xa1af('0x37')][_0xa1af('0x14')]({'where':{'VoiceExtensionId':_0xcfe45d},'transaction':_0x349fe2})[_0xa1af('0x15')](function(){var _0x40a763=_['map'](_0x153830,function(_0x47ea86){_0x47ea86[_0xa1af('0x55')]=_0xcfe45d;_0x47ea86[_0xa1af('0x56')]=!![];return _0x47ea86;});return _0x298c63[_0xa1af('0x57')](_0x40a763);})[_0xa1af('0x15')](function(_0x24ada6){return db[_0xa1af('0x37')]['bulkCreate'](_0x24ada6,{'transaction':_0x349fe2});});}else{_0x1b8b67=0x194;_0x29d987=[];}});})[_0xa1af('0x15')](function(){if(_0x1b8b67!==0x194){return db['VoiceExtension'][_0xa1af('0x58')]({'where':{'isApp':!![],'VoiceExtensionId':_0xcfe45d},'order':_0xa1af('0x59')})['then'](function(_0x5bd0d5){_0x29d987=_0x5bd0d5;});}})[_0xa1af('0x3f')](function(_0x37b91c){_0x1b8b67=0x1f4;logger['error'](_0x37b91c[_0xa1af('0x23')]);if(_0x37b91c[_0xa1af('0x20')]){delete _0x37b91c['name'];}_0x29d987=_0x37b91c;})[_0xa1af('0x5a')](function(){if(_0x29d987===null){_0x17a2f3[_0xa1af('0x5b')](_0x1b8b67);}else{if(_0x1b8b67===0x1f4){_0x17a2f3['status'](_0x1b8b67)[_0xa1af('0x24')](_0x29d987);}else{_0x17a2f3[_0xa1af('0xb')](_0x1b8b67)[_0xa1af('0xd')](_0x29d987);}}});};