cb7e3d7c9fd1fc7540114bb017411dac21bfa45c
[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 _0x3f92=['findAndCountAll','priority','lodash','ioredis','../../components/parsers/qs','../../config/logger','defaults','redis','socket.io-emitter','./voiceExtension.socket','register','sendStatus','status','end','limit','undefined','offset','count','Content-Range','json','then','get','InboundRoutes','outbound','InternalRoutes','internal','filter','ignore','map','value','includes','type','find','name','UserProfileResource','destroy','error','stack','send','index','rawAttributes','fieldName','key','model','query','keys','intersection','attributes','fields','length','hasOwnProperty','sort','where','pick','filters','merge','VIRTUAL','options','VoiceExtension','include','findAll','rows','catch','show','params','body','concat','create','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','user','inbound','UserProfileSection','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','exten','description','recordingFormat','cutdigits','mandatoryDisposition','alias','context','addApplications','sequelize','Transaction','ISOLATION_LEVELS','READ_COMMITTED','isApp','createRouting','bulkCreate'];(function(_0x16cb03,_0x43ea58){var _0x10944e=function(_0x27ebaa){while(--_0x27ebaa){_0x16cb03['push'](_0x16cb03['shift']());}};_0x10944e(++_0x43ea58);}(_0x3f92,0x113));var _0x23f9=function(_0x2e502,_0x224753){_0x2e502=_0x2e502-0x0;var _0x3e17a4=_0x3f92[_0x2e502];return _0x3e17a4;};'use strict';var _=require(_0x23f9('0x0'));var Redis=require(_0x23f9('0x1'));var qs=require(_0x23f9('0x2'));var logger=require(_0x23f9('0x3'))('api');var config=require('../../config/environment');var db=require('../../mysqldb')['db'];config['redis']=_[_0x23f9('0x4')](config[_0x23f9('0x5')],{'host':'localhost','port':0x18eb});var socket=require(_0x23f9('0x6'))(new Redis(config[_0x23f9('0x5')]));require(_0x23f9('0x7'))[_0x23f9('0x8')](socket);function respondWithStatusCode(_0x184be4,_0x30b15c){_0x30b15c=_0x30b15c||0xcc;return function(_0xf46992){if(_0xf46992){return _0x184be4[_0x23f9('0x9')](_0x30b15c);}return _0x184be4[_0x23f9('0xa')](_0x30b15c)[_0x23f9('0xb')]();};}function respondWithResult(_0xc6364f,_0x2aad87){_0x2aad87=_0x2aad87||0xc8;return function(_0x4834ec){if(_0x4834ec){return _0xc6364f[_0x23f9('0xa')](_0x2aad87)['json'](_0x4834ec);}};}function respondWithFilteredResult(_0x4869f9,_0x3b8a81){return function(_0x158298){if(_0x158298){var _0x19a96d=typeof _0x3b8a81['offset']==='undefined'&&typeof _0x3b8a81[_0x23f9('0xc')]===_0x23f9('0xd');var _0x195c56=_0x158298['count'];var _0x109046=_0x19a96d?0x0:_0x3b8a81[_0x23f9('0xe')];var _0x2ddef0=_0x19a96d?_0x158298[_0x23f9('0xf')]:_0x3b8a81[_0x23f9('0xe')]+_0x3b8a81[_0x23f9('0xc')];var _0xf68773;if(_0x2ddef0>=_0x195c56){_0x2ddef0=_0x195c56;_0xf68773=0xc8;}else{_0xf68773=0xce;}_0x4869f9[_0x23f9('0xa')](_0xf68773);return _0x4869f9['set'](_0x23f9('0x10'),_0x109046+'-'+_0x2ddef0+'/'+_0x195c56)[_0x23f9('0x11')](_0x158298);}return null;};}function removeEntity(_0x281dd4){return function(_0x222735){if(_0x222735){return _0x222735['destroy']()[_0x23f9('0x12')](function(){var _0x13a23b=_0x222735[_0x23f9('0x13')]({'plain':!![]});var _0x1930ad=[{'name':_0x23f9('0x14'),'value':'inbound','ignore':![]},{'name':'OutboundRoutes','value':_0x23f9('0x15'),'ignore':![]},{'name':_0x23f9('0x16'),'value':_0x23f9('0x17'),'ignore':![]}];var _0x5d53e3=_(_0x1930ad)[_0x23f9('0x18')](_0x23f9('0x19'))[_0x23f9('0x1a')](_0x23f9('0x1b'))[_0x23f9('0x1b')]();if(_[_0x23f9('0x1c')](_0x5d53e3,_0x13a23b[_0x23f9('0x1d')])){return;}var _0x4d3210=_[_0x23f9('0x1e')](_0x1930ad,[_0x23f9('0x1b'),_0x13a23b[_0x23f9('0x1d')]])[_0x23f9('0x1f')];return db[_0x23f9('0x20')][_0x23f9('0x21')]({'where':{'type':_0x4d3210,'resourceId':_0x13a23b['id']}})['then'](function(){return _0x222735;});})['then'](function(){_0x281dd4[_0x23f9('0xa')](0xcc)[_0x23f9('0xb')]();});}};}function handleEntityNotFound(_0x33532e){return function(_0x3bc7e2){if(!_0x3bc7e2){_0x33532e[_0x23f9('0x9')](0x194);}return _0x3bc7e2;};}function handleError(_0x1215b3,_0x5ca355){_0x5ca355=_0x5ca355||0x1f4;return function(_0x2a0b76){logger[_0x23f9('0x22')](_0x2a0b76[_0x23f9('0x23')]);if(_0x2a0b76['name']){delete _0x2a0b76[_0x23f9('0x1f')];}_0x1215b3['status'](_0x5ca355)[_0x23f9('0x24')](_0x2a0b76);};}exports[_0x23f9('0x25')]=function(_0x562c81,_0x312142){var _0x585c9f={},_0x439737={},_0x4c60f1={'count':0x0,'rows':[]};var _0x4564cd=_[_0x23f9('0x1a')](db['VoiceExtension'][_0x23f9('0x26')],function(_0x9ae9b5){return{'name':_0x9ae9b5[_0x23f9('0x27')],'type':_0x9ae9b5[_0x23f9('0x1d')][_0x23f9('0x28')]};});_0x439737[_0x23f9('0x29')]=_['map'](_0x4564cd,'name');_0x439737[_0x23f9('0x2a')]=_[_0x23f9('0x2b')](_0x562c81[_0x23f9('0x2a')]);_0x439737['filters']=_[_0x23f9('0x2c')](_0x439737[_0x23f9('0x29')],_0x439737[_0x23f9('0x2a')]);_0x585c9f[_0x23f9('0x2d')]=_['intersection'](_0x439737['model'],qs[_0x23f9('0x2e')](_0x562c81[_0x23f9('0x2a')][_0x23f9('0x2e')]));_0x585c9f['attributes']=_0x585c9f[_0x23f9('0x2d')][_0x23f9('0x2f')]?_0x585c9f[_0x23f9('0x2d')]:_0x439737[_0x23f9('0x29')];if(!_0x562c81[_0x23f9('0x2a')][_0x23f9('0x30')]('nolimit')){_0x585c9f['limit']=qs[_0x23f9('0xc')](_0x562c81['query'][_0x23f9('0xc')]);_0x585c9f['offset']=qs[_0x23f9('0xe')](_0x562c81[_0x23f9('0x2a')][_0x23f9('0xe')]);}_0x585c9f['order']=qs[_0x23f9('0x31')](_0x562c81[_0x23f9('0x2a')][_0x23f9('0x31')]);_0x585c9f[_0x23f9('0x32')]=qs['filters'](_[_0x23f9('0x33')](_0x562c81[_0x23f9('0x2a')],_0x439737[_0x23f9('0x34')]),_0x4564cd);if(_0x562c81['query'][_0x23f9('0x18')]){_0x585c9f['where']=_[_0x23f9('0x35')](_0x585c9f[_0x23f9('0x32')],{'$or':_[_0x23f9('0x1a')](_0x4564cd,function(_0x54e25){if(_0x54e25[_0x23f9('0x1d')]!==_0x23f9('0x36')){var _0x31acac={};_0x31acac[_0x54e25['name']]={'$like':'%'+_0x562c81[_0x23f9('0x2a')][_0x23f9('0x18')]+'%'};return _0x31acac;}})});}_0x585c9f=_[_0x23f9('0x35')]({},_0x585c9f,_0x562c81[_0x23f9('0x37')]);var _0x830bf2={'where':_0x585c9f['where']};return db[_0x23f9('0x38')][_0x23f9('0xf')](_0x830bf2)[_0x23f9('0x12')](function(_0x2bbbfa){_0x4c60f1['count']=_0x2bbbfa;if(_0x562c81[_0x23f9('0x2a')]['includeAll']){_0x585c9f[_0x23f9('0x39')]=[{'all':!![]}];}return db[_0x23f9('0x38')][_0x23f9('0x3a')](_0x585c9f);})[_0x23f9('0x12')](function(_0x2cbe7d){_0x4c60f1[_0x23f9('0x3b')]=_0x2cbe7d;return _0x4c60f1;})[_0x23f9('0x12')](respondWithFilteredResult(_0x312142,_0x585c9f))[_0x23f9('0x3c')](handleError(_0x312142,null));};exports[_0x23f9('0x3d')]=function(_0xa930b5,_0x240719){var _0x43aa9e={'raw':![],'where':{'id':_0xa930b5[_0x23f9('0x3e')]['id']}},_0x19e3cf={};_0x19e3cf[_0x23f9('0x29')]=_[_0x23f9('0x2b')](db[_0x23f9('0x38')][_0x23f9('0x26')]);_0x19e3cf[_0x23f9('0x2a')]=_[_0x23f9('0x2b')](_0xa930b5['query']);_0x19e3cf[_0x23f9('0x34')]=_[_0x23f9('0x2c')](_0x19e3cf[_0x23f9('0x29')],_0x19e3cf['query']);_0x43aa9e['attributes']=_[_0x23f9('0x2c')](_0x19e3cf[_0x23f9('0x29')],qs[_0x23f9('0x2e')](_0xa930b5[_0x23f9('0x2a')][_0x23f9('0x2e')]));_0x43aa9e[_0x23f9('0x2d')]=_0x43aa9e['attributes'][_0x23f9('0x2f')]?_0x43aa9e[_0x23f9('0x2d')]:_0x19e3cf[_0x23f9('0x29')];if(_0xa930b5['query']['includeAll']){_0x43aa9e[_0x23f9('0x39')]=[{'all':!![]}];}_0x43aa9e=_[_0x23f9('0x35')]({},_0x43aa9e,_0xa930b5[_0x23f9('0x37')]);return db['VoiceExtension'][_0x23f9('0x1e')](_0x43aa9e)[_0x23f9('0x12')](handleEntityNotFound(_0x240719,null))[_0x23f9('0x12')](respondWithResult(_0x240719,null))[_0x23f9('0x3c')](handleError(_0x240719,null));};exports[_0x23f9('0x21')]=function(_0x1a3adf,_0x52e185){return db[_0x23f9('0x38')][_0x23f9('0x1e')]({'where':{'id':_0x1a3adf[_0x23f9('0x3e')]['id']}})[_0x23f9('0x12')](handleEntityNotFound(_0x52e185,null))[_0x23f9('0x12')](removeEntity(_0x52e185,null))[_0x23f9('0x3c')](handleError(_0x52e185,null));};exports['create']=function(_0x40834b,_0x19c618){if(_0x40834b[_0x23f9('0x3f')][_0x23f9('0x1d')]===_0x23f9('0x15')&&!_['startsWith'](_0x40834b[_0x23f9('0x3f')]['exten'],'_')){_0x40834b[_0x23f9('0x3f')]['exten']='_'[_0x23f9('0x40')](_0x40834b[_0x23f9('0x3f')]['exten']);}return db['VoiceExtension'][_0x23f9('0x41')](_0x40834b[_0x23f9('0x3f')],{'raw':![]})[_0x23f9('0x12')](function(_0x472af0){var _0x51a5fb=_0x40834b['user'][_0x23f9('0x13')]({'plain':!![]});if(!_0x51a5fb)throw new Error(_0x23f9('0x42'));if(_0x51a5fb[_0x23f9('0x43')]===_0x23f9('0x44')){var _0x35a66a=_0x472af0[_0x23f9('0x13')]({'plain':!![]});var _0x5abb46=[{'name':_0x23f9('0x14'),'value':_0x23f9('0x45')},{'name':'OutboundRoutes','value':_0x23f9('0x15')},{'name':_0x23f9('0x16'),'value':_0x23f9('0x17')}];var _0x39d968=_[_0x23f9('0x1e')](_0x5abb46,[_0x23f9('0x1b'),_0x35a66a[_0x23f9('0x1d')]])[_0x23f9('0x1f')];return db[_0x23f9('0x46')]['find']({'where':{'name':_0x39d968,'userProfileId':_0x51a5fb['userProfileId']},'raw':!![]})[_0x23f9('0x12')](function(_0x5c9764){if(_0x5c9764&&_0x5c9764[_0x23f9('0x47')]===0x0){return db['UserProfileResource']['create']({'name':_0x35a66a[_0x23f9('0x1f')],'resourceId':_0x35a66a['id'],'type':_0x5c9764['name'],'sectionId':_0x5c9764['id']},{})['then'](function(){return _0x472af0;});}else{return _0x472af0;}})[_0x23f9('0x3c')](function(_0x18e4ba){logger[_0x23f9('0x22')](_0x23f9('0x48'),_0x18e4ba);throw _0x18e4ba;});}return _0x472af0;})['then'](respondWithResult(_0x19c618,0xc9))['catch'](handleError(_0x19c618,null));};exports[_0x23f9('0x49')]=function(_0x42db63,_0x2fb6ad){if(_0x42db63[_0x23f9('0x3f')]['id']){delete _0x42db63[_0x23f9('0x3f')]['id'];}return db[_0x23f9('0x38')][_0x23f9('0x1e')]({'where':{'id':_0x42db63['params']['id']}})['then'](handleEntityNotFound(_0x2fb6ad,null))['then'](function(_0x5c01dc){if(_0x5c01dc){return db[_0x23f9('0x38')][_0x23f9('0x49')](_[_0x23f9('0x33')](_0x42db63[_0x23f9('0x3f')],[_0x23f9('0x4a'),'context',_0x23f9('0x4b'),_0x23f9('0x4c'),_0x23f9('0x4d'),_0x23f9('0x4e'),_0x23f9('0x4f')]),{'where':{'context':_0x5c01dc[_0x23f9('0x50')],'exten':_0x5c01dc[_0x23f9('0x4a')]},'individualHooks':!![]})[_0x23f9('0x12')](function(_0x3ab2b0){return _0x3ab2b0;});}return null;})[_0x23f9('0x12')](respondWithStatusCode(_0x2fb6ad,null))['catch'](handleError(_0x2fb6ad,null));};exports[_0x23f9('0x51')]=function(_0x26d62c,_0xb4d9f2){var _0x4c3150=_0x26d62c[_0x23f9('0x3e')]['id'];var _0x8a94db=_0x26d62c[_0x23f9('0x3f')];var _0x1dfb63=0xc8;var _0x232db7=null;return db[_0x23f9('0x52')]['transaction']({'isolationLevel':db[_0x23f9('0x52')][_0x23f9('0x53')][_0x23f9('0x54')][_0x23f9('0x55')]},function(_0x33f550){return db[_0x23f9('0x38')]['findOne']({'where':{'id':_0x4c3150},'transaction':_0x33f550})[_0x23f9('0x12')](function(_0x54d529){if(_0x54d529){return db[_0x23f9('0x38')][_0x23f9('0x21')]({'where':{'VoiceExtensionId':_0x4c3150},'transaction':_0x33f550})[_0x23f9('0x12')](function(){var _0x4f521e=_[_0x23f9('0x1a')](_0x8a94db,function(_0x3cc898){_0x3cc898['VoiceExtensionId']=_0x4c3150;_0x3cc898[_0x23f9('0x56')]=!![];return _0x3cc898;});return _0x54d529[_0x23f9('0x57')](_0x4f521e);})[_0x23f9('0x12')](function(_0x15a161){return db[_0x23f9('0x38')][_0x23f9('0x58')](_0x15a161,{'transaction':_0x33f550});});}else{_0x1dfb63=0x194;_0x232db7=[];}});})[_0x23f9('0x12')](function(){if(_0x1dfb63!==0x194){return db[_0x23f9('0x38')][_0x23f9('0x59')]({'where':{'isApp':!![],'VoiceExtensionId':_0x4c3150},'order':_0x23f9('0x5a')})[_0x23f9('0x12')](function(_0x598f54){_0x232db7=_0x598f54;});}})[_0x23f9('0x3c')](function(_0x543bca){_0x1dfb63=0x1f4;logger[_0x23f9('0x22')](_0x543bca[_0x23f9('0x23')]);if(_0x543bca[_0x23f9('0x1f')]){delete _0x543bca[_0x23f9('0x1f')];}_0x232db7=_0x543bca;})['finally'](function(){if(_0x232db7===null){_0xb4d9f2[_0x23f9('0x9')](_0x1dfb63);}else{if(_0x1dfb63===0x1f4){_0xb4d9f2[_0x23f9('0xa')](_0x1dfb63)[_0x23f9('0x24')](_0x232db7);}else{_0xb4d9f2[_0x23f9('0xa')](_0x1dfb63)[_0x23f9('0x11')](_0x232db7);}}});};