Built motion from commit 14588770.|2.5.38
[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 _0x0320=['rows','catch','params','rawAttributes','attributes','includeAll','options','find','create','body','outbound','startsWith','exten','concat','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','description','cutdigits','mandatoryDisposition','context','addApplications','sequelize','transaction','Transaction','ISOLATION_LEVELS','findOne','VoiceExtensionId','isApp','createRouting','bulkCreate','findAndCountAll','cast(priority\x20as\x20unsigned)','stack','ioredis','../../components/parsers/qs','../../config/logger','../../config/environment','../../mysqldb','redis','defaults','localhost','socket.io-emitter','./voiceExtension.socket','register','sendStatus','status','end','offset','undefined','count','limit','set','Content-Range','json','destroy','then','get','InboundRoutes','inbound','OutboundRoutes','InternalRoutes','internal','ignore','map','value','includes','type','name','UserProfileResource','error','send','index','VoiceExtension','fieldName','key','model','query','keys','filters','intersection','fields','length','order','sort','where','pick','filter','merge','VIRTUAL','include'];(function(_0x1b87d1,_0x165246){var _0x25a7e1=function(_0x5bdf4e){while(--_0x5bdf4e){_0x1b87d1['push'](_0x1b87d1['shift']());}};_0x25a7e1(++_0x165246);}(_0x0320,0x1a2));var _0x0032=function(_0x2d7071,_0x156deb){_0x2d7071=_0x2d7071-0x0;var _0x56c3e7=_0x0320[_0x2d7071];return _0x56c3e7;};'use strict';var _=require('lodash');var Redis=require(_0x0032('0x0'));var qs=require(_0x0032('0x1'));var logger=require(_0x0032('0x2'))('api');var config=require(_0x0032('0x3'));var db=require(_0x0032('0x4'))['db'];config[_0x0032('0x5')]=_[_0x0032('0x6')](config[_0x0032('0x5')],{'host':_0x0032('0x7'),'port':0x18eb});var socket=require(_0x0032('0x8'))(new Redis(config['redis']));require(_0x0032('0x9'))[_0x0032('0xa')](socket);function respondWithStatusCode(_0x2fdd0f,_0x1320ee){_0x1320ee=_0x1320ee||0xcc;return function(_0x204f0c){if(_0x204f0c){return _0x2fdd0f[_0x0032('0xb')](_0x1320ee);}return _0x2fdd0f[_0x0032('0xc')](_0x1320ee)[_0x0032('0xd')]();};}function respondWithResult(_0xc911ed,_0x3f6eb8){_0x3f6eb8=_0x3f6eb8||0xc8;return function(_0x3b56f0){if(_0x3b56f0){return _0xc911ed['status'](_0x3f6eb8)['json'](_0x3b56f0);}};}function respondWithFilteredResult(_0x725e41,_0xb1c658){return function(_0x2db703){if(_0x2db703){var _0x3f20f6=typeof _0xb1c658[_0x0032('0xe')]==='undefined'&&typeof _0xb1c658['limit']===_0x0032('0xf');var _0x15994f=_0x2db703[_0x0032('0x10')];var _0x2300d1=_0x3f20f6?0x0:_0xb1c658[_0x0032('0xe')];var _0x384c81=_0x3f20f6?_0x2db703[_0x0032('0x10')]:_0xb1c658[_0x0032('0xe')]+_0xb1c658[_0x0032('0x11')];var _0x16d350;if(_0x384c81>=_0x15994f){_0x384c81=_0x15994f;_0x16d350=0xc8;}else{_0x16d350=0xce;}_0x725e41['status'](_0x16d350);return _0x725e41[_0x0032('0x12')](_0x0032('0x13'),_0x2300d1+'-'+_0x384c81+'/'+_0x15994f)[_0x0032('0x14')](_0x2db703);}return null;};}function removeEntity(_0x180e30){return function(_0x1683c8){if(_0x1683c8){return _0x1683c8[_0x0032('0x15')]()[_0x0032('0x16')](function(){var _0x2edf7b=_0x1683c8[_0x0032('0x17')]({'plain':!![]});var _0x145049=[{'name':_0x0032('0x18'),'value':_0x0032('0x19'),'ignore':![]},{'name':_0x0032('0x1a'),'value':'outbound','ignore':![]},{'name':_0x0032('0x1b'),'value':_0x0032('0x1c'),'ignore':![]}];var _0x13b6cd=_(_0x145049)['filter'](_0x0032('0x1d'))[_0x0032('0x1e')](_0x0032('0x1f'))[_0x0032('0x1f')]();if(_[_0x0032('0x20')](_0x13b6cd,_0x2edf7b['type'])){return;}var _0x5a78db=_['find'](_0x145049,[_0x0032('0x1f'),_0x2edf7b[_0x0032('0x21')]])[_0x0032('0x22')];return db[_0x0032('0x23')]['destroy']({'where':{'type':_0x5a78db,'resourceId':_0x2edf7b['id']}})[_0x0032('0x16')](function(){return _0x1683c8;});})[_0x0032('0x16')](function(){_0x180e30[_0x0032('0xc')](0xcc)[_0x0032('0xd')]();});}};}function handleEntityNotFound(_0x1e960f){return function(_0x366cf){if(!_0x366cf){_0x1e960f[_0x0032('0xb')](0x194);}return _0x366cf;};}function handleError(_0x1ab0e2,_0x4d9565){_0x4d9565=_0x4d9565||0x1f4;return function(_0x3ff110){logger[_0x0032('0x24')](_0x3ff110['stack']);if(_0x3ff110[_0x0032('0x22')]){delete _0x3ff110[_0x0032('0x22')];}_0x1ab0e2[_0x0032('0xc')](_0x4d9565)[_0x0032('0x25')](_0x3ff110);};}exports[_0x0032('0x26')]=function(_0x27f83d,_0x2b44a2){var _0x271e32={},_0x1247c1={},_0xabdd64={'count':0x0,'rows':[]};var _0x164774=_[_0x0032('0x1e')](db[_0x0032('0x27')]['rawAttributes'],function(_0x5bff4c){return{'name':_0x5bff4c[_0x0032('0x28')],'type':_0x5bff4c[_0x0032('0x21')][_0x0032('0x29')]};});_0x1247c1[_0x0032('0x2a')]=_[_0x0032('0x1e')](_0x164774,'name');_0x1247c1[_0x0032('0x2b')]=_[_0x0032('0x2c')](_0x27f83d[_0x0032('0x2b')]);_0x1247c1[_0x0032('0x2d')]=_[_0x0032('0x2e')](_0x1247c1['model'],_0x1247c1[_0x0032('0x2b')]);_0x271e32['attributes']=_[_0x0032('0x2e')](_0x1247c1['model'],qs[_0x0032('0x2f')](_0x27f83d[_0x0032('0x2b')][_0x0032('0x2f')]));_0x271e32['attributes']=_0x271e32['attributes'][_0x0032('0x30')]?_0x271e32['attributes']:_0x1247c1[_0x0032('0x2a')];if(!_0x27f83d['query']['hasOwnProperty']('nolimit')){_0x271e32[_0x0032('0x11')]=qs[_0x0032('0x11')](_0x27f83d[_0x0032('0x2b')][_0x0032('0x11')]);_0x271e32['offset']=qs[_0x0032('0xe')](_0x27f83d['query'][_0x0032('0xe')]);}_0x271e32[_0x0032('0x31')]=qs[_0x0032('0x32')](_0x27f83d[_0x0032('0x2b')]['sort']);_0x271e32[_0x0032('0x33')]=qs['filters'](_[_0x0032('0x34')](_0x27f83d[_0x0032('0x2b')],_0x1247c1['filters']),_0x164774);if(_0x27f83d[_0x0032('0x2b')][_0x0032('0x35')]){_0x271e32[_0x0032('0x33')]=_[_0x0032('0x36')](_0x271e32[_0x0032('0x33')],{'$or':_['map'](_0x164774,function(_0x21efb5){if(_0x21efb5[_0x0032('0x21')]!==_0x0032('0x37')){var _0x5d83c9={};_0x5d83c9[_0x21efb5[_0x0032('0x22')]]={'$like':'%'+_0x27f83d[_0x0032('0x2b')][_0x0032('0x35')]+'%'};return _0x5d83c9;}})});}_0x271e32=_[_0x0032('0x36')]({},_0x271e32,_0x27f83d['options']);var _0x59a16d={'where':_0x271e32[_0x0032('0x33')]};return db[_0x0032('0x27')]['count'](_0x59a16d)['then'](function(_0x53a9df){_0xabdd64['count']=_0x53a9df;if(_0x27f83d[_0x0032('0x2b')]['includeAll']){_0x271e32[_0x0032('0x38')]=[{'all':!![]}];}return db[_0x0032('0x27')]['findAll'](_0x271e32);})['then'](function(_0x3412cc){_0xabdd64[_0x0032('0x39')]=_0x3412cc;return _0xabdd64;})['then'](respondWithFilteredResult(_0x2b44a2,_0x271e32))[_0x0032('0x3a')](handleError(_0x2b44a2,null));};exports['show']=function(_0x44c155,_0x8ba8be){var _0x13636f={'raw':![],'where':{'id':_0x44c155[_0x0032('0x3b')]['id']}},_0x2fd89c={};_0x2fd89c[_0x0032('0x2a')]=_[_0x0032('0x2c')](db[_0x0032('0x27')][_0x0032('0x3c')]);_0x2fd89c['query']=_['keys'](_0x44c155[_0x0032('0x2b')]);_0x2fd89c[_0x0032('0x2d')]=_['intersection'](_0x2fd89c[_0x0032('0x2a')],_0x2fd89c[_0x0032('0x2b')]);_0x13636f['attributes']=_[_0x0032('0x2e')](_0x2fd89c[_0x0032('0x2a')],qs[_0x0032('0x2f')](_0x44c155[_0x0032('0x2b')][_0x0032('0x2f')]));_0x13636f[_0x0032('0x3d')]=_0x13636f[_0x0032('0x3d')][_0x0032('0x30')]?_0x13636f['attributes']:_0x2fd89c['model'];if(_0x44c155['query'][_0x0032('0x3e')]){_0x13636f[_0x0032('0x38')]=[{'all':!![]}];}_0x13636f=_['merge']({},_0x13636f,_0x44c155[_0x0032('0x3f')]);return db[_0x0032('0x27')][_0x0032('0x40')](_0x13636f)['then'](handleEntityNotFound(_0x8ba8be,null))[_0x0032('0x16')](respondWithResult(_0x8ba8be,null))[_0x0032('0x3a')](handleError(_0x8ba8be,null));};exports[_0x0032('0x15')]=function(_0x57a68f,_0x11821f){return db[_0x0032('0x27')][_0x0032('0x40')]({'where':{'id':_0x57a68f[_0x0032('0x3b')]['id']}})[_0x0032('0x16')](handleEntityNotFound(_0x11821f,null))[_0x0032('0x16')](removeEntity(_0x11821f,null))[_0x0032('0x3a')](handleError(_0x11821f,null));};exports[_0x0032('0x41')]=function(_0x21c9b7,_0x599f5c){if(_0x21c9b7[_0x0032('0x42')][_0x0032('0x21')]===_0x0032('0x43')&&!_[_0x0032('0x44')](_0x21c9b7[_0x0032('0x42')][_0x0032('0x45')],'_')){_0x21c9b7[_0x0032('0x42')][_0x0032('0x45')]='_'[_0x0032('0x46')](_0x21c9b7[_0x0032('0x42')][_0x0032('0x45')]);}return db['VoiceExtension'][_0x0032('0x41')](_0x21c9b7[_0x0032('0x42')],{'raw':![]})[_0x0032('0x16')](function(_0x74e526){var _0x1708ed=_0x21c9b7[_0x0032('0x47')][_0x0032('0x17')]({'plain':!![]});if(!_0x1708ed)throw new Error(_0x0032('0x48'));if(_0x1708ed[_0x0032('0x49')]===_0x0032('0x47')){var _0x19f884=_0x74e526[_0x0032('0x17')]({'plain':!![]});var _0x4e6f11=[{'name':_0x0032('0x18'),'value':_0x0032('0x19')},{'name':_0x0032('0x1a'),'value':_0x0032('0x43')},{'name':_0x0032('0x1b'),'value':_0x0032('0x1c')}];var _0x5e3ba9=_[_0x0032('0x40')](_0x4e6f11,[_0x0032('0x1f'),_0x19f884['type']])[_0x0032('0x22')];return db[_0x0032('0x4a')][_0x0032('0x40')]({'where':{'name':_0x5e3ba9,'userProfileId':_0x1708ed['userProfileId']},'raw':!![]})[_0x0032('0x16')](function(_0x3d1bdc){if(_0x3d1bdc&&_0x3d1bdc[_0x0032('0x4b')]===0x0){return db['UserProfileResource'][_0x0032('0x41')]({'name':_0x19f884[_0x0032('0x22')],'resourceId':_0x19f884['id'],'type':_0x3d1bdc['name'],'sectionId':_0x3d1bdc['id']},{})['then'](function(){return _0x74e526;});}else{return _0x74e526;}})[_0x0032('0x3a')](function(_0x4f0828){logger['error'](_0x0032('0x4c'),_0x4f0828);throw _0x4f0828;});}return _0x74e526;})[_0x0032('0x16')](respondWithResult(_0x599f5c,0xc9))[_0x0032('0x3a')](handleError(_0x599f5c,null));};exports[_0x0032('0x4d')]=function(_0x1a4fdd,_0xcb24bd){if(_0x1a4fdd[_0x0032('0x42')]['id']){delete _0x1a4fdd[_0x0032('0x42')]['id'];}return db[_0x0032('0x27')]['find']({'where':{'id':_0x1a4fdd[_0x0032('0x3b')]['id']}})[_0x0032('0x16')](handleEntityNotFound(_0xcb24bd,null))[_0x0032('0x16')](function(_0x1eeca4){if(_0x1eeca4){return db[_0x0032('0x27')][_0x0032('0x4d')](_[_0x0032('0x34')](_0x1a4fdd[_0x0032('0x42')],[_0x0032('0x45'),'context',_0x0032('0x4e'),'recordingFormat',_0x0032('0x4f'),_0x0032('0x50'),'alias']),{'where':{'context':_0x1eeca4[_0x0032('0x51')],'exten':_0x1eeca4['exten']},'individualHooks':!![]})[_0x0032('0x16')](function(_0x339a2b){return _0x339a2b;});}return null;})['then'](respondWithStatusCode(_0xcb24bd,null))[_0x0032('0x3a')](handleError(_0xcb24bd,null));};exports[_0x0032('0x52')]=function(_0x543282,_0x46b00d){var _0x52f1c4=_0x543282[_0x0032('0x3b')]['id'];var _0x5e1f29=_0x543282[_0x0032('0x42')];var _0x3ad309=0xc8;var _0x429a32=null;return db[_0x0032('0x53')][_0x0032('0x54')]({'isolationLevel':db[_0x0032('0x53')][_0x0032('0x55')][_0x0032('0x56')]['READ_COMMITTED']},function(_0x3a499d){return db[_0x0032('0x27')][_0x0032('0x57')]({'where':{'id':_0x52f1c4},'transaction':_0x3a499d})[_0x0032('0x16')](function(_0x1145aa){if(_0x1145aa){return db[_0x0032('0x27')][_0x0032('0x15')]({'where':{'VoiceExtensionId':_0x52f1c4},'transaction':_0x3a499d})[_0x0032('0x16')](function(){var _0x196ef9=_[_0x0032('0x1e')](_0x5e1f29,function(_0x506432){_0x506432[_0x0032('0x58')]=_0x52f1c4;_0x506432[_0x0032('0x59')]=!![];return _0x506432;});return _0x1145aa[_0x0032('0x5a')](_0x196ef9);})[_0x0032('0x16')](function(_0x10389d){return db['VoiceExtension'][_0x0032('0x5b')](_0x10389d,{'transaction':_0x3a499d});});}else{_0x3ad309=0x194;_0x429a32=[];}});})[_0x0032('0x16')](function(){if(_0x3ad309!==0x194){return db[_0x0032('0x27')][_0x0032('0x5c')]({'where':{'isApp':!![],'VoiceExtensionId':_0x52f1c4},'order':_0x0032('0x5d')})[_0x0032('0x16')](function(_0x6c6ad4){_0x429a32=_0x6c6ad4;});}})[_0x0032('0x3a')](function(_0x420c48){_0x3ad309=0x1f4;logger[_0x0032('0x24')](_0x420c48[_0x0032('0x5e')]);if(_0x420c48[_0x0032('0x22')]){delete _0x420c48[_0x0032('0x22')];}_0x429a32=_0x420c48;})['finally'](function(){if(_0x429a32===null){_0x46b00d[_0x0032('0xb')](_0x3ad309);}else{if(_0x3ad309===0x1f4){_0x46b00d[_0x0032('0xc')](_0x3ad309)[_0x0032('0x25')](_0x429a32);}else{_0x46b00d[_0x0032('0xc')](_0x3ad309)['json'](_0x429a32);}}});};