Built motion from commit f7863d46.|2.5.41
[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 _0x8dd0=['InboundRoutes','inbound','InternalRoutes','internal','filter','value','includes','type','find','name','UserProfileResource','error','stack','send','index','map','rawAttributes','fieldName','key','model','query','intersection','fields','attributes','hasOwnProperty','nolimit','order','sort','where','filters','merge','options','VoiceExtension','includeAll','include','findAll','rows','catch','show','params','keys','create','body','outbound','startsWith','exten','concat','user','OutboundRoutes','UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','context','description','cutdigits','mandatoryDisposition','alias','addApplications','transaction','sequelize','Transaction','findOne','VoiceExtensionId','createRouting','bulkCreate','findAndCountAll','cast(priority\x20as\x20unsigned)','finally','lodash','../../components/parsers/qs','../../config/logger','api','../../config/environment','../../mysqldb','redis','defaults','localhost','socket.io-emitter','register','sendStatus','status','end','json','offset','undefined','count','limit','set','Content-Range','destroy','then','get'];(function(_0x14add3,_0x13ce8d){var _0x4a174f=function(_0x2b3ed7){while(--_0x2b3ed7){_0x14add3['push'](_0x14add3['shift']());}};_0x4a174f(++_0x13ce8d);}(_0x8dd0,0x160));var _0x08dd=function(_0x1b3c82,_0x4cf0ca){_0x1b3c82=_0x1b3c82-0x0;var _0x435a72=_0x8dd0[_0x1b3c82];return _0x435a72;};'use strict';var _=require(_0x08dd('0x0'));var Redis=require('ioredis');var qs=require(_0x08dd('0x1'));var logger=require(_0x08dd('0x2'))(_0x08dd('0x3'));var config=require(_0x08dd('0x4'));var db=require(_0x08dd('0x5'))['db'];config[_0x08dd('0x6')]=_[_0x08dd('0x7')](config[_0x08dd('0x6')],{'host':_0x08dd('0x8'),'port':0x18eb});var socket=require(_0x08dd('0x9'))(new Redis(config['redis']));require('./voiceExtension.socket')[_0x08dd('0xa')](socket);function respondWithStatusCode(_0x819a71,_0x378039){_0x378039=_0x378039||0xcc;return function(_0x535fc3){if(_0x535fc3){return _0x819a71[_0x08dd('0xb')](_0x378039);}return _0x819a71[_0x08dd('0xc')](_0x378039)[_0x08dd('0xd')]();};}function respondWithResult(_0x598e59,_0xe65245){_0xe65245=_0xe65245||0xc8;return function(_0x111c7e){if(_0x111c7e){return _0x598e59[_0x08dd('0xc')](_0xe65245)[_0x08dd('0xe')](_0x111c7e);}};}function respondWithFilteredResult(_0x43b6c6,_0x2e5dab){return function(_0x307220){if(_0x307220){var _0x5f1e6f=typeof _0x2e5dab[_0x08dd('0xf')]===_0x08dd('0x10')&&typeof _0x2e5dab['limit']==='undefined';var _0x12a994=_0x307220[_0x08dd('0x11')];var _0x1f803d=_0x5f1e6f?0x0:_0x2e5dab['offset'];var _0x2aefdb=_0x5f1e6f?_0x307220['count']:_0x2e5dab[_0x08dd('0xf')]+_0x2e5dab[_0x08dd('0x12')];var _0x4decae;if(_0x2aefdb>=_0x12a994){_0x2aefdb=_0x12a994;_0x4decae=0xc8;}else{_0x4decae=0xce;}_0x43b6c6[_0x08dd('0xc')](_0x4decae);return _0x43b6c6[_0x08dd('0x13')](_0x08dd('0x14'),_0x1f803d+'-'+_0x2aefdb+'/'+_0x12a994)['json'](_0x307220);}return null;};}function removeEntity(_0x4c9be7){return function(_0x1f00e8){if(_0x1f00e8){return _0x1f00e8[_0x08dd('0x15')]()[_0x08dd('0x16')](function(){var _0x3a547a=_0x1f00e8[_0x08dd('0x17')]({'plain':!![]});var _0x17ca49=[{'name':_0x08dd('0x18'),'value':_0x08dd('0x19'),'ignore':![]},{'name':'OutboundRoutes','value':'outbound','ignore':![]},{'name':_0x08dd('0x1a'),'value':_0x08dd('0x1b'),'ignore':![]}];var _0x27cc1a=_(_0x17ca49)[_0x08dd('0x1c')]('ignore')['map'](_0x08dd('0x1d'))['value']();if(_[_0x08dd('0x1e')](_0x27cc1a,_0x3a547a[_0x08dd('0x1f')])){return;}var _0x4867f6=_[_0x08dd('0x20')](_0x17ca49,[_0x08dd('0x1d'),_0x3a547a[_0x08dd('0x1f')]])[_0x08dd('0x21')];return db[_0x08dd('0x22')][_0x08dd('0x15')]({'where':{'type':_0x4867f6,'resourceId':_0x3a547a['id']}})[_0x08dd('0x16')](function(){return _0x1f00e8;});})['then'](function(){_0x4c9be7['status'](0xcc)[_0x08dd('0xd')]();});}};}function handleEntityNotFound(_0x237feb){return function(_0x451ad4){if(!_0x451ad4){_0x237feb[_0x08dd('0xb')](0x194);}return _0x451ad4;};}function handleError(_0x40975a,_0x2ac02d){_0x2ac02d=_0x2ac02d||0x1f4;return function(_0x235ad1){logger[_0x08dd('0x23')](_0x235ad1[_0x08dd('0x24')]);if(_0x235ad1['name']){delete _0x235ad1[_0x08dd('0x21')];}_0x40975a[_0x08dd('0xc')](_0x2ac02d)[_0x08dd('0x25')](_0x235ad1);};}exports[_0x08dd('0x26')]=function(_0x5d087c,_0x5e8d3f){var _0x925458={},_0x4220e1={},_0x5632ca={'count':0x0,'rows':[]};var _0x580e58=_[_0x08dd('0x27')](db['VoiceExtension'][_0x08dd('0x28')],function(_0x5a6986){return{'name':_0x5a6986[_0x08dd('0x29')],'type':_0x5a6986[_0x08dd('0x1f')][_0x08dd('0x2a')]};});_0x4220e1[_0x08dd('0x2b')]=_['map'](_0x580e58,_0x08dd('0x21'));_0x4220e1[_0x08dd('0x2c')]=_['keys'](_0x5d087c['query']);_0x4220e1['filters']=_['intersection'](_0x4220e1['model'],_0x4220e1['query']);_0x925458['attributes']=_[_0x08dd('0x2d')](_0x4220e1[_0x08dd('0x2b')],qs[_0x08dd('0x2e')](_0x5d087c[_0x08dd('0x2c')][_0x08dd('0x2e')]));_0x925458[_0x08dd('0x2f')]=_0x925458[_0x08dd('0x2f')]['length']?_0x925458[_0x08dd('0x2f')]:_0x4220e1['model'];if(!_0x5d087c[_0x08dd('0x2c')][_0x08dd('0x30')](_0x08dd('0x31'))){_0x925458[_0x08dd('0x12')]=qs[_0x08dd('0x12')](_0x5d087c[_0x08dd('0x2c')][_0x08dd('0x12')]);_0x925458['offset']=qs[_0x08dd('0xf')](_0x5d087c['query'][_0x08dd('0xf')]);}_0x925458[_0x08dd('0x32')]=qs[_0x08dd('0x33')](_0x5d087c[_0x08dd('0x2c')][_0x08dd('0x33')]);_0x925458[_0x08dd('0x34')]=qs[_0x08dd('0x35')](_['pick'](_0x5d087c[_0x08dd('0x2c')],_0x4220e1[_0x08dd('0x35')]),_0x580e58);if(_0x5d087c[_0x08dd('0x2c')][_0x08dd('0x1c')]){_0x925458[_0x08dd('0x34')]=_[_0x08dd('0x36')](_0x925458[_0x08dd('0x34')],{'$or':_[_0x08dd('0x27')](_0x580e58,function(_0x263e8c){if(_0x263e8c[_0x08dd('0x1f')]!=='VIRTUAL'){var _0x583fdd={};_0x583fdd[_0x263e8c[_0x08dd('0x21')]]={'$like':'%'+_0x5d087c[_0x08dd('0x2c')][_0x08dd('0x1c')]+'%'};return _0x583fdd;}})});}_0x925458=_[_0x08dd('0x36')]({},_0x925458,_0x5d087c[_0x08dd('0x37')]);var _0xa6b6f7={'where':_0x925458[_0x08dd('0x34')]};return db[_0x08dd('0x38')]['count'](_0xa6b6f7)[_0x08dd('0x16')](function(_0x1bb816){_0x5632ca[_0x08dd('0x11')]=_0x1bb816;if(_0x5d087c[_0x08dd('0x2c')][_0x08dd('0x39')]){_0x925458[_0x08dd('0x3a')]=[{'all':!![]}];}return db[_0x08dd('0x38')][_0x08dd('0x3b')](_0x925458);})['then'](function(_0x516063){_0x5632ca[_0x08dd('0x3c')]=_0x516063;return _0x5632ca;})[_0x08dd('0x16')](respondWithFilteredResult(_0x5e8d3f,_0x925458))[_0x08dd('0x3d')](handleError(_0x5e8d3f,null));};exports[_0x08dd('0x3e')]=function(_0x2c18db,_0x342345){var _0x3aa354={'raw':![],'where':{'id':_0x2c18db[_0x08dd('0x3f')]['id']}},_0x3c272e={};_0x3c272e[_0x08dd('0x2b')]=_['keys'](db[_0x08dd('0x38')][_0x08dd('0x28')]);_0x3c272e['query']=_[_0x08dd('0x40')](_0x2c18db[_0x08dd('0x2c')]);_0x3c272e[_0x08dd('0x35')]=_['intersection'](_0x3c272e[_0x08dd('0x2b')],_0x3c272e['query']);_0x3aa354[_0x08dd('0x2f')]=_[_0x08dd('0x2d')](_0x3c272e[_0x08dd('0x2b')],qs['fields'](_0x2c18db[_0x08dd('0x2c')][_0x08dd('0x2e')]));_0x3aa354['attributes']=_0x3aa354[_0x08dd('0x2f')]['length']?_0x3aa354[_0x08dd('0x2f')]:_0x3c272e['model'];if(_0x2c18db[_0x08dd('0x2c')][_0x08dd('0x39')]){_0x3aa354['include']=[{'all':!![]}];}_0x3aa354=_['merge']({},_0x3aa354,_0x2c18db[_0x08dd('0x37')]);return db['VoiceExtension'][_0x08dd('0x20')](_0x3aa354)[_0x08dd('0x16')](handleEntityNotFound(_0x342345,null))[_0x08dd('0x16')](respondWithResult(_0x342345,null))['catch'](handleError(_0x342345,null));};exports['destroy']=function(_0x5d40c8,_0x5e6245){return db[_0x08dd('0x38')][_0x08dd('0x20')]({'where':{'id':_0x5d40c8['params']['id']}})[_0x08dd('0x16')](handleEntityNotFound(_0x5e6245,null))[_0x08dd('0x16')](removeEntity(_0x5e6245,null))[_0x08dd('0x3d')](handleError(_0x5e6245,null));};exports[_0x08dd('0x41')]=function(_0x22cf34,_0x9b7a21){if(_0x22cf34[_0x08dd('0x42')][_0x08dd('0x1f')]===_0x08dd('0x43')&&!_[_0x08dd('0x44')](_0x22cf34['body'][_0x08dd('0x45')],'_')){_0x22cf34[_0x08dd('0x42')][_0x08dd('0x45')]='_'[_0x08dd('0x46')](_0x22cf34[_0x08dd('0x42')][_0x08dd('0x45')]);}return db[_0x08dd('0x38')][_0x08dd('0x41')](_0x22cf34[_0x08dd('0x42')],{'raw':![]})[_0x08dd('0x16')](function(_0x93139d){var _0x27c365=_0x22cf34[_0x08dd('0x47')][_0x08dd('0x17')]({'plain':!![]});if(!_0x27c365)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x27c365['role']===_0x08dd('0x47')){var _0x729b87=_0x93139d[_0x08dd('0x17')]({'plain':!![]});var _0xab286c=[{'name':_0x08dd('0x18'),'value':_0x08dd('0x19')},{'name':_0x08dd('0x48'),'value':_0x08dd('0x43')},{'name':'InternalRoutes','value':_0x08dd('0x1b')}];var _0x547bf6=_[_0x08dd('0x20')](_0xab286c,[_0x08dd('0x1d'),_0x729b87['type']])[_0x08dd('0x21')];return db[_0x08dd('0x49')][_0x08dd('0x20')]({'where':{'name':_0x547bf6,'userProfileId':_0x27c365[_0x08dd('0x4a')]},'raw':!![]})['then'](function(_0x339846){if(_0x339846&&_0x339846[_0x08dd('0x4b')]===0x0){return db[_0x08dd('0x22')][_0x08dd('0x41')]({'name':_0x729b87[_0x08dd('0x21')],'resourceId':_0x729b87['id'],'type':_0x339846['name'],'sectionId':_0x339846['id']},{})[_0x08dd('0x16')](function(){return _0x93139d;});}else{return _0x93139d;}})[_0x08dd('0x3d')](function(_0x1441fa){logger[_0x08dd('0x23')](_0x08dd('0x4c'),_0x1441fa);throw _0x1441fa;});}return _0x93139d;})[_0x08dd('0x16')](respondWithResult(_0x9b7a21,0xc9))[_0x08dd('0x3d')](handleError(_0x9b7a21,null));};exports[_0x08dd('0x4d')]=function(_0x4a8549,_0x48c7df){if(_0x4a8549[_0x08dd('0x42')]['id']){delete _0x4a8549[_0x08dd('0x42')]['id'];}return db[_0x08dd('0x38')]['find']({'where':{'id':_0x4a8549[_0x08dd('0x3f')]['id']}})[_0x08dd('0x16')](handleEntityNotFound(_0x48c7df,null))[_0x08dd('0x16')](function(_0x4ca1d5){if(_0x4ca1d5){return db[_0x08dd('0x38')][_0x08dd('0x4d')](_['pick'](_0x4a8549[_0x08dd('0x42')],[_0x08dd('0x45'),_0x08dd('0x4e'),_0x08dd('0x4f'),'recordingFormat',_0x08dd('0x50'),_0x08dd('0x51'),_0x08dd('0x52')]),{'where':{'context':_0x4ca1d5[_0x08dd('0x4e')],'exten':_0x4ca1d5[_0x08dd('0x45')]},'individualHooks':!![]})[_0x08dd('0x16')](function(_0x24d2c5){return _0x24d2c5;});}return null;})[_0x08dd('0x16')](respondWithStatusCode(_0x48c7df,null))[_0x08dd('0x3d')](handleError(_0x48c7df,null));};exports[_0x08dd('0x53')]=function(_0x97eeb0,_0x2232c4){var _0x3fdba3=_0x97eeb0[_0x08dd('0x3f')]['id'];var _0x4ac56e=_0x97eeb0[_0x08dd('0x42')];var _0x14cd1a=0xc8;var _0x262474=null;return db['sequelize'][_0x08dd('0x54')]({'isolationLevel':db[_0x08dd('0x55')][_0x08dd('0x56')]['ISOLATION_LEVELS']['READ_COMMITTED']},function(_0x2bee9f){return db['VoiceExtension'][_0x08dd('0x57')]({'where':{'id':_0x3fdba3},'transaction':_0x2bee9f})[_0x08dd('0x16')](function(_0x5f0e5b){if(_0x5f0e5b){return db['VoiceExtension']['destroy']({'where':{'VoiceExtensionId':_0x3fdba3},'transaction':_0x2bee9f})[_0x08dd('0x16')](function(){var _0xea2edd=_['map'](_0x4ac56e,function(_0x2fe7e6){_0x2fe7e6[_0x08dd('0x58')]=_0x3fdba3;_0x2fe7e6['isApp']=!![];return _0x2fe7e6;});return _0x5f0e5b[_0x08dd('0x59')](_0xea2edd);})[_0x08dd('0x16')](function(_0x2d5d7e){return db[_0x08dd('0x38')][_0x08dd('0x5a')](_0x2d5d7e,{'transaction':_0x2bee9f});});}else{_0x14cd1a=0x194;_0x262474=[];}});})[_0x08dd('0x16')](function(){if(_0x14cd1a!==0x194){return db[_0x08dd('0x38')][_0x08dd('0x5b')]({'where':{'isApp':!![],'VoiceExtensionId':_0x3fdba3},'order':_0x08dd('0x5c')})[_0x08dd('0x16')](function(_0x3b67c3){_0x262474=_0x3b67c3;});}})[_0x08dd('0x3d')](function(_0x1bae24){_0x14cd1a=0x1f4;logger[_0x08dd('0x23')](_0x1bae24['stack']);if(_0x1bae24['name']){delete _0x1bae24[_0x08dd('0x21')];}_0x262474=_0x1bae24;})[_0x08dd('0x5d')](function(){if(_0x262474===null){_0x2232c4[_0x08dd('0xb')](_0x14cd1a);}else{if(_0x14cd1a===0x1f4){_0x2232c4[_0x08dd('0xc')](_0x14cd1a)[_0x08dd('0x25')](_0x262474);}else{_0x2232c4[_0x08dd('0xc')](_0x14cd1a)[_0x08dd('0xe')](_0x262474);}}});};