Built motion from commit b5996064.|2.6.21
[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 _0xfc94=['addApplications','sequelize','transaction','Transaction','ISOLATION_LEVELS','READ_COMMITTED','findOne','VoiceExtensionId','isApp','createRouting','bulkCreate','findAndCountAll','cast(priority\x20as\x20unsigned)','lodash','ioredis','../../components/parsers/qs','api','../../config/environment','../../mysqldb','redis','defaults','localhost','register','sendStatus','status','end','offset','undefined','limit','count','destroy','then','get','inbound','OutboundRoutes','outbound','InternalRoutes','filter','ignore','value','includes','type','find','name','UserProfileResource','error','stack','send','rawAttributes','fieldName','key','model','map','query','keys','filters','intersection','fields','attributes','length','hasOwnProperty','nolimit','order','sort','pick','where','merge','VIRTUAL','options','includeAll','include','VoiceExtension','findAll','rows','catch','params','create','body','exten','user','InboundRoutes','UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','recordingFormat','cutdigits','mandatoryDisposition','alias'];(function(_0x1d291d,_0x17314a){var _0x44cc4e=function(_0x38d29f){while(--_0x38d29f){_0x1d291d['push'](_0x1d291d['shift']());}};_0x44cc4e(++_0x17314a);}(_0xfc94,0x11b));var _0x4fc9=function(_0x45783c,_0x49c56d){_0x45783c=_0x45783c-0x0;var _0x1161da=_0xfc94[_0x45783c];return _0x1161da;};'use strict';var _=require(_0x4fc9('0x0'));var Redis=require(_0x4fc9('0x1'));var qs=require(_0x4fc9('0x2'));var logger=require('../../config/logger')(_0x4fc9('0x3'));var config=require(_0x4fc9('0x4'));var db=require(_0x4fc9('0x5'))['db'];config[_0x4fc9('0x6')]=_[_0x4fc9('0x7')](config['redis'],{'host':_0x4fc9('0x8'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x4fc9('0x6')]));require('./voiceExtension.socket')[_0x4fc9('0x9')](socket);function respondWithStatusCode(_0x64d211,_0x4adf83){_0x4adf83=_0x4adf83||0xcc;return function(_0xcf198){if(_0xcf198){return _0x64d211[_0x4fc9('0xa')](_0x4adf83);}return _0x64d211[_0x4fc9('0xb')](_0x4adf83)[_0x4fc9('0xc')]();};}function respondWithResult(_0x1453e4,_0x1e1a88){_0x1e1a88=_0x1e1a88||0xc8;return function(_0x29c506){if(_0x29c506){return _0x1453e4[_0x4fc9('0xb')](_0x1e1a88)['json'](_0x29c506);}};}function respondWithFilteredResult(_0xa16f3c,_0x383a5d){return function(_0x51714a){if(_0x51714a){var _0x265fa3=typeof _0x383a5d[_0x4fc9('0xd')]===_0x4fc9('0xe')&&typeof _0x383a5d[_0x4fc9('0xf')]===_0x4fc9('0xe');var _0x34e136=_0x51714a[_0x4fc9('0x10')];var _0xc9aeaf=_0x265fa3?0x0:_0x383a5d[_0x4fc9('0xd')];var _0x3d0ef3=_0x265fa3?_0x51714a['count']:_0x383a5d[_0x4fc9('0xd')]+_0x383a5d[_0x4fc9('0xf')];var _0x43e944;if(_0x3d0ef3>=_0x34e136){_0x3d0ef3=_0x34e136;_0x43e944=0xc8;}else{_0x43e944=0xce;}_0xa16f3c[_0x4fc9('0xb')](_0x43e944);return _0xa16f3c['set']('Content-Range',_0xc9aeaf+'-'+_0x3d0ef3+'/'+_0x34e136)['json'](_0x51714a);}return null;};}function removeEntity(_0x2f162f){return function(_0x2a0929){if(_0x2a0929){return _0x2a0929[_0x4fc9('0x11')]()[_0x4fc9('0x12')](function(){var _0x379509=_0x2a0929[_0x4fc9('0x13')]({'plain':!![]});var _0x4d0e8a=[{'name':'InboundRoutes','value':_0x4fc9('0x14'),'ignore':![]},{'name':_0x4fc9('0x15'),'value':_0x4fc9('0x16'),'ignore':![]},{'name':_0x4fc9('0x17'),'value':'internal','ignore':![]}];var _0x1fe5dc=_(_0x4d0e8a)[_0x4fc9('0x18')](_0x4fc9('0x19'))['map'](_0x4fc9('0x1a'))[_0x4fc9('0x1a')]();if(_[_0x4fc9('0x1b')](_0x1fe5dc,_0x379509[_0x4fc9('0x1c')])){return;}var _0x53624d=_[_0x4fc9('0x1d')](_0x4d0e8a,[_0x4fc9('0x1a'),_0x379509[_0x4fc9('0x1c')]])[_0x4fc9('0x1e')];return db[_0x4fc9('0x1f')][_0x4fc9('0x11')]({'where':{'type':_0x53624d,'resourceId':_0x379509['id']}})[_0x4fc9('0x12')](function(){return _0x2a0929;});})['then'](function(){_0x2f162f['status'](0xcc)[_0x4fc9('0xc')]();});}};}function handleEntityNotFound(_0x5607b1){return function(_0x42c139){if(!_0x42c139){_0x5607b1[_0x4fc9('0xa')](0x194);}return _0x42c139;};}function handleError(_0x2a0f36,_0x95ea8e){_0x95ea8e=_0x95ea8e||0x1f4;return function(_0x467787){logger[_0x4fc9('0x20')](_0x467787[_0x4fc9('0x21')]);if(_0x467787[_0x4fc9('0x1e')]){delete _0x467787[_0x4fc9('0x1e')];}_0x2a0f36[_0x4fc9('0xb')](_0x95ea8e)[_0x4fc9('0x22')](_0x467787);};}exports['index']=function(_0x105f82,_0xc8692e){var _0x2b2645={},_0xa3f31d={},_0x51edca={'count':0x0,'rows':[]};var _0x45439a=_['map'](db['VoiceExtension'][_0x4fc9('0x23')],function(_0x547e39){return{'name':_0x547e39[_0x4fc9('0x24')],'type':_0x547e39[_0x4fc9('0x1c')][_0x4fc9('0x25')]};});_0xa3f31d[_0x4fc9('0x26')]=_[_0x4fc9('0x27')](_0x45439a,_0x4fc9('0x1e'));_0xa3f31d[_0x4fc9('0x28')]=_[_0x4fc9('0x29')](_0x105f82[_0x4fc9('0x28')]);_0xa3f31d[_0x4fc9('0x2a')]=_[_0x4fc9('0x2b')](_0xa3f31d[_0x4fc9('0x26')],_0xa3f31d[_0x4fc9('0x28')]);_0x2b2645['attributes']=_[_0x4fc9('0x2b')](_0xa3f31d['model'],qs[_0x4fc9('0x2c')](_0x105f82[_0x4fc9('0x28')][_0x4fc9('0x2c')]));_0x2b2645[_0x4fc9('0x2d')]=_0x2b2645[_0x4fc9('0x2d')][_0x4fc9('0x2e')]?_0x2b2645[_0x4fc9('0x2d')]:_0xa3f31d[_0x4fc9('0x26')];if(!_0x105f82[_0x4fc9('0x28')][_0x4fc9('0x2f')](_0x4fc9('0x30'))){_0x2b2645[_0x4fc9('0xf')]=qs['limit'](_0x105f82[_0x4fc9('0x28')]['limit']);_0x2b2645[_0x4fc9('0xd')]=qs[_0x4fc9('0xd')](_0x105f82[_0x4fc9('0x28')]['offset']);}_0x2b2645[_0x4fc9('0x31')]=qs[_0x4fc9('0x32')](_0x105f82[_0x4fc9('0x28')]['sort']);_0x2b2645['where']=qs['filters'](_[_0x4fc9('0x33')](_0x105f82[_0x4fc9('0x28')],_0xa3f31d['filters']),_0x45439a);if(_0x105f82[_0x4fc9('0x28')]['filter']){_0x2b2645[_0x4fc9('0x34')]=_[_0x4fc9('0x35')](_0x2b2645[_0x4fc9('0x34')],{'$or':_[_0x4fc9('0x27')](_0x45439a,function(_0x53a28b){if(_0x53a28b[_0x4fc9('0x1c')]!==_0x4fc9('0x36')){var _0x33c121={};_0x33c121[_0x53a28b[_0x4fc9('0x1e')]]={'$like':'%'+_0x105f82[_0x4fc9('0x28')][_0x4fc9('0x18')]+'%'};return _0x33c121;}})});}_0x2b2645=_[_0x4fc9('0x35')]({},_0x2b2645,_0x105f82[_0x4fc9('0x37')]);var _0x460a4c={'where':_0x2b2645[_0x4fc9('0x34')]};return db['VoiceExtension']['count'](_0x460a4c)[_0x4fc9('0x12')](function(_0x5282eb){_0x51edca[_0x4fc9('0x10')]=_0x5282eb;if(_0x105f82[_0x4fc9('0x28')][_0x4fc9('0x38')]){_0x2b2645[_0x4fc9('0x39')]=[{'all':!![]}];}return db[_0x4fc9('0x3a')][_0x4fc9('0x3b')](_0x2b2645);})[_0x4fc9('0x12')](function(_0x1347af){_0x51edca[_0x4fc9('0x3c')]=_0x1347af;return _0x51edca;})['then'](respondWithFilteredResult(_0xc8692e,_0x2b2645))[_0x4fc9('0x3d')](handleError(_0xc8692e,null));};exports['show']=function(_0x30b6e0,_0x60ab63){var _0x3352b8={'raw':![],'where':{'id':_0x30b6e0[_0x4fc9('0x3e')]['id']}},_0x11e962={};_0x11e962['model']=_['keys'](db[_0x4fc9('0x3a')][_0x4fc9('0x23')]);_0x11e962[_0x4fc9('0x28')]=_[_0x4fc9('0x29')](_0x30b6e0['query']);_0x11e962['filters']=_[_0x4fc9('0x2b')](_0x11e962[_0x4fc9('0x26')],_0x11e962[_0x4fc9('0x28')]);_0x3352b8['attributes']=_['intersection'](_0x11e962[_0x4fc9('0x26')],qs[_0x4fc9('0x2c')](_0x30b6e0[_0x4fc9('0x28')][_0x4fc9('0x2c')]));_0x3352b8[_0x4fc9('0x2d')]=_0x3352b8[_0x4fc9('0x2d')][_0x4fc9('0x2e')]?_0x3352b8[_0x4fc9('0x2d')]:_0x11e962[_0x4fc9('0x26')];if(_0x30b6e0[_0x4fc9('0x28')][_0x4fc9('0x38')]){_0x3352b8[_0x4fc9('0x39')]=[{'all':!![]}];}_0x3352b8=_[_0x4fc9('0x35')]({},_0x3352b8,_0x30b6e0['options']);return db[_0x4fc9('0x3a')][_0x4fc9('0x1d')](_0x3352b8)[_0x4fc9('0x12')](handleEntityNotFound(_0x60ab63,null))['then'](respondWithResult(_0x60ab63,null))['catch'](handleError(_0x60ab63,null));};exports[_0x4fc9('0x11')]=function(_0x5cbada,_0x49d228){return db[_0x4fc9('0x3a')]['find']({'where':{'id':_0x5cbada[_0x4fc9('0x3e')]['id']}})[_0x4fc9('0x12')](handleEntityNotFound(_0x49d228,null))[_0x4fc9('0x12')](removeEntity(_0x49d228,null))[_0x4fc9('0x3d')](handleError(_0x49d228,null));};exports[_0x4fc9('0x3f')]=function(_0x4dd012,_0x32bc0c){if(_0x4dd012[_0x4fc9('0x40')][_0x4fc9('0x1c')]==='outbound'&&!_['startsWith'](_0x4dd012[_0x4fc9('0x40')][_0x4fc9('0x41')],'_')){_0x4dd012[_0x4fc9('0x40')][_0x4fc9('0x41')]='_'['concat'](_0x4dd012['body'][_0x4fc9('0x41')]);}return db[_0x4fc9('0x3a')][_0x4fc9('0x3f')](_0x4dd012[_0x4fc9('0x40')],{'raw':![]})[_0x4fc9('0x12')](function(_0x3ea6d0){var _0x455dbb=_0x4dd012[_0x4fc9('0x42')][_0x4fc9('0x13')]({'plain':!![]});if(!_0x455dbb)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x455dbb['role']===_0x4fc9('0x42')){var _0x58e35d=_0x3ea6d0[_0x4fc9('0x13')]({'plain':!![]});var _0x552213=[{'name':_0x4fc9('0x43'),'value':'inbound'},{'name':_0x4fc9('0x15'),'value':'outbound'},{'name':'InternalRoutes','value':'internal'}];var _0x1bd335=_[_0x4fc9('0x1d')](_0x552213,[_0x4fc9('0x1a'),_0x58e35d['type']])[_0x4fc9('0x1e')];return db[_0x4fc9('0x44')][_0x4fc9('0x1d')]({'where':{'name':_0x1bd335,'userProfileId':_0x455dbb[_0x4fc9('0x45')]},'raw':!![]})[_0x4fc9('0x12')](function(_0x20dae3){if(_0x20dae3&&_0x20dae3[_0x4fc9('0x46')]===0x0){return db[_0x4fc9('0x1f')][_0x4fc9('0x3f')]({'name':_0x58e35d[_0x4fc9('0x1e')],'resourceId':_0x58e35d['id'],'type':_0x20dae3[_0x4fc9('0x1e')],'sectionId':_0x20dae3['id']},{})['then'](function(){return _0x3ea6d0;});}else{return _0x3ea6d0;}})[_0x4fc9('0x3d')](function(_0x558d9d){logger['error'](_0x4fc9('0x47'),_0x558d9d);throw _0x558d9d;});}return _0x3ea6d0;})[_0x4fc9('0x12')](respondWithResult(_0x32bc0c,0xc9))[_0x4fc9('0x3d')](handleError(_0x32bc0c,null));};exports[_0x4fc9('0x48')]=function(_0x368a87,_0x592065){if(_0x368a87['body']['id']){delete _0x368a87[_0x4fc9('0x40')]['id'];}return db['VoiceExtension'][_0x4fc9('0x1d')]({'where':{'id':_0x368a87['params']['id']}})['then'](handleEntityNotFound(_0x592065,null))['then'](function(_0x5a7acd){if(_0x5a7acd){return db['VoiceExtension'][_0x4fc9('0x48')](_[_0x4fc9('0x33')](_0x368a87['body'],[_0x4fc9('0x41'),'context','description',_0x4fc9('0x49'),_0x4fc9('0x4a'),_0x4fc9('0x4b'),_0x4fc9('0x4c')]),{'where':{'context':_0x5a7acd['context'],'exten':_0x5a7acd[_0x4fc9('0x41')]},'individualHooks':!![]})['then'](function(_0x543340){return _0x543340;});}return null;})['then'](respondWithStatusCode(_0x592065,null))[_0x4fc9('0x3d')](handleError(_0x592065,null));};exports[_0x4fc9('0x4d')]=function(_0x46b893,_0x134725){var _0x1bbf90=_0x46b893[_0x4fc9('0x3e')]['id'];var _0x75e5d9=_0x46b893[_0x4fc9('0x40')];var _0x387393=0xc8;var _0x3f0e51=null;return db[_0x4fc9('0x4e')][_0x4fc9('0x4f')]({'isolationLevel':db['sequelize'][_0x4fc9('0x50')][_0x4fc9('0x51')][_0x4fc9('0x52')]},function(_0x40f91a){return db['VoiceExtension'][_0x4fc9('0x53')]({'where':{'id':_0x1bbf90},'transaction':_0x40f91a})[_0x4fc9('0x12')](function(_0x312356){if(_0x312356){return db['VoiceExtension'][_0x4fc9('0x11')]({'where':{'VoiceExtensionId':_0x1bbf90},'transaction':_0x40f91a})['then'](function(){var _0x132005=_['map'](_0x75e5d9,function(_0x2d784e){_0x2d784e[_0x4fc9('0x54')]=_0x1bbf90;_0x2d784e[_0x4fc9('0x55')]=!![];return _0x2d784e;});return _0x312356[_0x4fc9('0x56')](_0x132005);})[_0x4fc9('0x12')](function(_0xa36e67){return db[_0x4fc9('0x3a')][_0x4fc9('0x57')](_0xa36e67,{'transaction':_0x40f91a});});}else{_0x387393=0x194;_0x3f0e51=[];}});})['then'](function(){if(_0x387393!==0x194){return db[_0x4fc9('0x3a')][_0x4fc9('0x58')]({'where':{'isApp':!![],'VoiceExtensionId':_0x1bbf90},'order':_0x4fc9('0x59')})[_0x4fc9('0x12')](function(_0x4902f9){_0x3f0e51=_0x4902f9;});}})[_0x4fc9('0x3d')](function(_0x379364){_0x387393=0x1f4;logger[_0x4fc9('0x20')](_0x379364[_0x4fc9('0x21')]);if(_0x379364[_0x4fc9('0x1e')]){delete _0x379364[_0x4fc9('0x1e')];}_0x3f0e51=_0x379364;})['finally'](function(){if(_0x3f0e51===null){_0x134725[_0x4fc9('0xa')](_0x387393);}else{if(_0x387393===0x1f4){_0x134725[_0x4fc9('0xb')](_0x387393)[_0x4fc9('0x22')](_0x3f0e51);}else{_0x134725[_0x4fc9('0xb')](_0x387393)['json'](_0x3f0e51);}}});};