Built motion from commit 85328c08.|2.5.50
[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 _0x614d=['stack','name','send','VoiceExtension','rawAttributes','fieldName','key','model','query','keys','filters','intersection','attributes','fields','length','nolimit','order','sort','where','pick','merge','VIRTUAL','options','includeAll','include','findAll','rows','show','params','find','catch','create','body','startsWith','exten','user','get','InboundRoutes','internal','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','context','description','recordingFormat','mandatoryDisposition','alias','addApplications','sequelize','transaction','READ_COMMITTED','findOne','VoiceExtensionId','isApp','createRouting','bulkCreate','findAndCountAll','cast(priority\x20as\x20unsigned)','finally','../../components/parsers/qs','../../config/logger','api','redis','./voiceExtension.socket','register','status','end','json','offset','limit','undefined','count','set','Content-Range','destroy','then','inbound','OutboundRoutes','outbound','InternalRoutes','filter','ignore','map','value','includes','type','UserProfileResource','error'];(function(_0x4009fa,_0x3a54a7){var _0xcfb041=function(_0xe7e7a7){while(--_0xe7e7a7){_0x4009fa['push'](_0x4009fa['shift']());}};_0xcfb041(++_0x3a54a7);}(_0x614d,0x95));var _0xd614=function(_0x53c87f,_0x5a8c39){_0x53c87f=_0x53c87f-0x0;var _0x6e934a=_0x614d[_0x53c87f];return _0x6e934a;};'use strict';var _=require('lodash');var Redis=require('ioredis');var qs=require(_0xd614('0x0'));var logger=require(_0xd614('0x1'))(_0xd614('0x2'));var config=require('../../config/environment');var db=require('../../mysqldb')['db'];config[_0xd614('0x3')]=_['defaults'](config[_0xd614('0x3')],{'host':'localhost','port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config['redis']));require(_0xd614('0x4'))[_0xd614('0x5')](socket);function respondWithStatusCode(_0x50f0d1,_0x3d4d52){_0x3d4d52=_0x3d4d52||0xcc;return function(_0x3a7c18){if(_0x3a7c18){return _0x50f0d1['sendStatus'](_0x3d4d52);}return _0x50f0d1[_0xd614('0x6')](_0x3d4d52)[_0xd614('0x7')]();};}function respondWithResult(_0x59412e,_0x988ee2){_0x988ee2=_0x988ee2||0xc8;return function(_0x20894c){if(_0x20894c){return _0x59412e[_0xd614('0x6')](_0x988ee2)[_0xd614('0x8')](_0x20894c);}};}function respondWithFilteredResult(_0x3f7d49,_0x598db8){return function(_0x23a9c5){if(_0x23a9c5){var _0x469da5=typeof _0x598db8[_0xd614('0x9')]==='undefined'&&typeof _0x598db8[_0xd614('0xa')]===_0xd614('0xb');var _0x455e98=_0x23a9c5['count'];var _0x120185=_0x469da5?0x0:_0x598db8[_0xd614('0x9')];var _0x4a4ef0=_0x469da5?_0x23a9c5[_0xd614('0xc')]:_0x598db8[_0xd614('0x9')]+_0x598db8[_0xd614('0xa')];var _0x193534;if(_0x4a4ef0>=_0x455e98){_0x4a4ef0=_0x455e98;_0x193534=0xc8;}else{_0x193534=0xce;}_0x3f7d49[_0xd614('0x6')](_0x193534);return _0x3f7d49[_0xd614('0xd')](_0xd614('0xe'),_0x120185+'-'+_0x4a4ef0+'/'+_0x455e98)[_0xd614('0x8')](_0x23a9c5);}return null;};}function removeEntity(_0x474506){return function(_0x16ab45){if(_0x16ab45){return _0x16ab45[_0xd614('0xf')]()[_0xd614('0x10')](function(){var _0x121429=_0x16ab45['get']({'plain':!![]});var _0x2db0a6=[{'name':'InboundRoutes','value':_0xd614('0x11'),'ignore':![]},{'name':_0xd614('0x12'),'value':_0xd614('0x13'),'ignore':![]},{'name':_0xd614('0x14'),'value':'internal','ignore':![]}];var _0x574cea=_(_0x2db0a6)[_0xd614('0x15')](_0xd614('0x16'))[_0xd614('0x17')](_0xd614('0x18'))['value']();if(_[_0xd614('0x19')](_0x574cea,_0x121429[_0xd614('0x1a')])){return;}var _0x435bff=_['find'](_0x2db0a6,[_0xd614('0x18'),_0x121429[_0xd614('0x1a')]])['name'];return db[_0xd614('0x1b')][_0xd614('0xf')]({'where':{'type':_0x435bff,'resourceId':_0x121429['id']}})[_0xd614('0x10')](function(){return _0x16ab45;});})[_0xd614('0x10')](function(){_0x474506['status'](0xcc)[_0xd614('0x7')]();});}};}function handleEntityNotFound(_0x401296){return function(_0x38cb0c){if(!_0x38cb0c){_0x401296['sendStatus'](0x194);}return _0x38cb0c;};}function handleError(_0x545e8f,_0x549e81){_0x549e81=_0x549e81||0x1f4;return function(_0x488c91){logger[_0xd614('0x1c')](_0x488c91[_0xd614('0x1d')]);if(_0x488c91[_0xd614('0x1e')]){delete _0x488c91[_0xd614('0x1e')];}_0x545e8f[_0xd614('0x6')](_0x549e81)[_0xd614('0x1f')](_0x488c91);};}exports['index']=function(_0x43df89,_0xa0b047){var _0x4dda94={},_0x3f4b75={},_0x5a0929={'count':0x0,'rows':[]};var _0x589313=_[_0xd614('0x17')](db[_0xd614('0x20')][_0xd614('0x21')],function(_0x37952d){return{'name':_0x37952d[_0xd614('0x22')],'type':_0x37952d[_0xd614('0x1a')][_0xd614('0x23')]};});_0x3f4b75[_0xd614('0x24')]=_['map'](_0x589313,_0xd614('0x1e'));_0x3f4b75[_0xd614('0x25')]=_[_0xd614('0x26')](_0x43df89[_0xd614('0x25')]);_0x3f4b75[_0xd614('0x27')]=_[_0xd614('0x28')](_0x3f4b75[_0xd614('0x24')],_0x3f4b75[_0xd614('0x25')]);_0x4dda94[_0xd614('0x29')]=_['intersection'](_0x3f4b75[_0xd614('0x24')],qs[_0xd614('0x2a')](_0x43df89['query'][_0xd614('0x2a')]));_0x4dda94[_0xd614('0x29')]=_0x4dda94[_0xd614('0x29')][_0xd614('0x2b')]?_0x4dda94['attributes']:_0x3f4b75['model'];if(!_0x43df89[_0xd614('0x25')]['hasOwnProperty'](_0xd614('0x2c'))){_0x4dda94['limit']=qs[_0xd614('0xa')](_0x43df89[_0xd614('0x25')][_0xd614('0xa')]);_0x4dda94[_0xd614('0x9')]=qs[_0xd614('0x9')](_0x43df89[_0xd614('0x25')][_0xd614('0x9')]);}_0x4dda94[_0xd614('0x2d')]=qs[_0xd614('0x2e')](_0x43df89[_0xd614('0x25')][_0xd614('0x2e')]);_0x4dda94[_0xd614('0x2f')]=qs[_0xd614('0x27')](_[_0xd614('0x30')](_0x43df89[_0xd614('0x25')],_0x3f4b75[_0xd614('0x27')]),_0x589313);if(_0x43df89[_0xd614('0x25')][_0xd614('0x15')]){_0x4dda94['where']=_[_0xd614('0x31')](_0x4dda94[_0xd614('0x2f')],{'$or':_[_0xd614('0x17')](_0x589313,function(_0x5bf6da){if(_0x5bf6da[_0xd614('0x1a')]!==_0xd614('0x32')){var _0x391d20={};_0x391d20[_0x5bf6da[_0xd614('0x1e')]]={'$like':'%'+_0x43df89[_0xd614('0x25')][_0xd614('0x15')]+'%'};return _0x391d20;}})});}_0x4dda94=_[_0xd614('0x31')]({},_0x4dda94,_0x43df89[_0xd614('0x33')]);var _0x15fa6f={'where':_0x4dda94[_0xd614('0x2f')]};return db[_0xd614('0x20')][_0xd614('0xc')](_0x15fa6f)[_0xd614('0x10')](function(_0x232b2f){_0x5a0929['count']=_0x232b2f;if(_0x43df89[_0xd614('0x25')][_0xd614('0x34')]){_0x4dda94[_0xd614('0x35')]=[{'all':!![]}];}return db['VoiceExtension'][_0xd614('0x36')](_0x4dda94);})[_0xd614('0x10')](function(_0x4a66b2){_0x5a0929[_0xd614('0x37')]=_0x4a66b2;return _0x5a0929;})[_0xd614('0x10')](respondWithFilteredResult(_0xa0b047,_0x4dda94))['catch'](handleError(_0xa0b047,null));};exports[_0xd614('0x38')]=function(_0x59239d,_0x5e4d45){var _0x193217={'raw':![],'where':{'id':_0x59239d[_0xd614('0x39')]['id']}},_0x4fa5c0={};_0x4fa5c0[_0xd614('0x24')]=_['keys'](db[_0xd614('0x20')][_0xd614('0x21')]);_0x4fa5c0[_0xd614('0x25')]=_['keys'](_0x59239d[_0xd614('0x25')]);_0x4fa5c0[_0xd614('0x27')]=_[_0xd614('0x28')](_0x4fa5c0[_0xd614('0x24')],_0x4fa5c0[_0xd614('0x25')]);_0x193217[_0xd614('0x29')]=_['intersection'](_0x4fa5c0[_0xd614('0x24')],qs[_0xd614('0x2a')](_0x59239d[_0xd614('0x25')][_0xd614('0x2a')]));_0x193217['attributes']=_0x193217[_0xd614('0x29')]['length']?_0x193217[_0xd614('0x29')]:_0x4fa5c0[_0xd614('0x24')];if(_0x59239d[_0xd614('0x25')][_0xd614('0x34')]){_0x193217[_0xd614('0x35')]=[{'all':!![]}];}_0x193217=_['merge']({},_0x193217,_0x59239d[_0xd614('0x33')]);return db[_0xd614('0x20')][_0xd614('0x3a')](_0x193217)[_0xd614('0x10')](handleEntityNotFound(_0x5e4d45,null))['then'](respondWithResult(_0x5e4d45,null))[_0xd614('0x3b')](handleError(_0x5e4d45,null));};exports[_0xd614('0xf')]=function(_0x500de6,_0x439a12){return db['VoiceExtension'][_0xd614('0x3a')]({'where':{'id':_0x500de6[_0xd614('0x39')]['id']}})[_0xd614('0x10')](handleEntityNotFound(_0x439a12,null))[_0xd614('0x10')](removeEntity(_0x439a12,null))[_0xd614('0x3b')](handleError(_0x439a12,null));};exports[_0xd614('0x3c')]=function(_0x23345c,_0x8a168e){if(_0x23345c[_0xd614('0x3d')][_0xd614('0x1a')]===_0xd614('0x13')&&!_[_0xd614('0x3e')](_0x23345c[_0xd614('0x3d')][_0xd614('0x3f')],'_')){_0x23345c[_0xd614('0x3d')][_0xd614('0x3f')]='_'['concat'](_0x23345c[_0xd614('0x3d')]['exten']);}return db[_0xd614('0x20')][_0xd614('0x3c')](_0x23345c[_0xd614('0x3d')],{'raw':![]})[_0xd614('0x10')](function(_0x198b1b){var _0x3b6326=_0x23345c[_0xd614('0x40')][_0xd614('0x41')]({'plain':!![]});if(!_0x3b6326)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x3b6326['role']===_0xd614('0x40')){var _0x127861=_0x198b1b[_0xd614('0x41')]({'plain':!![]});var _0x19a70e=[{'name':_0xd614('0x42'),'value':_0xd614('0x11')},{'name':'OutboundRoutes','value':_0xd614('0x13')},{'name':'InternalRoutes','value':_0xd614('0x43')}];var _0x7853d6=_['find'](_0x19a70e,[_0xd614('0x18'),_0x127861[_0xd614('0x1a')]])[_0xd614('0x1e')];return db['UserProfileSection'][_0xd614('0x3a')]({'where':{'name':_0x7853d6,'userProfileId':_0x3b6326[_0xd614('0x44')]},'raw':!![]})['then'](function(_0x4359ff){if(_0x4359ff&&_0x4359ff[_0xd614('0x45')]===0x0){return db[_0xd614('0x1b')][_0xd614('0x3c')]({'name':_0x127861[_0xd614('0x1e')],'resourceId':_0x127861['id'],'type':_0x4359ff[_0xd614('0x1e')],'sectionId':_0x4359ff['id']},{})[_0xd614('0x10')](function(){return _0x198b1b;});}else{return _0x198b1b;}})['catch'](function(_0x31a591){logger['error'](_0xd614('0x46'),_0x31a591);throw _0x31a591;});}return _0x198b1b;})['then'](respondWithResult(_0x8a168e,0xc9))[_0xd614('0x3b')](handleError(_0x8a168e,null));};exports[_0xd614('0x47')]=function(_0x533ac1,_0x14148f){if(_0x533ac1[_0xd614('0x3d')]['id']){delete _0x533ac1[_0xd614('0x3d')]['id'];}return db[_0xd614('0x20')][_0xd614('0x3a')]({'where':{'id':_0x533ac1[_0xd614('0x39')]['id']}})[_0xd614('0x10')](handleEntityNotFound(_0x14148f,null))[_0xd614('0x10')](function(_0xa93581){if(_0xa93581){return db['VoiceExtension'][_0xd614('0x47')](_[_0xd614('0x30')](_0x533ac1[_0xd614('0x3d')],[_0xd614('0x3f'),_0xd614('0x48'),_0xd614('0x49'),_0xd614('0x4a'),'cutdigits',_0xd614('0x4b'),_0xd614('0x4c')]),{'where':{'context':_0xa93581[_0xd614('0x48')],'exten':_0xa93581['exten']},'individualHooks':!![]})[_0xd614('0x10')](function(_0x4c57c5){return _0x4c57c5;});}return null;})[_0xd614('0x10')](respondWithStatusCode(_0x14148f,null))[_0xd614('0x3b')](handleError(_0x14148f,null));};exports[_0xd614('0x4d')]=function(_0x1bce8b,_0x52b2b1){var _0x5c307c=_0x1bce8b[_0xd614('0x39')]['id'];var _0x27dd1d=_0x1bce8b[_0xd614('0x3d')];var _0x52c610=0xc8;var _0x3560d6=null;return db[_0xd614('0x4e')][_0xd614('0x4f')]({'isolationLevel':db[_0xd614('0x4e')]['Transaction']['ISOLATION_LEVELS'][_0xd614('0x50')]},function(_0x310a61){return db['VoiceExtension'][_0xd614('0x51')]({'where':{'id':_0x5c307c},'transaction':_0x310a61})[_0xd614('0x10')](function(_0x3d282d){if(_0x3d282d){return db[_0xd614('0x20')][_0xd614('0xf')]({'where':{'VoiceExtensionId':_0x5c307c},'transaction':_0x310a61})['then'](function(){var _0x3e6398=_[_0xd614('0x17')](_0x27dd1d,function(_0x396c26){_0x396c26[_0xd614('0x52')]=_0x5c307c;_0x396c26[_0xd614('0x53')]=!![];return _0x396c26;});return _0x3d282d[_0xd614('0x54')](_0x3e6398);})[_0xd614('0x10')](function(_0x2aa34a){return db[_0xd614('0x20')][_0xd614('0x55')](_0x2aa34a,{'transaction':_0x310a61});});}else{_0x52c610=0x194;_0x3560d6=[];}});})[_0xd614('0x10')](function(){if(_0x52c610!==0x194){return db[_0xd614('0x20')][_0xd614('0x56')]({'where':{'isApp':!![],'VoiceExtensionId':_0x5c307c},'order':_0xd614('0x57')})[_0xd614('0x10')](function(_0x14a471){_0x3560d6=_0x14a471;});}})['catch'](function(_0x16d8c0){_0x52c610=0x1f4;logger[_0xd614('0x1c')](_0x16d8c0[_0xd614('0x1d')]);if(_0x16d8c0['name']){delete _0x16d8c0[_0xd614('0x1e')];}_0x3560d6=_0x16d8c0;})[_0xd614('0x58')](function(){if(_0x3560d6===null){_0x52b2b1['sendStatus'](_0x52c610);}else{if(_0x52c610===0x1f4){_0x52b2b1[_0xd614('0x6')](_0x52c610)[_0xd614('0x1f')](_0x3560d6);}else{_0x52b2b1[_0xd614('0x6')](_0x52c610)[_0xd614('0x8')](_0x3560d6);}}});};