Built motion from commit ddca4d0d.|2.5.47
[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 _0x9903=['api','../../config/environment','../../mysqldb','redis','localhost','socket.io-emitter','register','sendStatus','status','end','json','offset','limit','undefined','count','set','Content-Range','then','get','InboundRoutes','inbound','OutboundRoutes','InternalRoutes','internal','ignore','map','value','type','find','name','UserProfileResource','error','stack','index','model','query','keys','intersection','attributes','fields','length','hasOwnProperty','nolimit','sort','where','filters','pick','filter','merge','options','VoiceExtension','includeAll','findAll','catch','show','params','include','destroy','create','body','outbound','startsWith','exten','concat','Unable\x20to\x20retrieve\x20the\x20current\x20user','user','UserProfileSection','userProfileId','autoAssociation','update','context','description','recordingFormat','cutdigits','mandatoryDisposition','alias','addApplications','transaction','sequelize','Transaction','findOne','VoiceExtensionId','isApp','createRouting','bulkCreate','findAndCountAll','cast(priority\x20as\x20unsigned)','finally','send','ioredis','../../config/logger'];(function(_0x24d355,_0x225938){var _0xe983fc=function(_0x41b6a3){while(--_0x41b6a3){_0x24d355['push'](_0x24d355['shift']());}};_0xe983fc(++_0x225938);}(_0x9903,0x16a));var _0x3990=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x9903[_0x3dd15e];return _0x231fd0;};'use strict';var _=require('lodash');var Redis=require(_0x3990('0x0'));var qs=require('../../components/parsers/qs');var logger=require(_0x3990('0x1'))(_0x3990('0x2'));var config=require(_0x3990('0x3'));var db=require(_0x3990('0x4'))['db'];config[_0x3990('0x5')]=_['defaults'](config[_0x3990('0x5')],{'host':_0x3990('0x6'),'port':0x18eb});var socket=require(_0x3990('0x7'))(new Redis(config[_0x3990('0x5')]));require('./voiceExtension.socket')[_0x3990('0x8')](socket);function respondWithStatusCode(_0x403141,_0x302b6a){_0x302b6a=_0x302b6a||0xcc;return function(_0x179627){if(_0x179627){return _0x403141[_0x3990('0x9')](_0x302b6a);}return _0x403141[_0x3990('0xa')](_0x302b6a)[_0x3990('0xb')]();};}function respondWithResult(_0x332cd1,_0x39c67c){_0x39c67c=_0x39c67c||0xc8;return function(_0x3e6e3d){if(_0x3e6e3d){return _0x332cd1['status'](_0x39c67c)[_0x3990('0xc')](_0x3e6e3d);}};}function respondWithFilteredResult(_0x4aaafc,_0x33ccbb){return function(_0xb46543){if(_0xb46543){var _0x480579=typeof _0x33ccbb[_0x3990('0xd')]==='undefined'&&typeof _0x33ccbb[_0x3990('0xe')]===_0x3990('0xf');var _0x4affcb=_0xb46543[_0x3990('0x10')];var _0x3baa5f=_0x480579?0x0:_0x33ccbb[_0x3990('0xd')];var _0x2e1a66=_0x480579?_0xb46543['count']:_0x33ccbb[_0x3990('0xd')]+_0x33ccbb[_0x3990('0xe')];var _0x5511f4;if(_0x2e1a66>=_0x4affcb){_0x2e1a66=_0x4affcb;_0x5511f4=0xc8;}else{_0x5511f4=0xce;}_0x4aaafc[_0x3990('0xa')](_0x5511f4);return _0x4aaafc[_0x3990('0x11')](_0x3990('0x12'),_0x3baa5f+'-'+_0x2e1a66+'/'+_0x4affcb)['json'](_0xb46543);}return null;};}function removeEntity(_0x4450ed){return function(_0x1049a2){if(_0x1049a2){return _0x1049a2['destroy']()[_0x3990('0x13')](function(){var _0x485206=_0x1049a2[_0x3990('0x14')]({'plain':!![]});var _0x3aea74=[{'name':_0x3990('0x15'),'value':_0x3990('0x16'),'ignore':![]},{'name':_0x3990('0x17'),'value':'outbound','ignore':![]},{'name':_0x3990('0x18'),'value':_0x3990('0x19'),'ignore':![]}];var _0x1912a7=_(_0x3aea74)['filter'](_0x3990('0x1a'))[_0x3990('0x1b')](_0x3990('0x1c'))[_0x3990('0x1c')]();if(_['includes'](_0x1912a7,_0x485206[_0x3990('0x1d')])){return;}var _0x5415a5=_[_0x3990('0x1e')](_0x3aea74,[_0x3990('0x1c'),_0x485206[_0x3990('0x1d')]])[_0x3990('0x1f')];return db[_0x3990('0x20')]['destroy']({'where':{'type':_0x5415a5,'resourceId':_0x485206['id']}})['then'](function(){return _0x1049a2;});})[_0x3990('0x13')](function(){_0x4450ed[_0x3990('0xa')](0xcc)['end']();});}};}function handleEntityNotFound(_0x5ec68d){return function(_0x441920){if(!_0x441920){_0x5ec68d['sendStatus'](0x194);}return _0x441920;};}function handleError(_0x37852b,_0x5a4bbc){_0x5a4bbc=_0x5a4bbc||0x1f4;return function(_0x3fe281){logger[_0x3990('0x21')](_0x3fe281[_0x3990('0x22')]);if(_0x3fe281[_0x3990('0x1f')]){delete _0x3fe281[_0x3990('0x1f')];}_0x37852b[_0x3990('0xa')](_0x5a4bbc)['send'](_0x3fe281);};}exports[_0x3990('0x23')]=function(_0x32c650,_0x7b6a7e){var _0x34acc7={},_0x5a573e={},_0x2334e1={'count':0x0,'rows':[]};var _0xfb2df7=_[_0x3990('0x1b')](db['VoiceExtension']['rawAttributes'],function(_0x1b1c14){return{'name':_0x1b1c14['fieldName'],'type':_0x1b1c14['type']['key']};});_0x5a573e[_0x3990('0x24')]=_[_0x3990('0x1b')](_0xfb2df7,_0x3990('0x1f'));_0x5a573e[_0x3990('0x25')]=_[_0x3990('0x26')](_0x32c650[_0x3990('0x25')]);_0x5a573e['filters']=_[_0x3990('0x27')](_0x5a573e[_0x3990('0x24')],_0x5a573e[_0x3990('0x25')]);_0x34acc7[_0x3990('0x28')]=_[_0x3990('0x27')](_0x5a573e[_0x3990('0x24')],qs[_0x3990('0x29')](_0x32c650[_0x3990('0x25')][_0x3990('0x29')]));_0x34acc7['attributes']=_0x34acc7[_0x3990('0x28')][_0x3990('0x2a')]?_0x34acc7[_0x3990('0x28')]:_0x5a573e[_0x3990('0x24')];if(!_0x32c650['query'][_0x3990('0x2b')](_0x3990('0x2c'))){_0x34acc7[_0x3990('0xe')]=qs['limit'](_0x32c650[_0x3990('0x25')][_0x3990('0xe')]);_0x34acc7[_0x3990('0xd')]=qs['offset'](_0x32c650[_0x3990('0x25')][_0x3990('0xd')]);}_0x34acc7['order']=qs[_0x3990('0x2d')](_0x32c650[_0x3990('0x25')][_0x3990('0x2d')]);_0x34acc7[_0x3990('0x2e')]=qs[_0x3990('0x2f')](_[_0x3990('0x30')](_0x32c650[_0x3990('0x25')],_0x5a573e['filters']),_0xfb2df7);if(_0x32c650['query'][_0x3990('0x31')]){_0x34acc7[_0x3990('0x2e')]=_[_0x3990('0x32')](_0x34acc7['where'],{'$or':_[_0x3990('0x1b')](_0xfb2df7,function(_0x5ea934){if(_0x5ea934['type']!=='VIRTUAL'){var _0x2eb8e1={};_0x2eb8e1[_0x5ea934[_0x3990('0x1f')]]={'$like':'%'+_0x32c650['query'][_0x3990('0x31')]+'%'};return _0x2eb8e1;}})});}_0x34acc7=_[_0x3990('0x32')]({},_0x34acc7,_0x32c650[_0x3990('0x33')]);var _0x5ee320={'where':_0x34acc7[_0x3990('0x2e')]};return db[_0x3990('0x34')][_0x3990('0x10')](_0x5ee320)[_0x3990('0x13')](function(_0x518655){_0x2334e1['count']=_0x518655;if(_0x32c650[_0x3990('0x25')][_0x3990('0x35')]){_0x34acc7['include']=[{'all':!![]}];}return db[_0x3990('0x34')][_0x3990('0x36')](_0x34acc7);})[_0x3990('0x13')](function(_0x6eb362){_0x2334e1['rows']=_0x6eb362;return _0x2334e1;})[_0x3990('0x13')](respondWithFilteredResult(_0x7b6a7e,_0x34acc7))[_0x3990('0x37')](handleError(_0x7b6a7e,null));};exports[_0x3990('0x38')]=function(_0x10c5e7,_0x2ee69b){var _0x5154ad={'raw':![],'where':{'id':_0x10c5e7[_0x3990('0x39')]['id']}},_0x2737af={};_0x2737af['model']=_[_0x3990('0x26')](db[_0x3990('0x34')]['rawAttributes']);_0x2737af[_0x3990('0x25')]=_[_0x3990('0x26')](_0x10c5e7[_0x3990('0x25')]);_0x2737af[_0x3990('0x2f')]=_[_0x3990('0x27')](_0x2737af['model'],_0x2737af[_0x3990('0x25')]);_0x5154ad[_0x3990('0x28')]=_['intersection'](_0x2737af[_0x3990('0x24')],qs[_0x3990('0x29')](_0x10c5e7[_0x3990('0x25')][_0x3990('0x29')]));_0x5154ad[_0x3990('0x28')]=_0x5154ad[_0x3990('0x28')][_0x3990('0x2a')]?_0x5154ad['attributes']:_0x2737af[_0x3990('0x24')];if(_0x10c5e7[_0x3990('0x25')][_0x3990('0x35')]){_0x5154ad[_0x3990('0x3a')]=[{'all':!![]}];}_0x5154ad=_[_0x3990('0x32')]({},_0x5154ad,_0x10c5e7[_0x3990('0x33')]);return db[_0x3990('0x34')][_0x3990('0x1e')](_0x5154ad)[_0x3990('0x13')](handleEntityNotFound(_0x2ee69b,null))['then'](respondWithResult(_0x2ee69b,null))[_0x3990('0x37')](handleError(_0x2ee69b,null));};exports[_0x3990('0x3b')]=function(_0x56b227,_0x480472){return db['VoiceExtension']['find']({'where':{'id':_0x56b227[_0x3990('0x39')]['id']}})[_0x3990('0x13')](handleEntityNotFound(_0x480472,null))[_0x3990('0x13')](removeEntity(_0x480472,null))[_0x3990('0x37')](handleError(_0x480472,null));};exports[_0x3990('0x3c')]=function(_0x533fd3,_0x3988b5){if(_0x533fd3[_0x3990('0x3d')]['type']===_0x3990('0x3e')&&!_[_0x3990('0x3f')](_0x533fd3['body'][_0x3990('0x40')],'_')){_0x533fd3[_0x3990('0x3d')][_0x3990('0x40')]='_'[_0x3990('0x41')](_0x533fd3[_0x3990('0x3d')]['exten']);}return db[_0x3990('0x34')][_0x3990('0x3c')](_0x533fd3[_0x3990('0x3d')],{'raw':![]})[_0x3990('0x13')](function(_0x187e6a){var _0x3915f6=_0x533fd3['user']['get']({'plain':!![]});if(!_0x3915f6)throw new Error(_0x3990('0x42'));if(_0x3915f6['role']===_0x3990('0x43')){var _0x4e32e2=_0x187e6a[_0x3990('0x14')]({'plain':!![]});var _0x10aa16=[{'name':'InboundRoutes','value':_0x3990('0x16')},{'name':_0x3990('0x17'),'value':_0x3990('0x3e')},{'name':_0x3990('0x18'),'value':_0x3990('0x19')}];var _0x591b03=_[_0x3990('0x1e')](_0x10aa16,[_0x3990('0x1c'),_0x4e32e2[_0x3990('0x1d')]])[_0x3990('0x1f')];return db[_0x3990('0x44')][_0x3990('0x1e')]({'where':{'name':_0x591b03,'userProfileId':_0x3915f6[_0x3990('0x45')]},'raw':!![]})[_0x3990('0x13')](function(_0x23c982){if(_0x23c982&&_0x23c982[_0x3990('0x46')]===0x0){return db[_0x3990('0x20')][_0x3990('0x3c')]({'name':_0x4e32e2['name'],'resourceId':_0x4e32e2['id'],'type':_0x23c982['name'],'sectionId':_0x23c982['id']},{})[_0x3990('0x13')](function(){return _0x187e6a;});}else{return _0x187e6a;}})['catch'](function(_0x359bed){logger[_0x3990('0x21')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x359bed);throw _0x359bed;});}return _0x187e6a;})['then'](respondWithResult(_0x3988b5,0xc9))[_0x3990('0x37')](handleError(_0x3988b5,null));};exports[_0x3990('0x47')]=function(_0x141c6b,_0x29eb07){if(_0x141c6b[_0x3990('0x3d')]['id']){delete _0x141c6b[_0x3990('0x3d')]['id'];}return db[_0x3990('0x34')][_0x3990('0x1e')]({'where':{'id':_0x141c6b['params']['id']}})['then'](handleEntityNotFound(_0x29eb07,null))[_0x3990('0x13')](function(_0x3d152e){if(_0x3d152e){return db[_0x3990('0x34')][_0x3990('0x47')](_['pick'](_0x141c6b['body'],[_0x3990('0x40'),_0x3990('0x48'),_0x3990('0x49'),_0x3990('0x4a'),_0x3990('0x4b'),_0x3990('0x4c'),_0x3990('0x4d')]),{'where':{'context':_0x3d152e[_0x3990('0x48')],'exten':_0x3d152e[_0x3990('0x40')]},'individualHooks':!![]})['then'](function(_0xe49ad4){return _0xe49ad4;});}return null;})[_0x3990('0x13')](respondWithStatusCode(_0x29eb07,null))['catch'](handleError(_0x29eb07,null));};exports[_0x3990('0x4e')]=function(_0x147eb4,_0x573db5){var _0x331936=_0x147eb4[_0x3990('0x39')]['id'];var _0x4123d6=_0x147eb4[_0x3990('0x3d')];var _0x3b4b97=0xc8;var _0x7a14fa=null;return db['sequelize'][_0x3990('0x4f')]({'isolationLevel':db[_0x3990('0x50')][_0x3990('0x51')]['ISOLATION_LEVELS']['READ_COMMITTED']},function(_0x41ecf3){return db[_0x3990('0x34')][_0x3990('0x52')]({'where':{'id':_0x331936},'transaction':_0x41ecf3})[_0x3990('0x13')](function(_0x693594){if(_0x693594){return db[_0x3990('0x34')]['destroy']({'where':{'VoiceExtensionId':_0x331936},'transaction':_0x41ecf3})['then'](function(){var _0x204926=_[_0x3990('0x1b')](_0x4123d6,function(_0x2d6038){_0x2d6038[_0x3990('0x53')]=_0x331936;_0x2d6038[_0x3990('0x54')]=!![];return _0x2d6038;});return _0x693594[_0x3990('0x55')](_0x204926);})[_0x3990('0x13')](function(_0x466224){return db[_0x3990('0x34')][_0x3990('0x56')](_0x466224,{'transaction':_0x41ecf3});});}else{_0x3b4b97=0x194;_0x7a14fa=[];}});})[_0x3990('0x13')](function(){if(_0x3b4b97!==0x194){return db[_0x3990('0x34')][_0x3990('0x57')]({'where':{'isApp':!![],'VoiceExtensionId':_0x331936},'order':_0x3990('0x58')})[_0x3990('0x13')](function(_0x461ff8){_0x7a14fa=_0x461ff8;});}})[_0x3990('0x37')](function(_0x28b0a6){_0x3b4b97=0x1f4;logger[_0x3990('0x21')](_0x28b0a6[_0x3990('0x22')]);if(_0x28b0a6[_0x3990('0x1f')]){delete _0x28b0a6[_0x3990('0x1f')];}_0x7a14fa=_0x28b0a6;})[_0x3990('0x59')](function(){if(_0x7a14fa===null){_0x573db5[_0x3990('0x9')](_0x3b4b97);}else{if(_0x3b4b97===0x1f4){_0x573db5[_0x3990('0xa')](_0x3b4b97)[_0x3990('0x5a')](_0x7a14fa);}else{_0x573db5[_0x3990('0xa')](_0x3b4b97)[_0x3990('0xc')](_0x7a14fa);}}});};