Built motion from commit c738b9ac.|2.6.25
[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 _0xcd35=['stack','send','map','VoiceExtension','rawAttributes','key','model','query','keys','intersection','fields','attributes','length','hasOwnProperty','order','sort','filters','pick','where','merge','VIRTUAL','options','includeAll','rows','catch','show','params','include','create','body','outbound','startsWith','exten','concat','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','user','inbound','UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','cutdigits','mandatoryDisposition','alias','context','addApplications','sequelize','transaction','Transaction','ISOLATION_LEVELS','READ_COMMITTED','findOne','VoiceExtensionId','isApp','createRouting','bulkCreate','findAndCountAll','cast(priority\x20as\x20unsigned)','finally','lodash','../../config/logger','api','../../mysqldb','redis','defaults','localhost','socket.io-emitter','./voiceExtension.socket','register','sendStatus','status','end','json','offset','limit','undefined','count','set','Content-Range','destroy','then','get','InboundRoutes','OutboundRoutes','InternalRoutes','internal','filter','ignore','value','type','find','name','UserProfileResource','error'];(function(_0x50aa2e,_0xfbd6f0){var _0x5e07f0=function(_0x3ed540){while(--_0x3ed540){_0x50aa2e['push'](_0x50aa2e['shift']());}};_0x5e07f0(++_0xfbd6f0);}(_0xcd35,0xfd));var _0x5cd3=function(_0x5a43a7,_0x521415){_0x5a43a7=_0x5a43a7-0x0;var _0x2e8db1=_0xcd35[_0x5a43a7];return _0x2e8db1;};'use strict';var _=require(_0x5cd3('0x0'));var Redis=require('ioredis');var qs=require('../../components/parsers/qs');var logger=require(_0x5cd3('0x1'))(_0x5cd3('0x2'));var config=require('../../config/environment');var db=require(_0x5cd3('0x3'))['db'];config[_0x5cd3('0x4')]=_[_0x5cd3('0x5')](config[_0x5cd3('0x4')],{'host':_0x5cd3('0x6'),'port':0x18eb});var socket=require(_0x5cd3('0x7'))(new Redis(config[_0x5cd3('0x4')]));require(_0x5cd3('0x8'))[_0x5cd3('0x9')](socket);function respondWithStatusCode(_0xfc246,_0x1a1128){_0x1a1128=_0x1a1128||0xcc;return function(_0x27b4e8){if(_0x27b4e8){return _0xfc246[_0x5cd3('0xa')](_0x1a1128);}return _0xfc246[_0x5cd3('0xb')](_0x1a1128)[_0x5cd3('0xc')]();};}function respondWithResult(_0x1c9c6c,_0x2222e3){_0x2222e3=_0x2222e3||0xc8;return function(_0x5c420e){if(_0x5c420e){return _0x1c9c6c['status'](_0x2222e3)[_0x5cd3('0xd')](_0x5c420e);}};}function respondWithFilteredResult(_0x15040e,_0x2bdfb4){return function(_0x39dc87){if(_0x39dc87){var _0x4954d3=typeof _0x2bdfb4[_0x5cd3('0xe')]==='undefined'&&typeof _0x2bdfb4[_0x5cd3('0xf')]===_0x5cd3('0x10');var _0x49d041=_0x39dc87[_0x5cd3('0x11')];var _0x5b60d7=_0x4954d3?0x0:_0x2bdfb4[_0x5cd3('0xe')];var _0x4d92f5=_0x4954d3?_0x39dc87['count']:_0x2bdfb4['offset']+_0x2bdfb4[_0x5cd3('0xf')];var _0x1cede4;if(_0x4d92f5>=_0x49d041){_0x4d92f5=_0x49d041;_0x1cede4=0xc8;}else{_0x1cede4=0xce;}_0x15040e[_0x5cd3('0xb')](_0x1cede4);return _0x15040e[_0x5cd3('0x12')](_0x5cd3('0x13'),_0x5b60d7+'-'+_0x4d92f5+'/'+_0x49d041)['json'](_0x39dc87);}return null;};}function removeEntity(_0x470f6d){return function(_0x4e24ce){if(_0x4e24ce){return _0x4e24ce[_0x5cd3('0x14')]()[_0x5cd3('0x15')](function(){var _0x131b26=_0x4e24ce[_0x5cd3('0x16')]({'plain':!![]});var _0x1ef93f=[{'name':_0x5cd3('0x17'),'value':'inbound','ignore':![]},{'name':_0x5cd3('0x18'),'value':'outbound','ignore':![]},{'name':_0x5cd3('0x19'),'value':_0x5cd3('0x1a'),'ignore':![]}];var _0x5cb1a2=_(_0x1ef93f)[_0x5cd3('0x1b')](_0x5cd3('0x1c'))['map'](_0x5cd3('0x1d'))[_0x5cd3('0x1d')]();if(_['includes'](_0x5cb1a2,_0x131b26[_0x5cd3('0x1e')])){return;}var _0x39dbd4=_[_0x5cd3('0x1f')](_0x1ef93f,[_0x5cd3('0x1d'),_0x131b26[_0x5cd3('0x1e')]])[_0x5cd3('0x20')];return db[_0x5cd3('0x21')][_0x5cd3('0x14')]({'where':{'type':_0x39dbd4,'resourceId':_0x131b26['id']}})['then'](function(){return _0x4e24ce;});})['then'](function(){_0x470f6d[_0x5cd3('0xb')](0xcc)[_0x5cd3('0xc')]();});}};}function handleEntityNotFound(_0x573b0a){return function(_0x458110){if(!_0x458110){_0x573b0a[_0x5cd3('0xa')](0x194);}return _0x458110;};}function handleError(_0x1452f1,_0x195ce5){_0x195ce5=_0x195ce5||0x1f4;return function(_0x5ef882){logger[_0x5cd3('0x22')](_0x5ef882[_0x5cd3('0x23')]);if(_0x5ef882[_0x5cd3('0x20')]){delete _0x5ef882[_0x5cd3('0x20')];}_0x1452f1[_0x5cd3('0xb')](_0x195ce5)[_0x5cd3('0x24')](_0x5ef882);};}exports['index']=function(_0x174770,_0x21a250){var _0xbfcc56={},_0xddc459={},_0x30186f={'count':0x0,'rows':[]};var _0x551f37=_[_0x5cd3('0x25')](db[_0x5cd3('0x26')][_0x5cd3('0x27')],function(_0x4bd4b9){return{'name':_0x4bd4b9['fieldName'],'type':_0x4bd4b9[_0x5cd3('0x1e')][_0x5cd3('0x28')]};});_0xddc459[_0x5cd3('0x29')]=_[_0x5cd3('0x25')](_0x551f37,_0x5cd3('0x20'));_0xddc459[_0x5cd3('0x2a')]=_[_0x5cd3('0x2b')](_0x174770[_0x5cd3('0x2a')]);_0xddc459['filters']=_[_0x5cd3('0x2c')](_0xddc459[_0x5cd3('0x29')],_0xddc459[_0x5cd3('0x2a')]);_0xbfcc56['attributes']=_[_0x5cd3('0x2c')](_0xddc459[_0x5cd3('0x29')],qs[_0x5cd3('0x2d')](_0x174770[_0x5cd3('0x2a')][_0x5cd3('0x2d')]));_0xbfcc56['attributes']=_0xbfcc56[_0x5cd3('0x2e')][_0x5cd3('0x2f')]?_0xbfcc56[_0x5cd3('0x2e')]:_0xddc459[_0x5cd3('0x29')];if(!_0x174770['query'][_0x5cd3('0x30')]('nolimit')){_0xbfcc56[_0x5cd3('0xf')]=qs[_0x5cd3('0xf')](_0x174770[_0x5cd3('0x2a')][_0x5cd3('0xf')]);_0xbfcc56[_0x5cd3('0xe')]=qs[_0x5cd3('0xe')](_0x174770['query'][_0x5cd3('0xe')]);}_0xbfcc56[_0x5cd3('0x31')]=qs[_0x5cd3('0x32')](_0x174770[_0x5cd3('0x2a')][_0x5cd3('0x32')]);_0xbfcc56['where']=qs[_0x5cd3('0x33')](_[_0x5cd3('0x34')](_0x174770['query'],_0xddc459[_0x5cd3('0x33')]),_0x551f37);if(_0x174770[_0x5cd3('0x2a')][_0x5cd3('0x1b')]){_0xbfcc56[_0x5cd3('0x35')]=_[_0x5cd3('0x36')](_0xbfcc56['where'],{'$or':_[_0x5cd3('0x25')](_0x551f37,function(_0xab128c){if(_0xab128c[_0x5cd3('0x1e')]!==_0x5cd3('0x37')){var _0x576b63={};_0x576b63[_0xab128c[_0x5cd3('0x20')]]={'$like':'%'+_0x174770[_0x5cd3('0x2a')][_0x5cd3('0x1b')]+'%'};return _0x576b63;}})});}_0xbfcc56=_[_0x5cd3('0x36')]({},_0xbfcc56,_0x174770[_0x5cd3('0x38')]);var _0x6915f9={'where':_0xbfcc56[_0x5cd3('0x35')]};return db[_0x5cd3('0x26')]['count'](_0x6915f9)['then'](function(_0x5a2be2){_0x30186f['count']=_0x5a2be2;if(_0x174770['query'][_0x5cd3('0x39')]){_0xbfcc56['include']=[{'all':!![]}];}return db['VoiceExtension']['findAll'](_0xbfcc56);})[_0x5cd3('0x15')](function(_0x30dba1){_0x30186f[_0x5cd3('0x3a')]=_0x30dba1;return _0x30186f;})[_0x5cd3('0x15')](respondWithFilteredResult(_0x21a250,_0xbfcc56))[_0x5cd3('0x3b')](handleError(_0x21a250,null));};exports[_0x5cd3('0x3c')]=function(_0x5f1a35,_0x126984){var _0xb25bd4={'raw':![],'where':{'id':_0x5f1a35[_0x5cd3('0x3d')]['id']}},_0x401cf4={};_0x401cf4[_0x5cd3('0x29')]=_[_0x5cd3('0x2b')](db['VoiceExtension']['rawAttributes']);_0x401cf4[_0x5cd3('0x2a')]=_['keys'](_0x5f1a35[_0x5cd3('0x2a')]);_0x401cf4['filters']=_[_0x5cd3('0x2c')](_0x401cf4[_0x5cd3('0x29')],_0x401cf4[_0x5cd3('0x2a')]);_0xb25bd4[_0x5cd3('0x2e')]=_[_0x5cd3('0x2c')](_0x401cf4['model'],qs[_0x5cd3('0x2d')](_0x5f1a35[_0x5cd3('0x2a')]['fields']));_0xb25bd4[_0x5cd3('0x2e')]=_0xb25bd4[_0x5cd3('0x2e')][_0x5cd3('0x2f')]?_0xb25bd4[_0x5cd3('0x2e')]:_0x401cf4[_0x5cd3('0x29')];if(_0x5f1a35[_0x5cd3('0x2a')][_0x5cd3('0x39')]){_0xb25bd4[_0x5cd3('0x3e')]=[{'all':!![]}];}_0xb25bd4=_['merge']({},_0xb25bd4,_0x5f1a35['options']);return db[_0x5cd3('0x26')][_0x5cd3('0x1f')](_0xb25bd4)[_0x5cd3('0x15')](handleEntityNotFound(_0x126984,null))['then'](respondWithResult(_0x126984,null))['catch'](handleError(_0x126984,null));};exports[_0x5cd3('0x14')]=function(_0x40cda8,_0xfc9631){return db[_0x5cd3('0x26')][_0x5cd3('0x1f')]({'where':{'id':_0x40cda8[_0x5cd3('0x3d')]['id']}})[_0x5cd3('0x15')](handleEntityNotFound(_0xfc9631,null))['then'](removeEntity(_0xfc9631,null))[_0x5cd3('0x3b')](handleError(_0xfc9631,null));};exports[_0x5cd3('0x3f')]=function(_0x2677e7,_0x390cf9){if(_0x2677e7[_0x5cd3('0x40')][_0x5cd3('0x1e')]===_0x5cd3('0x41')&&!_[_0x5cd3('0x42')](_0x2677e7[_0x5cd3('0x40')][_0x5cd3('0x43')],'_')){_0x2677e7[_0x5cd3('0x40')][_0x5cd3('0x43')]='_'[_0x5cd3('0x44')](_0x2677e7[_0x5cd3('0x40')][_0x5cd3('0x43')]);}return db['VoiceExtension'][_0x5cd3('0x3f')](_0x2677e7[_0x5cd3('0x40')],{'raw':![]})['then'](function(_0x5b0a68){var _0x219bfc=_0x2677e7['user'][_0x5cd3('0x16')]({'plain':!![]});if(!_0x219bfc)throw new Error(_0x5cd3('0x45'));if(_0x219bfc[_0x5cd3('0x46')]===_0x5cd3('0x47')){var _0x457560=_0x5b0a68[_0x5cd3('0x16')]({'plain':!![]});var _0x2833d6=[{'name':_0x5cd3('0x17'),'value':_0x5cd3('0x48')},{'name':_0x5cd3('0x18'),'value':_0x5cd3('0x41')},{'name':'InternalRoutes','value':'internal'}];var _0x15759a=_[_0x5cd3('0x1f')](_0x2833d6,[_0x5cd3('0x1d'),_0x457560[_0x5cd3('0x1e')]])['name'];return db[_0x5cd3('0x49')][_0x5cd3('0x1f')]({'where':{'name':_0x15759a,'userProfileId':_0x219bfc[_0x5cd3('0x4a')]},'raw':!![]})['then'](function(_0x10723e){if(_0x10723e&&_0x10723e[_0x5cd3('0x4b')]===0x0){return db[_0x5cd3('0x21')][_0x5cd3('0x3f')]({'name':_0x457560[_0x5cd3('0x20')],'resourceId':_0x457560['id'],'type':_0x10723e[_0x5cd3('0x20')],'sectionId':_0x10723e['id']},{})[_0x5cd3('0x15')](function(){return _0x5b0a68;});}else{return _0x5b0a68;}})['catch'](function(_0x57f204){logger[_0x5cd3('0x22')](_0x5cd3('0x4c'),_0x57f204);throw _0x57f204;});}return _0x5b0a68;})[_0x5cd3('0x15')](respondWithResult(_0x390cf9,0xc9))[_0x5cd3('0x3b')](handleError(_0x390cf9,null));};exports[_0x5cd3('0x4d')]=function(_0x31d8fd,_0x128cfa){if(_0x31d8fd[_0x5cd3('0x40')]['id']){delete _0x31d8fd[_0x5cd3('0x40')]['id'];}return db[_0x5cd3('0x26')][_0x5cd3('0x1f')]({'where':{'id':_0x31d8fd['params']['id']}})[_0x5cd3('0x15')](handleEntityNotFound(_0x128cfa,null))[_0x5cd3('0x15')](function(_0x176a7d){if(_0x176a7d){return db['VoiceExtension'][_0x5cd3('0x4d')](_[_0x5cd3('0x34')](_0x31d8fd[_0x5cd3('0x40')],[_0x5cd3('0x43'),'context','description','recordingFormat',_0x5cd3('0x4e'),_0x5cd3('0x4f'),_0x5cd3('0x50')]),{'where':{'context':_0x176a7d[_0x5cd3('0x51')],'exten':_0x176a7d[_0x5cd3('0x43')]},'individualHooks':!![]})['then'](function(_0x84075e){return _0x84075e;});}return null;})[_0x5cd3('0x15')](respondWithStatusCode(_0x128cfa,null))[_0x5cd3('0x3b')](handleError(_0x128cfa,null));};exports[_0x5cd3('0x52')]=function(_0x34e74f,_0x38a59d){var _0x6230fb=_0x34e74f[_0x5cd3('0x3d')]['id'];var _0x2c7b6a=_0x34e74f[_0x5cd3('0x40')];var _0x14d22c=0xc8;var _0x43b2d2=null;return db[_0x5cd3('0x53')][_0x5cd3('0x54')]({'isolationLevel':db[_0x5cd3('0x53')][_0x5cd3('0x55')][_0x5cd3('0x56')][_0x5cd3('0x57')]},function(_0x4ac892){return db[_0x5cd3('0x26')][_0x5cd3('0x58')]({'where':{'id':_0x6230fb},'transaction':_0x4ac892})[_0x5cd3('0x15')](function(_0x1a6c9b){if(_0x1a6c9b){return db[_0x5cd3('0x26')][_0x5cd3('0x14')]({'where':{'VoiceExtensionId':_0x6230fb},'transaction':_0x4ac892})['then'](function(){var _0x2f3d13=_['map'](_0x2c7b6a,function(_0x8ceace){_0x8ceace[_0x5cd3('0x59')]=_0x6230fb;_0x8ceace[_0x5cd3('0x5a')]=!![];return _0x8ceace;});return _0x1a6c9b[_0x5cd3('0x5b')](_0x2f3d13);})[_0x5cd3('0x15')](function(_0x56ac5b){return db[_0x5cd3('0x26')][_0x5cd3('0x5c')](_0x56ac5b,{'transaction':_0x4ac892});});}else{_0x14d22c=0x194;_0x43b2d2=[];}});})[_0x5cd3('0x15')](function(){if(_0x14d22c!==0x194){return db[_0x5cd3('0x26')][_0x5cd3('0x5d')]({'where':{'isApp':!![],'VoiceExtensionId':_0x6230fb},'order':_0x5cd3('0x5e')})[_0x5cd3('0x15')](function(_0x40a859){_0x43b2d2=_0x40a859;});}})[_0x5cd3('0x3b')](function(_0x125707){_0x14d22c=0x1f4;logger[_0x5cd3('0x22')](_0x125707[_0x5cd3('0x23')]);if(_0x125707[_0x5cd3('0x20')]){delete _0x125707[_0x5cd3('0x20')];}_0x43b2d2=_0x125707;})[_0x5cd3('0x5f')](function(){if(_0x43b2d2===null){_0x38a59d[_0x5cd3('0xa')](_0x14d22c);}else{if(_0x14d22c===0x1f4){_0x38a59d[_0x5cd3('0xb')](_0x14d22c)[_0x5cd3('0x24')](_0x43b2d2);}else{_0x38a59d[_0x5cd3('0xb')](_0x14d22c)[_0x5cd3('0xd')](_0x43b2d2);}}});};