Built motion from commit b0a9a629.|2.6.33
[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 _0xcfaf=['defaults','localhost','socket.io-emitter','register','end','status','json','undefined','limit','count','offset','set','Content-Range','destroy','then','InboundRoutes','inbound','OutboundRoutes','InternalRoutes','internal','filter','ignore','value','includes','type','name','UserProfileResource','sendStatus','error','stack','send','index','map','rawAttributes','key','model','keys','query','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','VIRTUAL','merge','options','VoiceExtension','include','findAll','rows','catch','show','params','includeAll','find','body','exten','concat','create','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','user','outbound','UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','context','description','cutdigits','transaction','sequelize','Transaction','ISOLATION_LEVELS','READ_COMMITTED','findOne','VoiceExtensionId','createRouting','bulkCreate','findAndCountAll','finally','lodash','../../components/parsers/qs','api','../../config/environment','../../mysqldb','redis'];(function(_0x11c6fc,_0x388b8a){var _0x21474e=function(_0x22131a){while(--_0x22131a){_0x11c6fc['push'](_0x11c6fc['shift']());}};_0x21474e(++_0x388b8a);}(_0xcfaf,0x176));var _0xfcfa=function(_0x17f95a,_0x32fa48){_0x17f95a=_0x17f95a-0x0;var _0x396a52=_0xcfaf[_0x17f95a];return _0x396a52;};'use strict';var _=require(_0xfcfa('0x0'));var Redis=require('ioredis');var qs=require(_0xfcfa('0x1'));var logger=require('../../config/logger')(_0xfcfa('0x2'));var config=require(_0xfcfa('0x3'));var db=require(_0xfcfa('0x4'))['db'];config[_0xfcfa('0x5')]=_[_0xfcfa('0x6')](config[_0xfcfa('0x5')],{'host':_0xfcfa('0x7'),'port':0x18eb});var socket=require(_0xfcfa('0x8'))(new Redis(config[_0xfcfa('0x5')]));require('./voiceExtension.socket')[_0xfcfa('0x9')](socket);function respondWithStatusCode(_0x124280,_0x38d2e0){_0x38d2e0=_0x38d2e0||0xcc;return function(_0x3c77c1){if(_0x3c77c1){return _0x124280['sendStatus'](_0x38d2e0);}return _0x124280['status'](_0x38d2e0)[_0xfcfa('0xa')]();};}function respondWithResult(_0x281884,_0x413d80){_0x413d80=_0x413d80||0xc8;return function(_0x3b5b8c){if(_0x3b5b8c){return _0x281884[_0xfcfa('0xb')](_0x413d80)[_0xfcfa('0xc')](_0x3b5b8c);}};}function respondWithFilteredResult(_0x2b7683,_0x4bfea2){return function(_0x3fb1a1){if(_0x3fb1a1){var _0x843a26=typeof _0x4bfea2['offset']===_0xfcfa('0xd')&&typeof _0x4bfea2[_0xfcfa('0xe')]==='undefined';var _0x2c872a=_0x3fb1a1[_0xfcfa('0xf')];var _0x4c1cc0=_0x843a26?0x0:_0x4bfea2[_0xfcfa('0x10')];var _0x6a8469=_0x843a26?_0x3fb1a1[_0xfcfa('0xf')]:_0x4bfea2['offset']+_0x4bfea2[_0xfcfa('0xe')];var _0x4fe7f2;if(_0x6a8469>=_0x2c872a){_0x6a8469=_0x2c872a;_0x4fe7f2=0xc8;}else{_0x4fe7f2=0xce;}_0x2b7683[_0xfcfa('0xb')](_0x4fe7f2);return _0x2b7683[_0xfcfa('0x11')](_0xfcfa('0x12'),_0x4c1cc0+'-'+_0x6a8469+'/'+_0x2c872a)[_0xfcfa('0xc')](_0x3fb1a1);}return null;};}function removeEntity(_0x271baa){return function(_0x5a3c78){if(_0x5a3c78){return _0x5a3c78[_0xfcfa('0x13')]()[_0xfcfa('0x14')](function(){var _0xc64d71=_0x5a3c78['get']({'plain':!![]});var _0x2e9c5e=[{'name':_0xfcfa('0x15'),'value':_0xfcfa('0x16'),'ignore':![]},{'name':_0xfcfa('0x17'),'value':'outbound','ignore':![]},{'name':_0xfcfa('0x18'),'value':_0xfcfa('0x19'),'ignore':![]}];var _0x56f0c8=_(_0x2e9c5e)[_0xfcfa('0x1a')](_0xfcfa('0x1b'))['map'](_0xfcfa('0x1c'))[_0xfcfa('0x1c')]();if(_[_0xfcfa('0x1d')](_0x56f0c8,_0xc64d71[_0xfcfa('0x1e')])){return;}var _0x2ce829=_['find'](_0x2e9c5e,[_0xfcfa('0x1c'),_0xc64d71[_0xfcfa('0x1e')]])[_0xfcfa('0x1f')];return db[_0xfcfa('0x20')][_0xfcfa('0x13')]({'where':{'type':_0x2ce829,'resourceId':_0xc64d71['id']}})['then'](function(){return _0x5a3c78;});})[_0xfcfa('0x14')](function(){_0x271baa[_0xfcfa('0xb')](0xcc)[_0xfcfa('0xa')]();});}};}function handleEntityNotFound(_0x26d562){return function(_0x4b365b){if(!_0x4b365b){_0x26d562[_0xfcfa('0x21')](0x194);}return _0x4b365b;};}function handleError(_0x55b299,_0x30b5a7){_0x30b5a7=_0x30b5a7||0x1f4;return function(_0x276667){logger[_0xfcfa('0x22')](_0x276667[_0xfcfa('0x23')]);if(_0x276667[_0xfcfa('0x1f')]){delete _0x276667[_0xfcfa('0x1f')];}_0x55b299[_0xfcfa('0xb')](_0x30b5a7)[_0xfcfa('0x24')](_0x276667);};}exports[_0xfcfa('0x25')]=function(_0x50e571,_0x300985){var _0x4472d1={},_0x4a100e={},_0x5f507b={'count':0x0,'rows':[]};var _0x2759c7=_[_0xfcfa('0x26')](db['VoiceExtension'][_0xfcfa('0x27')],function(_0x4af732){return{'name':_0x4af732['fieldName'],'type':_0x4af732[_0xfcfa('0x1e')][_0xfcfa('0x28')]};});_0x4a100e[_0xfcfa('0x29')]=_['map'](_0x2759c7,'name');_0x4a100e['query']=_[_0xfcfa('0x2a')](_0x50e571[_0xfcfa('0x2b')]);_0x4a100e[_0xfcfa('0x2c')]=_[_0xfcfa('0x2d')](_0x4a100e['model'],_0x4a100e[_0xfcfa('0x2b')]);_0x4472d1[_0xfcfa('0x2e')]=_[_0xfcfa('0x2d')](_0x4a100e['model'],qs[_0xfcfa('0x2f')](_0x50e571[_0xfcfa('0x2b')]['fields']));_0x4472d1[_0xfcfa('0x2e')]=_0x4472d1['attributes'][_0xfcfa('0x30')]?_0x4472d1['attributes']:_0x4a100e['model'];if(!_0x50e571[_0xfcfa('0x2b')][_0xfcfa('0x31')](_0xfcfa('0x32'))){_0x4472d1[_0xfcfa('0xe')]=qs['limit'](_0x50e571[_0xfcfa('0x2b')][_0xfcfa('0xe')]);_0x4472d1[_0xfcfa('0x10')]=qs[_0xfcfa('0x10')](_0x50e571[_0xfcfa('0x2b')]['offset']);}_0x4472d1[_0xfcfa('0x33')]=qs['sort'](_0x50e571[_0xfcfa('0x2b')][_0xfcfa('0x34')]);_0x4472d1[_0xfcfa('0x35')]=qs[_0xfcfa('0x2c')](_[_0xfcfa('0x36')](_0x50e571['query'],_0x4a100e['filters']),_0x2759c7);if(_0x50e571['query'][_0xfcfa('0x1a')]){_0x4472d1[_0xfcfa('0x35')]=_['merge'](_0x4472d1[_0xfcfa('0x35')],{'$or':_[_0xfcfa('0x26')](_0x2759c7,function(_0x2fc4e5){if(_0x2fc4e5[_0xfcfa('0x1e')]!==_0xfcfa('0x37')){var _0x4e905c={};_0x4e905c[_0x2fc4e5[_0xfcfa('0x1f')]]={'$like':'%'+_0x50e571[_0xfcfa('0x2b')][_0xfcfa('0x1a')]+'%'};return _0x4e905c;}})});}_0x4472d1=_[_0xfcfa('0x38')]({},_0x4472d1,_0x50e571[_0xfcfa('0x39')]);var _0x2bcb0d={'where':_0x4472d1[_0xfcfa('0x35')]};return db[_0xfcfa('0x3a')][_0xfcfa('0xf')](_0x2bcb0d)[_0xfcfa('0x14')](function(_0x248a85){_0x5f507b[_0xfcfa('0xf')]=_0x248a85;if(_0x50e571['query']['includeAll']){_0x4472d1[_0xfcfa('0x3b')]=[{'all':!![]}];}return db[_0xfcfa('0x3a')][_0xfcfa('0x3c')](_0x4472d1);})[_0xfcfa('0x14')](function(_0x59ff6e){_0x5f507b[_0xfcfa('0x3d')]=_0x59ff6e;return _0x5f507b;})['then'](respondWithFilteredResult(_0x300985,_0x4472d1))[_0xfcfa('0x3e')](handleError(_0x300985,null));};exports[_0xfcfa('0x3f')]=function(_0x5cd91a,_0x1612a0){var _0x453820={'raw':![],'where':{'id':_0x5cd91a[_0xfcfa('0x40')]['id']}},_0x4db561={};_0x4db561[_0xfcfa('0x29')]=_[_0xfcfa('0x2a')](db['VoiceExtension'][_0xfcfa('0x27')]);_0x4db561['query']=_[_0xfcfa('0x2a')](_0x5cd91a[_0xfcfa('0x2b')]);_0x4db561[_0xfcfa('0x2c')]=_[_0xfcfa('0x2d')](_0x4db561[_0xfcfa('0x29')],_0x4db561[_0xfcfa('0x2b')]);_0x453820[_0xfcfa('0x2e')]=_[_0xfcfa('0x2d')](_0x4db561[_0xfcfa('0x29')],qs['fields'](_0x5cd91a[_0xfcfa('0x2b')][_0xfcfa('0x2f')]));_0x453820[_0xfcfa('0x2e')]=_0x453820[_0xfcfa('0x2e')][_0xfcfa('0x30')]?_0x453820[_0xfcfa('0x2e')]:_0x4db561['model'];if(_0x5cd91a['query'][_0xfcfa('0x41')]){_0x453820[_0xfcfa('0x3b')]=[{'all':!![]}];}_0x453820=_[_0xfcfa('0x38')]({},_0x453820,_0x5cd91a[_0xfcfa('0x39')]);return db[_0xfcfa('0x3a')]['find'](_0x453820)['then'](handleEntityNotFound(_0x1612a0,null))['then'](respondWithResult(_0x1612a0,null))[_0xfcfa('0x3e')](handleError(_0x1612a0,null));};exports['destroy']=function(_0x586aea,_0x2fe616){return db[_0xfcfa('0x3a')][_0xfcfa('0x42')]({'where':{'id':_0x586aea[_0xfcfa('0x40')]['id']}})[_0xfcfa('0x14')](handleEntityNotFound(_0x2fe616,null))[_0xfcfa('0x14')](removeEntity(_0x2fe616,null))[_0xfcfa('0x3e')](handleError(_0x2fe616,null));};exports['create']=function(_0xee3cdc,_0xb6350){if(_0xee3cdc[_0xfcfa('0x43')][_0xfcfa('0x1e')]==='outbound'&&!_['startsWith'](_0xee3cdc[_0xfcfa('0x43')][_0xfcfa('0x44')],'_')){_0xee3cdc[_0xfcfa('0x43')][_0xfcfa('0x44')]='_'[_0xfcfa('0x45')](_0xee3cdc['body'][_0xfcfa('0x44')]);}return db[_0xfcfa('0x3a')][_0xfcfa('0x46')](_0xee3cdc['body'],{'raw':![]})[_0xfcfa('0x14')](function(_0x322d9e){var _0x11154c=_0xee3cdc['user'][_0xfcfa('0x47')]({'plain':!![]});if(!_0x11154c)throw new Error(_0xfcfa('0x48'));if(_0x11154c[_0xfcfa('0x49')]===_0xfcfa('0x4a')){var _0x3bcde9=_0x322d9e[_0xfcfa('0x47')]({'plain':!![]});var _0x5d504d=[{'name':_0xfcfa('0x15'),'value':_0xfcfa('0x16')},{'name':_0xfcfa('0x17'),'value':_0xfcfa('0x4b')},{'name':_0xfcfa('0x18'),'value':_0xfcfa('0x19')}];var _0xb7bcd7=_['find'](_0x5d504d,[_0xfcfa('0x1c'),_0x3bcde9[_0xfcfa('0x1e')]])[_0xfcfa('0x1f')];return db[_0xfcfa('0x4c')][_0xfcfa('0x42')]({'where':{'name':_0xb7bcd7,'userProfileId':_0x11154c[_0xfcfa('0x4d')]},'raw':!![]})['then'](function(_0x1b8c91){if(_0x1b8c91&&_0x1b8c91[_0xfcfa('0x4e')]===0x0){return db['UserProfileResource']['create']({'name':_0x3bcde9[_0xfcfa('0x1f')],'resourceId':_0x3bcde9['id'],'type':_0x1b8c91['name'],'sectionId':_0x1b8c91['id']},{})[_0xfcfa('0x14')](function(){return _0x322d9e;});}else{return _0x322d9e;}})[_0xfcfa('0x3e')](function(_0x41d4b6){logger[_0xfcfa('0x22')](_0xfcfa('0x4f'),_0x41d4b6);throw _0x41d4b6;});}return _0x322d9e;})['then'](respondWithResult(_0xb6350,0xc9))['catch'](handleError(_0xb6350,null));};exports[_0xfcfa('0x50')]=function(_0x93471f,_0x1cdbcc){if(_0x93471f[_0xfcfa('0x43')]['id']){delete _0x93471f[_0xfcfa('0x43')]['id'];}return db[_0xfcfa('0x3a')][_0xfcfa('0x42')]({'where':{'id':_0x93471f['params']['id']}})[_0xfcfa('0x14')](handleEntityNotFound(_0x1cdbcc,null))[_0xfcfa('0x14')](function(_0x34121a){if(_0x34121a){return db[_0xfcfa('0x3a')][_0xfcfa('0x50')](_[_0xfcfa('0x36')](_0x93471f['body'],[_0xfcfa('0x44'),_0xfcfa('0x51'),_0xfcfa('0x52'),'recordingFormat',_0xfcfa('0x53'),'mandatoryDisposition','alias']),{'where':{'context':_0x34121a[_0xfcfa('0x51')],'exten':_0x34121a[_0xfcfa('0x44')]},'individualHooks':!![]})['then'](function(_0x4d404e){return _0x4d404e;});}return null;})[_0xfcfa('0x14')](respondWithStatusCode(_0x1cdbcc,null))[_0xfcfa('0x3e')](handleError(_0x1cdbcc,null));};exports['addApplications']=function(_0x379377,_0x24d07d){var _0x23a53b=_0x379377[_0xfcfa('0x40')]['id'];var _0x26f960=_0x379377[_0xfcfa('0x43')];var _0x40e81f=0xc8;var _0x148802=null;return db['sequelize'][_0xfcfa('0x54')]({'isolationLevel':db[_0xfcfa('0x55')][_0xfcfa('0x56')][_0xfcfa('0x57')][_0xfcfa('0x58')]},function(_0x42c202){return db[_0xfcfa('0x3a')][_0xfcfa('0x59')]({'where':{'id':_0x23a53b},'transaction':_0x42c202})[_0xfcfa('0x14')](function(_0x5423ec){if(_0x5423ec){return db['VoiceExtension']['destroy']({'where':{'VoiceExtensionId':_0x23a53b},'transaction':_0x42c202})[_0xfcfa('0x14')](function(){var _0x23961f=_[_0xfcfa('0x26')](_0x26f960,function(_0x226131){_0x226131[_0xfcfa('0x5a')]=_0x23a53b;_0x226131['isApp']=!![];return _0x226131;});return _0x5423ec[_0xfcfa('0x5b')](_0x23961f);})[_0xfcfa('0x14')](function(_0xd4063){return db[_0xfcfa('0x3a')][_0xfcfa('0x5c')](_0xd4063,{'transaction':_0x42c202});});}else{_0x40e81f=0x194;_0x148802=[];}});})[_0xfcfa('0x14')](function(){if(_0x40e81f!==0x194){return db['VoiceExtension'][_0xfcfa('0x5d')]({'where':{'isApp':!![],'VoiceExtensionId':_0x23a53b},'order':'cast(priority\x20as\x20unsigned)'})[_0xfcfa('0x14')](function(_0x41efda){_0x148802=_0x41efda;});}})['catch'](function(_0x36a5ed){_0x40e81f=0x1f4;logger['error'](_0x36a5ed[_0xfcfa('0x23')]);if(_0x36a5ed[_0xfcfa('0x1f')]){delete _0x36a5ed['name'];}_0x148802=_0x36a5ed;})[_0xfcfa('0x5e')](function(){if(_0x148802===null){_0x24d07d[_0xfcfa('0x21')](_0x40e81f);}else{if(_0x40e81f===0x1f4){_0x24d07d['status'](_0x40e81f)['send'](_0x148802);}else{_0x24d07d[_0xfcfa('0xb')](_0x40e81f)[_0xfcfa('0xc')](_0x148802);}}});};