781c33d3df1d6d66de9ba6bb1860910297570901
[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 _0x8812=['VIRTUAL','includeAll','include','findAll','rows','catch','show','params','length','options','create','body','startsWith','exten','concat','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','get','inbound','UserProfileSection','userProfileId','error','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','context','recordingFormat','cutdigits','mandatoryDisposition','addApplications','sequelize','transaction','Transaction','ISOLATION_LEVELS','READ_COMMITTED','VoiceExtensionId','isApp','bulkCreate','findAndCountAll','cast(priority\x20as\x20unsigned)','lodash','ioredis','../../components/parsers/qs','api','../../config/environment','../../mysqldb','defaults','redis','localhost','socket.io-emitter','register','sendStatus','status','end','json','offset','limit','undefined','count','set','Content-Range','destroy','InboundRoutes','OutboundRoutes','outbound','InternalRoutes','internal','filter','map','value','includes','type','find','name','UserProfileResource','then','stack','send','index','VoiceExtension','fieldName','model','keys','query','filters','intersection','attributes','fields','nolimit','sort','where','pick','merge'];(function(_0x1d24eb,_0x12295b){var _0x1dc576=function(_0x4d5770){while(--_0x4d5770){_0x1d24eb['push'](_0x1d24eb['shift']());}};_0x1dc576(++_0x12295b);}(_0x8812,0x83));var _0x2881=function(_0x1bb61e,_0x3b922){_0x1bb61e=_0x1bb61e-0x0;var _0x200e91=_0x8812[_0x1bb61e];return _0x200e91;};'use strict';var _=require(_0x2881('0x0'));var Redis=require(_0x2881('0x1'));var qs=require(_0x2881('0x2'));var logger=require('../../config/logger')(_0x2881('0x3'));var config=require(_0x2881('0x4'));var db=require(_0x2881('0x5'))['db'];config['redis']=_[_0x2881('0x6')](config[_0x2881('0x7')],{'host':_0x2881('0x8'),'port':0x18eb});var socket=require(_0x2881('0x9'))(new Redis(config[_0x2881('0x7')]));require('./voiceExtension.socket')[_0x2881('0xa')](socket);function respondWithStatusCode(_0x50d8d5,_0x39493f){_0x39493f=_0x39493f||0xcc;return function(_0x2f591e){if(_0x2f591e){return _0x50d8d5[_0x2881('0xb')](_0x39493f);}return _0x50d8d5[_0x2881('0xc')](_0x39493f)[_0x2881('0xd')]();};}function respondWithResult(_0x30b5ac,_0x37cc09){_0x37cc09=_0x37cc09||0xc8;return function(_0x2a4f06){if(_0x2a4f06){return _0x30b5ac['status'](_0x37cc09)[_0x2881('0xe')](_0x2a4f06);}};}function respondWithFilteredResult(_0x5a2ed3,_0x1bc8d3){return function(_0x29c8a2){if(_0x29c8a2){var _0x22ae17=typeof _0x1bc8d3[_0x2881('0xf')]==='undefined'&&typeof _0x1bc8d3[_0x2881('0x10')]===_0x2881('0x11');var _0x7f8bcc=_0x29c8a2[_0x2881('0x12')];var _0x179c02=_0x22ae17?0x0:_0x1bc8d3[_0x2881('0xf')];var _0x5a91bb=_0x22ae17?_0x29c8a2[_0x2881('0x12')]:_0x1bc8d3[_0x2881('0xf')]+_0x1bc8d3[_0x2881('0x10')];var _0x30b28b;if(_0x5a91bb>=_0x7f8bcc){_0x5a91bb=_0x7f8bcc;_0x30b28b=0xc8;}else{_0x30b28b=0xce;}_0x5a2ed3[_0x2881('0xc')](_0x30b28b);return _0x5a2ed3[_0x2881('0x13')](_0x2881('0x14'),_0x179c02+'-'+_0x5a91bb+'/'+_0x7f8bcc)[_0x2881('0xe')](_0x29c8a2);}return null;};}function removeEntity(_0x299801){return function(_0x59590){if(_0x59590){return _0x59590[_0x2881('0x15')]()['then'](function(){var _0x5acbae=_0x59590['get']({'plain':!![]});var _0x32d822=[{'name':_0x2881('0x16'),'value':'inbound','ignore':![]},{'name':_0x2881('0x17'),'value':_0x2881('0x18'),'ignore':![]},{'name':_0x2881('0x19'),'value':_0x2881('0x1a'),'ignore':![]}];var _0x4d593e=_(_0x32d822)[_0x2881('0x1b')]('ignore')[_0x2881('0x1c')](_0x2881('0x1d'))[_0x2881('0x1d')]();if(_[_0x2881('0x1e')](_0x4d593e,_0x5acbae[_0x2881('0x1f')])){return;}var _0xbbb35e=_[_0x2881('0x20')](_0x32d822,['value',_0x5acbae['type']])[_0x2881('0x21')];return db[_0x2881('0x22')][_0x2881('0x15')]({'where':{'type':_0xbbb35e,'resourceId':_0x5acbae['id']}})[_0x2881('0x23')](function(){return _0x59590;});})[_0x2881('0x23')](function(){_0x299801[_0x2881('0xc')](0xcc)[_0x2881('0xd')]();});}};}function handleEntityNotFound(_0x3608ef){return function(_0x53bbbc){if(!_0x53bbbc){_0x3608ef[_0x2881('0xb')](0x194);}return _0x53bbbc;};}function handleError(_0x3843ad,_0x5cc16d){_0x5cc16d=_0x5cc16d||0x1f4;return function(_0x366096){logger['error'](_0x366096[_0x2881('0x24')]);if(_0x366096[_0x2881('0x21')]){delete _0x366096[_0x2881('0x21')];}_0x3843ad[_0x2881('0xc')](_0x5cc16d)[_0x2881('0x25')](_0x366096);};}exports[_0x2881('0x26')]=function(_0x1d5ba7,_0x2de0eb){var _0x2407bc={},_0x20b1b7={},_0x382caa={'count':0x0,'rows':[]};var _0x8b7b94=_[_0x2881('0x1c')](db[_0x2881('0x27')]['rawAttributes'],function(_0x40ea98){return{'name':_0x40ea98[_0x2881('0x28')],'type':_0x40ea98[_0x2881('0x1f')]['key']};});_0x20b1b7[_0x2881('0x29')]=_['map'](_0x8b7b94,'name');_0x20b1b7['query']=_[_0x2881('0x2a')](_0x1d5ba7[_0x2881('0x2b')]);_0x20b1b7[_0x2881('0x2c')]=_[_0x2881('0x2d')](_0x20b1b7[_0x2881('0x29')],_0x20b1b7[_0x2881('0x2b')]);_0x2407bc[_0x2881('0x2e')]=_['intersection'](_0x20b1b7[_0x2881('0x29')],qs[_0x2881('0x2f')](_0x1d5ba7[_0x2881('0x2b')][_0x2881('0x2f')]));_0x2407bc[_0x2881('0x2e')]=_0x2407bc[_0x2881('0x2e')]['length']?_0x2407bc[_0x2881('0x2e')]:_0x20b1b7[_0x2881('0x29')];if(!_0x1d5ba7[_0x2881('0x2b')]['hasOwnProperty'](_0x2881('0x30'))){_0x2407bc['limit']=qs[_0x2881('0x10')](_0x1d5ba7['query'][_0x2881('0x10')]);_0x2407bc['offset']=qs[_0x2881('0xf')](_0x1d5ba7[_0x2881('0x2b')][_0x2881('0xf')]);}_0x2407bc['order']=qs[_0x2881('0x31')](_0x1d5ba7['query'][_0x2881('0x31')]);_0x2407bc[_0x2881('0x32')]=qs[_0x2881('0x2c')](_[_0x2881('0x33')](_0x1d5ba7[_0x2881('0x2b')],_0x20b1b7[_0x2881('0x2c')]),_0x8b7b94);if(_0x1d5ba7[_0x2881('0x2b')]['filter']){_0x2407bc[_0x2881('0x32')]=_[_0x2881('0x34')](_0x2407bc['where'],{'$or':_[_0x2881('0x1c')](_0x8b7b94,function(_0x231c8b){if(_0x231c8b['type']!==_0x2881('0x35')){var _0x456704={};_0x456704[_0x231c8b['name']]={'$like':'%'+_0x1d5ba7['query']['filter']+'%'};return _0x456704;}})});}_0x2407bc=_[_0x2881('0x34')]({},_0x2407bc,_0x1d5ba7['options']);var _0xe76d5d={'where':_0x2407bc[_0x2881('0x32')]};return db[_0x2881('0x27')][_0x2881('0x12')](_0xe76d5d)[_0x2881('0x23')](function(_0x508f90){_0x382caa['count']=_0x508f90;if(_0x1d5ba7['query'][_0x2881('0x36')]){_0x2407bc[_0x2881('0x37')]=[{'all':!![]}];}return db['VoiceExtension'][_0x2881('0x38')](_0x2407bc);})['then'](function(_0x5afa23){_0x382caa[_0x2881('0x39')]=_0x5afa23;return _0x382caa;})[_0x2881('0x23')](respondWithFilteredResult(_0x2de0eb,_0x2407bc))[_0x2881('0x3a')](handleError(_0x2de0eb,null));};exports[_0x2881('0x3b')]=function(_0x235802,_0x1c6a2e){var _0x594b2a={'raw':![],'where':{'id':_0x235802[_0x2881('0x3c')]['id']}},_0x2de8a2={};_0x2de8a2[_0x2881('0x29')]=_['keys'](db['VoiceExtension']['rawAttributes']);_0x2de8a2['query']=_[_0x2881('0x2a')](_0x235802[_0x2881('0x2b')]);_0x2de8a2[_0x2881('0x2c')]=_[_0x2881('0x2d')](_0x2de8a2[_0x2881('0x29')],_0x2de8a2[_0x2881('0x2b')]);_0x594b2a[_0x2881('0x2e')]=_['intersection'](_0x2de8a2[_0x2881('0x29')],qs['fields'](_0x235802['query'][_0x2881('0x2f')]));_0x594b2a['attributes']=_0x594b2a[_0x2881('0x2e')][_0x2881('0x3d')]?_0x594b2a['attributes']:_0x2de8a2[_0x2881('0x29')];if(_0x235802[_0x2881('0x2b')]['includeAll']){_0x594b2a[_0x2881('0x37')]=[{'all':!![]}];}_0x594b2a=_['merge']({},_0x594b2a,_0x235802[_0x2881('0x3e')]);return db[_0x2881('0x27')][_0x2881('0x20')](_0x594b2a)[_0x2881('0x23')](handleEntityNotFound(_0x1c6a2e,null))[_0x2881('0x23')](respondWithResult(_0x1c6a2e,null))[_0x2881('0x3a')](handleError(_0x1c6a2e,null));};exports[_0x2881('0x15')]=function(_0x2c867c,_0x1032b2){return db[_0x2881('0x27')]['find']({'where':{'id':_0x2c867c[_0x2881('0x3c')]['id']}})[_0x2881('0x23')](handleEntityNotFound(_0x1032b2,null))['then'](removeEntity(_0x1032b2,null))[_0x2881('0x3a')](handleError(_0x1032b2,null));};exports[_0x2881('0x3f')]=function(_0x2e8ad1,_0x4cfe3e){if(_0x2e8ad1[_0x2881('0x40')][_0x2881('0x1f')]===_0x2881('0x18')&&!_[_0x2881('0x41')](_0x2e8ad1[_0x2881('0x40')][_0x2881('0x42')],'_')){_0x2e8ad1[_0x2881('0x40')][_0x2881('0x42')]='_'[_0x2881('0x43')](_0x2e8ad1[_0x2881('0x40')][_0x2881('0x42')]);}return db['VoiceExtension'][_0x2881('0x3f')](_0x2e8ad1[_0x2881('0x40')],{'raw':![]})[_0x2881('0x23')](function(_0x58d869){var _0x307939=_0x2e8ad1[_0x2881('0x44')]['get']({'plain':!![]});if(!_0x307939)throw new Error(_0x2881('0x45'));if(_0x307939['role']==='user'){var _0x25a4cd=_0x58d869[_0x2881('0x46')]({'plain':!![]});var _0x37e658=[{'name':_0x2881('0x16'),'value':_0x2881('0x47')},{'name':_0x2881('0x17'),'value':_0x2881('0x18')},{'name':_0x2881('0x19'),'value':'internal'}];var _0x353c13=_[_0x2881('0x20')](_0x37e658,[_0x2881('0x1d'),_0x25a4cd[_0x2881('0x1f')]])['name'];return db[_0x2881('0x48')][_0x2881('0x20')]({'where':{'name':_0x353c13,'userProfileId':_0x307939[_0x2881('0x49')]},'raw':!![]})[_0x2881('0x23')](function(_0x3fc185){if(_0x3fc185&&_0x3fc185['autoAssociation']===0x0){return db[_0x2881('0x22')][_0x2881('0x3f')]({'name':_0x25a4cd['name'],'resourceId':_0x25a4cd['id'],'type':_0x3fc185[_0x2881('0x21')],'sectionId':_0x3fc185['id']},{})[_0x2881('0x23')](function(){return _0x58d869;});}else{return _0x58d869;}})[_0x2881('0x3a')](function(_0x253e0e){logger[_0x2881('0x4a')](_0x2881('0x4b'),_0x253e0e);throw _0x253e0e;});}return _0x58d869;})[_0x2881('0x23')](respondWithResult(_0x4cfe3e,0xc9))[_0x2881('0x3a')](handleError(_0x4cfe3e,null));};exports['update']=function(_0x5c476d,_0x2e63af){if(_0x5c476d['body']['id']){delete _0x5c476d['body']['id'];}return db[_0x2881('0x27')][_0x2881('0x20')]({'where':{'id':_0x5c476d[_0x2881('0x3c')]['id']}})[_0x2881('0x23')](handleEntityNotFound(_0x2e63af,null))[_0x2881('0x23')](function(_0x2f5d46){if(_0x2f5d46){return db[_0x2881('0x27')][_0x2881('0x4c')](_['pick'](_0x5c476d[_0x2881('0x40')],['exten',_0x2881('0x4d'),'description',_0x2881('0x4e'),_0x2881('0x4f'),_0x2881('0x50'),'alias']),{'where':{'context':_0x2f5d46[_0x2881('0x4d')],'exten':_0x2f5d46[_0x2881('0x42')]},'individualHooks':!![]})[_0x2881('0x23')](function(_0x6174a){return _0x6174a;});}return null;})[_0x2881('0x23')](respondWithStatusCode(_0x2e63af,null))['catch'](handleError(_0x2e63af,null));};exports[_0x2881('0x51')]=function(_0x507a6b,_0x3efd06){var _0x1fb323=_0x507a6b[_0x2881('0x3c')]['id'];var _0x4928d8=_0x507a6b[_0x2881('0x40')];var _0x5ddda4=0xc8;var _0x168074=null;return db[_0x2881('0x52')][_0x2881('0x53')]({'isolationLevel':db[_0x2881('0x52')][_0x2881('0x54')][_0x2881('0x55')][_0x2881('0x56')]},function(_0x211313){return db[_0x2881('0x27')]['findOne']({'where':{'id':_0x1fb323},'transaction':_0x211313})[_0x2881('0x23')](function(_0x1fad74){if(_0x1fad74){return db['VoiceExtension'][_0x2881('0x15')]({'where':{'VoiceExtensionId':_0x1fb323},'transaction':_0x211313})['then'](function(){var _0x432a5a=_[_0x2881('0x1c')](_0x4928d8,function(_0x3623bd){_0x3623bd[_0x2881('0x57')]=_0x1fb323;_0x3623bd[_0x2881('0x58')]=!![];return _0x3623bd;});return _0x1fad74['createRouting'](_0x432a5a);})['then'](function(_0x149876){return db[_0x2881('0x27')][_0x2881('0x59')](_0x149876,{'transaction':_0x211313});});}else{_0x5ddda4=0x194;_0x168074=[];}});})[_0x2881('0x23')](function(){if(_0x5ddda4!==0x194){return db[_0x2881('0x27')][_0x2881('0x5a')]({'where':{'isApp':!![],'VoiceExtensionId':_0x1fb323},'order':_0x2881('0x5b')})['then'](function(_0x3eceba){_0x168074=_0x3eceba;});}})['catch'](function(_0x84dd15){_0x5ddda4=0x1f4;logger['error'](_0x84dd15[_0x2881('0x24')]);if(_0x84dd15[_0x2881('0x21')]){delete _0x84dd15['name'];}_0x168074=_0x84dd15;})['finally'](function(){if(_0x168074===null){_0x3efd06[_0x2881('0xb')](_0x5ddda4);}else{if(_0x5ddda4===0x1f4){_0x3efd06[_0x2881('0xc')](_0x5ddda4)['send'](_0x168074);}else{_0x3efd06['status'](_0x5ddda4)[_0x2881('0xe')](_0x168074);}}});};