Built motion from commit 953226e6.|2.6.32
[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 _0xd84f=['InboundRoutes','inbound','OutboundRoutes','outbound','InternalRoutes','filter','map','value','includes','find','type','name','UserProfileResource','then','error','stack','send','index','rawAttributes','fieldName','key','model','keys','query','filters','intersection','attributes','fields','nolimit','sort','where','pick','merge','VIRTUAL','options','VoiceExtension','includeAll','findAll','rows','show','params','include','catch','create','startsWith','body','exten','concat','Unable\x20to\x20retrieve\x20the\x20current\x20user','user','internal','UserProfileSection','autoAssociation','update','context','description','recordingFormat','cutdigits','mandatoryDisposition','alias','addApplications','sequelize','transaction','Transaction','ISOLATION_LEVELS','READ_COMMITTED','findOne','VoiceExtensionId','findAndCountAll','cast(priority\x20as\x20unsigned)','finally','../../components/parsers/qs','../../config/logger','../../config/environment','redis','localhost','socket.io-emitter','register','sendStatus','status','end','offset','undefined','count','limit','set','Content-Range','json','destroy','get'];(function(_0x2641f9,_0x26715f){var _0x585741=function(_0x2d1462){while(--_0x2d1462){_0x2641f9['push'](_0x2641f9['shift']());}};_0x585741(++_0x26715f);}(_0xd84f,0x1af));var _0xfd84=function(_0x350b76,_0x2ce3ca){_0x350b76=_0x350b76-0x0;var _0x15d324=_0xd84f[_0x350b76];return _0x15d324;};'use strict';var _=require('lodash');var Redis=require('ioredis');var qs=require(_0xfd84('0x0'));var logger=require(_0xfd84('0x1'))('api');var config=require(_0xfd84('0x2'));var db=require('../../mysqldb')['db'];config[_0xfd84('0x3')]=_['defaults'](config[_0xfd84('0x3')],{'host':_0xfd84('0x4'),'port':0x18eb});var socket=require(_0xfd84('0x5'))(new Redis(config[_0xfd84('0x3')]));require('./voiceExtension.socket')[_0xfd84('0x6')](socket);function respondWithStatusCode(_0x2a8a3b,_0x532ece){_0x532ece=_0x532ece||0xcc;return function(_0x3046ab){if(_0x3046ab){return _0x2a8a3b[_0xfd84('0x7')](_0x532ece);}return _0x2a8a3b[_0xfd84('0x8')](_0x532ece)[_0xfd84('0x9')]();};}function respondWithResult(_0x5b123a,_0x27a5f7){_0x27a5f7=_0x27a5f7||0xc8;return function(_0x16c190){if(_0x16c190){return _0x5b123a[_0xfd84('0x8')](_0x27a5f7)['json'](_0x16c190);}};}function respondWithFilteredResult(_0x3898ac,_0x54b26d){return function(_0x3bfb86){if(_0x3bfb86){var _0x1ab594=typeof _0x54b26d[_0xfd84('0xa')]===_0xfd84('0xb')&&typeof _0x54b26d['limit']==='undefined';var _0x487d2a=_0x3bfb86['count'];var _0x2115e8=_0x1ab594?0x0:_0x54b26d[_0xfd84('0xa')];var _0x5a28b9=_0x1ab594?_0x3bfb86[_0xfd84('0xc')]:_0x54b26d[_0xfd84('0xa')]+_0x54b26d[_0xfd84('0xd')];var _0x5403e5;if(_0x5a28b9>=_0x487d2a){_0x5a28b9=_0x487d2a;_0x5403e5=0xc8;}else{_0x5403e5=0xce;}_0x3898ac[_0xfd84('0x8')](_0x5403e5);return _0x3898ac[_0xfd84('0xe')](_0xfd84('0xf'),_0x2115e8+'-'+_0x5a28b9+'/'+_0x487d2a)[_0xfd84('0x10')](_0x3bfb86);}return null;};}function removeEntity(_0x5b4de3){return function(_0x3c0b10){if(_0x3c0b10){return _0x3c0b10[_0xfd84('0x11')]()['then'](function(){var _0xce9139=_0x3c0b10[_0xfd84('0x12')]({'plain':!![]});var _0x14056f=[{'name':_0xfd84('0x13'),'value':_0xfd84('0x14'),'ignore':![]},{'name':_0xfd84('0x15'),'value':_0xfd84('0x16'),'ignore':![]},{'name':_0xfd84('0x17'),'value':'internal','ignore':![]}];var _0x2d120c=_(_0x14056f)[_0xfd84('0x18')]('ignore')[_0xfd84('0x19')](_0xfd84('0x1a'))[_0xfd84('0x1a')]();if(_[_0xfd84('0x1b')](_0x2d120c,_0xce9139['type'])){return;}var _0x11acbd=_[_0xfd84('0x1c')](_0x14056f,['value',_0xce9139[_0xfd84('0x1d')]])[_0xfd84('0x1e')];return db[_0xfd84('0x1f')][_0xfd84('0x11')]({'where':{'type':_0x11acbd,'resourceId':_0xce9139['id']}})[_0xfd84('0x20')](function(){return _0x3c0b10;});})[_0xfd84('0x20')](function(){_0x5b4de3['status'](0xcc)[_0xfd84('0x9')]();});}};}function handleEntityNotFound(_0xe90bc2){return function(_0x176b15){if(!_0x176b15){_0xe90bc2['sendStatus'](0x194);}return _0x176b15;};}function handleError(_0x2dfe69,_0x5a8dd5){_0x5a8dd5=_0x5a8dd5||0x1f4;return function(_0x3450b0){logger[_0xfd84('0x21')](_0x3450b0[_0xfd84('0x22')]);if(_0x3450b0['name']){delete _0x3450b0[_0xfd84('0x1e')];}_0x2dfe69[_0xfd84('0x8')](_0x5a8dd5)[_0xfd84('0x23')](_0x3450b0);};}exports[_0xfd84('0x24')]=function(_0x29cb0b,_0x578917){var _0x4a0c25={},_0xd1fa9b={},_0x23f56d={'count':0x0,'rows':[]};var _0x76fc71=_[_0xfd84('0x19')](db['VoiceExtension'][_0xfd84('0x25')],function(_0x47331a){return{'name':_0x47331a[_0xfd84('0x26')],'type':_0x47331a[_0xfd84('0x1d')][_0xfd84('0x27')]};});_0xd1fa9b[_0xfd84('0x28')]=_[_0xfd84('0x19')](_0x76fc71,'name');_0xd1fa9b['query']=_[_0xfd84('0x29')](_0x29cb0b[_0xfd84('0x2a')]);_0xd1fa9b[_0xfd84('0x2b')]=_[_0xfd84('0x2c')](_0xd1fa9b[_0xfd84('0x28')],_0xd1fa9b[_0xfd84('0x2a')]);_0x4a0c25[_0xfd84('0x2d')]=_['intersection'](_0xd1fa9b['model'],qs[_0xfd84('0x2e')](_0x29cb0b[_0xfd84('0x2a')][_0xfd84('0x2e')]));_0x4a0c25['attributes']=_0x4a0c25[_0xfd84('0x2d')]['length']?_0x4a0c25[_0xfd84('0x2d')]:_0xd1fa9b[_0xfd84('0x28')];if(!_0x29cb0b[_0xfd84('0x2a')]['hasOwnProperty'](_0xfd84('0x2f'))){_0x4a0c25['limit']=qs[_0xfd84('0xd')](_0x29cb0b['query']['limit']);_0x4a0c25[_0xfd84('0xa')]=qs['offset'](_0x29cb0b['query'][_0xfd84('0xa')]);}_0x4a0c25['order']=qs['sort'](_0x29cb0b['query'][_0xfd84('0x30')]);_0x4a0c25[_0xfd84('0x31')]=qs['filters'](_[_0xfd84('0x32')](_0x29cb0b[_0xfd84('0x2a')],_0xd1fa9b[_0xfd84('0x2b')]),_0x76fc71);if(_0x29cb0b[_0xfd84('0x2a')]['filter']){_0x4a0c25[_0xfd84('0x31')]=_[_0xfd84('0x33')](_0x4a0c25['where'],{'$or':_[_0xfd84('0x19')](_0x76fc71,function(_0x4b1c52){if(_0x4b1c52[_0xfd84('0x1d')]!==_0xfd84('0x34')){var _0x4e0672={};_0x4e0672[_0x4b1c52[_0xfd84('0x1e')]]={'$like':'%'+_0x29cb0b[_0xfd84('0x2a')][_0xfd84('0x18')]+'%'};return _0x4e0672;}})});}_0x4a0c25=_[_0xfd84('0x33')]({},_0x4a0c25,_0x29cb0b[_0xfd84('0x35')]);var _0x107bdc={'where':_0x4a0c25['where']};return db[_0xfd84('0x36')]['count'](_0x107bdc)['then'](function(_0x21aa1c){_0x23f56d[_0xfd84('0xc')]=_0x21aa1c;if(_0x29cb0b[_0xfd84('0x2a')][_0xfd84('0x37')]){_0x4a0c25['include']=[{'all':!![]}];}return db[_0xfd84('0x36')][_0xfd84('0x38')](_0x4a0c25);})[_0xfd84('0x20')](function(_0x591315){_0x23f56d[_0xfd84('0x39')]=_0x591315;return _0x23f56d;})[_0xfd84('0x20')](respondWithFilteredResult(_0x578917,_0x4a0c25))['catch'](handleError(_0x578917,null));};exports[_0xfd84('0x3a')]=function(_0x1b1bc0,_0x2e2523){var _0x1f16b3={'raw':![],'where':{'id':_0x1b1bc0[_0xfd84('0x3b')]['id']}},_0x5a4db4={};_0x5a4db4[_0xfd84('0x28')]=_[_0xfd84('0x29')](db['VoiceExtension'][_0xfd84('0x25')]);_0x5a4db4[_0xfd84('0x2a')]=_[_0xfd84('0x29')](_0x1b1bc0[_0xfd84('0x2a')]);_0x5a4db4[_0xfd84('0x2b')]=_['intersection'](_0x5a4db4[_0xfd84('0x28')],_0x5a4db4['query']);_0x1f16b3[_0xfd84('0x2d')]=_[_0xfd84('0x2c')](_0x5a4db4['model'],qs[_0xfd84('0x2e')](_0x1b1bc0[_0xfd84('0x2a')][_0xfd84('0x2e')]));_0x1f16b3[_0xfd84('0x2d')]=_0x1f16b3['attributes']['length']?_0x1f16b3['attributes']:_0x5a4db4[_0xfd84('0x28')];if(_0x1b1bc0[_0xfd84('0x2a')][_0xfd84('0x37')]){_0x1f16b3[_0xfd84('0x3c')]=[{'all':!![]}];}_0x1f16b3=_[_0xfd84('0x33')]({},_0x1f16b3,_0x1b1bc0[_0xfd84('0x35')]);return db[_0xfd84('0x36')][_0xfd84('0x1c')](_0x1f16b3)[_0xfd84('0x20')](handleEntityNotFound(_0x2e2523,null))[_0xfd84('0x20')](respondWithResult(_0x2e2523,null))[_0xfd84('0x3d')](handleError(_0x2e2523,null));};exports[_0xfd84('0x11')]=function(_0x20305c,_0x1463f4){return db['VoiceExtension'][_0xfd84('0x1c')]({'where':{'id':_0x20305c[_0xfd84('0x3b')]['id']}})[_0xfd84('0x20')](handleEntityNotFound(_0x1463f4,null))[_0xfd84('0x20')](removeEntity(_0x1463f4,null))['catch'](handleError(_0x1463f4,null));};exports[_0xfd84('0x3e')]=function(_0x4035a7,_0x496736){if(_0x4035a7['body'][_0xfd84('0x1d')]===_0xfd84('0x16')&&!_[_0xfd84('0x3f')](_0x4035a7[_0xfd84('0x40')][_0xfd84('0x41')],'_')){_0x4035a7['body'][_0xfd84('0x41')]='_'[_0xfd84('0x42')](_0x4035a7[_0xfd84('0x40')][_0xfd84('0x41')]);}return db[_0xfd84('0x36')][_0xfd84('0x3e')](_0x4035a7[_0xfd84('0x40')],{'raw':![]})['then'](function(_0x4857f7){var _0x96a2f8=_0x4035a7['user'][_0xfd84('0x12')]({'plain':!![]});if(!_0x96a2f8)throw new Error(_0xfd84('0x43'));if(_0x96a2f8['role']===_0xfd84('0x44')){var _0x1b5b76=_0x4857f7[_0xfd84('0x12')]({'plain':!![]});var _0x9f1aa2=[{'name':_0xfd84('0x13'),'value':_0xfd84('0x14')},{'name':_0xfd84('0x15'),'value':_0xfd84('0x16')},{'name':_0xfd84('0x17'),'value':_0xfd84('0x45')}];var _0x12d1e3=_[_0xfd84('0x1c')](_0x9f1aa2,[_0xfd84('0x1a'),_0x1b5b76[_0xfd84('0x1d')]])[_0xfd84('0x1e')];return db[_0xfd84('0x46')]['find']({'where':{'name':_0x12d1e3,'userProfileId':_0x96a2f8['userProfileId']},'raw':!![]})[_0xfd84('0x20')](function(_0x5b3dba){if(_0x5b3dba&&_0x5b3dba[_0xfd84('0x47')]===0x0){return db[_0xfd84('0x1f')][_0xfd84('0x3e')]({'name':_0x1b5b76[_0xfd84('0x1e')],'resourceId':_0x1b5b76['id'],'type':_0x5b3dba[_0xfd84('0x1e')],'sectionId':_0x5b3dba['id']},{})['then'](function(){return _0x4857f7;});}else{return _0x4857f7;}})[_0xfd84('0x3d')](function(_0x4011a9){logger['error']('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x4011a9);throw _0x4011a9;});}return _0x4857f7;})[_0xfd84('0x20')](respondWithResult(_0x496736,0xc9))[_0xfd84('0x3d')](handleError(_0x496736,null));};exports[_0xfd84('0x48')]=function(_0x2dcbcb,_0x294c69){if(_0x2dcbcb[_0xfd84('0x40')]['id']){delete _0x2dcbcb['body']['id'];}return db[_0xfd84('0x36')]['find']({'where':{'id':_0x2dcbcb[_0xfd84('0x3b')]['id']}})['then'](handleEntityNotFound(_0x294c69,null))[_0xfd84('0x20')](function(_0x4edf86){if(_0x4edf86){return db['VoiceExtension']['update'](_[_0xfd84('0x32')](_0x2dcbcb[_0xfd84('0x40')],[_0xfd84('0x41'),_0xfd84('0x49'),_0xfd84('0x4a'),_0xfd84('0x4b'),_0xfd84('0x4c'),_0xfd84('0x4d'),_0xfd84('0x4e')]),{'where':{'context':_0x4edf86[_0xfd84('0x49')],'exten':_0x4edf86['exten']},'individualHooks':!![]})[_0xfd84('0x20')](function(_0x2a56f7){return _0x2a56f7;});}return null;})[_0xfd84('0x20')](respondWithStatusCode(_0x294c69,null))['catch'](handleError(_0x294c69,null));};exports[_0xfd84('0x4f')]=function(_0x283c5b,_0x5acc1d){var _0x49fd31=_0x283c5b[_0xfd84('0x3b')]['id'];var _0x42f040=_0x283c5b[_0xfd84('0x40')];var _0x297cd7=0xc8;var _0x5df931=null;return db[_0xfd84('0x50')][_0xfd84('0x51')]({'isolationLevel':db[_0xfd84('0x50')][_0xfd84('0x52')][_0xfd84('0x53')][_0xfd84('0x54')]},function(_0x3f1bd6){return db[_0xfd84('0x36')][_0xfd84('0x55')]({'where':{'id':_0x49fd31},'transaction':_0x3f1bd6})[_0xfd84('0x20')](function(_0x5e36e2){if(_0x5e36e2){return db['VoiceExtension']['destroy']({'where':{'VoiceExtensionId':_0x49fd31},'transaction':_0x3f1bd6})[_0xfd84('0x20')](function(){var _0x38116b=_[_0xfd84('0x19')](_0x42f040,function(_0x42e2e5){_0x42e2e5[_0xfd84('0x56')]=_0x49fd31;_0x42e2e5['isApp']=!![];return _0x42e2e5;});return _0x5e36e2['createRouting'](_0x38116b);})[_0xfd84('0x20')](function(_0x296351){return db[_0xfd84('0x36')]['bulkCreate'](_0x296351,{'transaction':_0x3f1bd6});});}else{_0x297cd7=0x194;_0x5df931=[];}});})[_0xfd84('0x20')](function(){if(_0x297cd7!==0x194){return db[_0xfd84('0x36')][_0xfd84('0x57')]({'where':{'isApp':!![],'VoiceExtensionId':_0x49fd31},'order':_0xfd84('0x58')})[_0xfd84('0x20')](function(_0x1d13db){_0x5df931=_0x1d13db;});}})[_0xfd84('0x3d')](function(_0x3b2f21){_0x297cd7=0x1f4;logger[_0xfd84('0x21')](_0x3b2f21[_0xfd84('0x22')]);if(_0x3b2f21[_0xfd84('0x1e')]){delete _0x3b2f21[_0xfd84('0x1e')];}_0x5df931=_0x3b2f21;})[_0xfd84('0x59')](function(){if(_0x5df931===null){_0x5acc1d[_0xfd84('0x7')](_0x297cd7);}else{if(_0x297cd7===0x1f4){_0x5acc1d[_0xfd84('0x8')](_0x297cd7)[_0xfd84('0x23')](_0x5df931);}else{_0x5acc1d[_0xfd84('0x8')](_0x297cd7)[_0xfd84('0x10')](_0x5df931);}}});};