Built motion from commit 44b1f254.|2.6.26
[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 _0x76cd=['inbound','OutboundRoutes','internal','map','value','includes','find','type','name','UserProfileResource','error','stack','index','rawAttributes','fieldName','model','keys','query','filters','intersection','fields','attributes','length','hasOwnProperty','sort','where','filter','merge','VIRTUAL','options','includeAll','include','VoiceExtension','rows','catch','show','create','body','outbound','exten','concat','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','InternalRoutes','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','params','pick','context','description','mandatoryDisposition','alias','addApplications','sequelize','transaction','ISOLATION_LEVELS','findOne','VoiceExtensionId','isApp','createRouting','bulkCreate','findAndCountAll','cast(priority\x20as\x20unsigned)','finally','send','lodash','ioredis','../../components/parsers/qs','../../config/logger','../../config/environment','../../mysqldb','redis','defaults','localhost','socket.io-emitter','sendStatus','status','end','json','offset','undefined','limit','count','set','Content-Range','destroy','then','get','InboundRoutes'];(function(_0x507c81,_0x3e1b56){var _0x368a25=function(_0x1e7519){while(--_0x1e7519){_0x507c81['push'](_0x507c81['shift']());}};_0x368a25(++_0x3e1b56);}(_0x76cd,0x9e));var _0xd76c=function(_0x1d4251,_0xc7b6cc){_0x1d4251=_0x1d4251-0x0;var _0x3aaf81=_0x76cd[_0x1d4251];return _0x3aaf81;};'use strict';var _=require(_0xd76c('0x0'));var Redis=require(_0xd76c('0x1'));var qs=require(_0xd76c('0x2'));var logger=require(_0xd76c('0x3'))('api');var config=require(_0xd76c('0x4'));var db=require(_0xd76c('0x5'))['db'];config[_0xd76c('0x6')]=_[_0xd76c('0x7')](config[_0xd76c('0x6')],{'host':_0xd76c('0x8'),'port':0x18eb});var socket=require(_0xd76c('0x9'))(new Redis(config[_0xd76c('0x6')]));require('./voiceExtension.socket')['register'](socket);function respondWithStatusCode(_0x290531,_0x3a1d28){_0x3a1d28=_0x3a1d28||0xcc;return function(_0x51c80e){if(_0x51c80e){return _0x290531[_0xd76c('0xa')](_0x3a1d28);}return _0x290531[_0xd76c('0xb')](_0x3a1d28)[_0xd76c('0xc')]();};}function respondWithResult(_0x3bb207,_0x9d6c81){_0x9d6c81=_0x9d6c81||0xc8;return function(_0x3aebcd){if(_0x3aebcd){return _0x3bb207[_0xd76c('0xb')](_0x9d6c81)[_0xd76c('0xd')](_0x3aebcd);}};}function respondWithFilteredResult(_0x5662e7,_0x3b3fdd){return function(_0x312e70){if(_0x312e70){var _0x328b94=typeof _0x3b3fdd[_0xd76c('0xe')]===_0xd76c('0xf')&&typeof _0x3b3fdd[_0xd76c('0x10')]==='undefined';var _0x35bc8b=_0x312e70['count'];var _0x4805c5=_0x328b94?0x0:_0x3b3fdd[_0xd76c('0xe')];var _0x441f76=_0x328b94?_0x312e70[_0xd76c('0x11')]:_0x3b3fdd['offset']+_0x3b3fdd[_0xd76c('0x10')];var _0x1662b2;if(_0x441f76>=_0x35bc8b){_0x441f76=_0x35bc8b;_0x1662b2=0xc8;}else{_0x1662b2=0xce;}_0x5662e7['status'](_0x1662b2);return _0x5662e7[_0xd76c('0x12')](_0xd76c('0x13'),_0x4805c5+'-'+_0x441f76+'/'+_0x35bc8b)[_0xd76c('0xd')](_0x312e70);}return null;};}function removeEntity(_0x2c2e6f){return function(_0x235349){if(_0x235349){return _0x235349[_0xd76c('0x14')]()[_0xd76c('0x15')](function(){var _0x2c2bbb=_0x235349[_0xd76c('0x16')]({'plain':!![]});var _0x4c677a=[{'name':_0xd76c('0x17'),'value':_0xd76c('0x18'),'ignore':![]},{'name':_0xd76c('0x19'),'value':'outbound','ignore':![]},{'name':'InternalRoutes','value':_0xd76c('0x1a'),'ignore':![]}];var _0x967581=_(_0x4c677a)['filter']('ignore')[_0xd76c('0x1b')](_0xd76c('0x1c'))['value']();if(_[_0xd76c('0x1d')](_0x967581,_0x2c2bbb['type'])){return;}var _0x72b757=_[_0xd76c('0x1e')](_0x4c677a,[_0xd76c('0x1c'),_0x2c2bbb[_0xd76c('0x1f')]])[_0xd76c('0x20')];return db[_0xd76c('0x21')][_0xd76c('0x14')]({'where':{'type':_0x72b757,'resourceId':_0x2c2bbb['id']}})[_0xd76c('0x15')](function(){return _0x235349;});})[_0xd76c('0x15')](function(){_0x2c2e6f[_0xd76c('0xb')](0xcc)[_0xd76c('0xc')]();});}};}function handleEntityNotFound(_0x568e48){return function(_0x2626f9){if(!_0x2626f9){_0x568e48[_0xd76c('0xa')](0x194);}return _0x2626f9;};}function handleError(_0x4f416f,_0x35f99f){_0x35f99f=_0x35f99f||0x1f4;return function(_0x508e4b){logger[_0xd76c('0x22')](_0x508e4b[_0xd76c('0x23')]);if(_0x508e4b['name']){delete _0x508e4b[_0xd76c('0x20')];}_0x4f416f[_0xd76c('0xb')](_0x35f99f)['send'](_0x508e4b);};}exports[_0xd76c('0x24')]=function(_0x18abd5,_0x1681c5){var _0x1d1b7b={},_0x69648c={},_0x11d5a7={'count':0x0,'rows':[]};var _0x10b0aa=_[_0xd76c('0x1b')](db['VoiceExtension'][_0xd76c('0x25')],function(_0x4d57a2){return{'name':_0x4d57a2[_0xd76c('0x26')],'type':_0x4d57a2[_0xd76c('0x1f')]['key']};});_0x69648c[_0xd76c('0x27')]=_[_0xd76c('0x1b')](_0x10b0aa,_0xd76c('0x20'));_0x69648c['query']=_[_0xd76c('0x28')](_0x18abd5[_0xd76c('0x29')]);_0x69648c[_0xd76c('0x2a')]=_[_0xd76c('0x2b')](_0x69648c[_0xd76c('0x27')],_0x69648c['query']);_0x1d1b7b['attributes']=_[_0xd76c('0x2b')](_0x69648c['model'],qs[_0xd76c('0x2c')](_0x18abd5[_0xd76c('0x29')]['fields']));_0x1d1b7b[_0xd76c('0x2d')]=_0x1d1b7b['attributes'][_0xd76c('0x2e')]?_0x1d1b7b[_0xd76c('0x2d')]:_0x69648c[_0xd76c('0x27')];if(!_0x18abd5[_0xd76c('0x29')][_0xd76c('0x2f')]('nolimit')){_0x1d1b7b[_0xd76c('0x10')]=qs['limit'](_0x18abd5['query'][_0xd76c('0x10')]);_0x1d1b7b['offset']=qs['offset'](_0x18abd5[_0xd76c('0x29')][_0xd76c('0xe')]);}_0x1d1b7b['order']=qs[_0xd76c('0x30')](_0x18abd5[_0xd76c('0x29')]['sort']);_0x1d1b7b[_0xd76c('0x31')]=qs[_0xd76c('0x2a')](_['pick'](_0x18abd5[_0xd76c('0x29')],_0x69648c['filters']),_0x10b0aa);if(_0x18abd5[_0xd76c('0x29')][_0xd76c('0x32')]){_0x1d1b7b[_0xd76c('0x31')]=_[_0xd76c('0x33')](_0x1d1b7b['where'],{'$or':_['map'](_0x10b0aa,function(_0x3e5b93){if(_0x3e5b93[_0xd76c('0x1f')]!==_0xd76c('0x34')){var _0x42e33e={};_0x42e33e[_0x3e5b93['name']]={'$like':'%'+_0x18abd5[_0xd76c('0x29')][_0xd76c('0x32')]+'%'};return _0x42e33e;}})});}_0x1d1b7b=_['merge']({},_0x1d1b7b,_0x18abd5[_0xd76c('0x35')]);var _0x57d811={'where':_0x1d1b7b[_0xd76c('0x31')]};return db['VoiceExtension'][_0xd76c('0x11')](_0x57d811)[_0xd76c('0x15')](function(_0x7635aa){_0x11d5a7['count']=_0x7635aa;if(_0x18abd5['query'][_0xd76c('0x36')]){_0x1d1b7b[_0xd76c('0x37')]=[{'all':!![]}];}return db[_0xd76c('0x38')]['findAll'](_0x1d1b7b);})[_0xd76c('0x15')](function(_0xe913fd){_0x11d5a7[_0xd76c('0x39')]=_0xe913fd;return _0x11d5a7;})['then'](respondWithFilteredResult(_0x1681c5,_0x1d1b7b))[_0xd76c('0x3a')](handleError(_0x1681c5,null));};exports[_0xd76c('0x3b')]=function(_0x305b84,_0x3110ac){var _0x417a26={'raw':![],'where':{'id':_0x305b84['params']['id']}},_0x18a018={};_0x18a018[_0xd76c('0x27')]=_['keys'](db['VoiceExtension'][_0xd76c('0x25')]);_0x18a018[_0xd76c('0x29')]=_['keys'](_0x305b84['query']);_0x18a018[_0xd76c('0x2a')]=_[_0xd76c('0x2b')](_0x18a018['model'],_0x18a018[_0xd76c('0x29')]);_0x417a26[_0xd76c('0x2d')]=_[_0xd76c('0x2b')](_0x18a018['model'],qs['fields'](_0x305b84[_0xd76c('0x29')][_0xd76c('0x2c')]));_0x417a26['attributes']=_0x417a26['attributes'][_0xd76c('0x2e')]?_0x417a26['attributes']:_0x18a018[_0xd76c('0x27')];if(_0x305b84[_0xd76c('0x29')][_0xd76c('0x36')]){_0x417a26['include']=[{'all':!![]}];}_0x417a26=_[_0xd76c('0x33')]({},_0x417a26,_0x305b84['options']);return db['VoiceExtension'][_0xd76c('0x1e')](_0x417a26)['then'](handleEntityNotFound(_0x3110ac,null))[_0xd76c('0x15')](respondWithResult(_0x3110ac,null))[_0xd76c('0x3a')](handleError(_0x3110ac,null));};exports[_0xd76c('0x14')]=function(_0x90c619,_0x3632c5){return db[_0xd76c('0x38')][_0xd76c('0x1e')]({'where':{'id':_0x90c619['params']['id']}})[_0xd76c('0x15')](handleEntityNotFound(_0x3632c5,null))['then'](removeEntity(_0x3632c5,null))[_0xd76c('0x3a')](handleError(_0x3632c5,null));};exports[_0xd76c('0x3c')]=function(_0x480c34,_0x12aa70){if(_0x480c34[_0xd76c('0x3d')][_0xd76c('0x1f')]===_0xd76c('0x3e')&&!_['startsWith'](_0x480c34[_0xd76c('0x3d')][_0xd76c('0x3f')],'_')){_0x480c34['body']['exten']='_'[_0xd76c('0x40')](_0x480c34[_0xd76c('0x3d')][_0xd76c('0x3f')]);}return db[_0xd76c('0x38')]['create'](_0x480c34[_0xd76c('0x3d')],{'raw':![]})[_0xd76c('0x15')](function(_0x4788f7){var _0x4543dd=_0x480c34['user'][_0xd76c('0x16')]({'plain':!![]});if(!_0x4543dd)throw new Error(_0xd76c('0x41'));if(_0x4543dd[_0xd76c('0x42')]==='user'){var _0x3dd18c=_0x4788f7[_0xd76c('0x16')]({'plain':!![]});var _0x206950=[{'name':_0xd76c('0x17'),'value':_0xd76c('0x18')},{'name':_0xd76c('0x19'),'value':_0xd76c('0x3e')},{'name':_0xd76c('0x43'),'value':_0xd76c('0x1a')}];var _0x334b60=_[_0xd76c('0x1e')](_0x206950,['value',_0x3dd18c[_0xd76c('0x1f')]])['name'];return db['UserProfileSection']['find']({'where':{'name':_0x334b60,'userProfileId':_0x4543dd[_0xd76c('0x44')]},'raw':!![]})['then'](function(_0x1b26c4){if(_0x1b26c4&&_0x1b26c4[_0xd76c('0x45')]===0x0){return db[_0xd76c('0x21')]['create']({'name':_0x3dd18c[_0xd76c('0x20')],'resourceId':_0x3dd18c['id'],'type':_0x1b26c4[_0xd76c('0x20')],'sectionId':_0x1b26c4['id']},{})[_0xd76c('0x15')](function(){return _0x4788f7;});}else{return _0x4788f7;}})[_0xd76c('0x3a')](function(_0x1f5dcb){logger[_0xd76c('0x22')](_0xd76c('0x46'),_0x1f5dcb);throw _0x1f5dcb;});}return _0x4788f7;})[_0xd76c('0x15')](respondWithResult(_0x12aa70,0xc9))[_0xd76c('0x3a')](handleError(_0x12aa70,null));};exports[_0xd76c('0x47')]=function(_0x5ccc60,_0x849da2){if(_0x5ccc60['body']['id']){delete _0x5ccc60[_0xd76c('0x3d')]['id'];}return db[_0xd76c('0x38')][_0xd76c('0x1e')]({'where':{'id':_0x5ccc60[_0xd76c('0x48')]['id']}})[_0xd76c('0x15')](handleEntityNotFound(_0x849da2,null))[_0xd76c('0x15')](function(_0x53e0be){if(_0x53e0be){return db[_0xd76c('0x38')][_0xd76c('0x47')](_[_0xd76c('0x49')](_0x5ccc60[_0xd76c('0x3d')],[_0xd76c('0x3f'),_0xd76c('0x4a'),_0xd76c('0x4b'),'recordingFormat','cutdigits',_0xd76c('0x4c'),_0xd76c('0x4d')]),{'where':{'context':_0x53e0be['context'],'exten':_0x53e0be[_0xd76c('0x3f')]},'individualHooks':!![]})[_0xd76c('0x15')](function(_0x8c1aff){return _0x8c1aff;});}return null;})[_0xd76c('0x15')](respondWithStatusCode(_0x849da2,null))['catch'](handleError(_0x849da2,null));};exports[_0xd76c('0x4e')]=function(_0x53ec52,_0x56912b){var _0x4b5938=_0x53ec52['params']['id'];var _0x19021c=_0x53ec52['body'];var _0x40afd0=0xc8;var _0xff5eb4=null;return db[_0xd76c('0x4f')][_0xd76c('0x50')]({'isolationLevel':db[_0xd76c('0x4f')]['Transaction'][_0xd76c('0x51')]['READ_COMMITTED']},function(_0x25b10f){return db['VoiceExtension'][_0xd76c('0x52')]({'where':{'id':_0x4b5938},'transaction':_0x25b10f})['then'](function(_0x46fdc8){if(_0x46fdc8){return db[_0xd76c('0x38')][_0xd76c('0x14')]({'where':{'VoiceExtensionId':_0x4b5938},'transaction':_0x25b10f})[_0xd76c('0x15')](function(){var _0x23f28e=_[_0xd76c('0x1b')](_0x19021c,function(_0x32193d){_0x32193d[_0xd76c('0x53')]=_0x4b5938;_0x32193d[_0xd76c('0x54')]=!![];return _0x32193d;});return _0x46fdc8[_0xd76c('0x55')](_0x23f28e);})[_0xd76c('0x15')](function(_0x721231){return db[_0xd76c('0x38')][_0xd76c('0x56')](_0x721231,{'transaction':_0x25b10f});});}else{_0x40afd0=0x194;_0xff5eb4=[];}});})[_0xd76c('0x15')](function(){if(_0x40afd0!==0x194){return db[_0xd76c('0x38')][_0xd76c('0x57')]({'where':{'isApp':!![],'VoiceExtensionId':_0x4b5938},'order':_0xd76c('0x58')})['then'](function(_0x19c82a){_0xff5eb4=_0x19c82a;});}})[_0xd76c('0x3a')](function(_0x478e99){_0x40afd0=0x1f4;logger['error'](_0x478e99[_0xd76c('0x23')]);if(_0x478e99['name']){delete _0x478e99[_0xd76c('0x20')];}_0xff5eb4=_0x478e99;})[_0xd76c('0x59')](function(){if(_0xff5eb4===null){_0x56912b['sendStatus'](_0x40afd0);}else{if(_0x40afd0===0x1f4){_0x56912b[_0xd76c('0xb')](_0x40afd0)[_0xd76c('0x5a')](_0xff5eb4);}else{_0x56912b[_0xd76c('0xb')](_0x40afd0)['json'](_0xff5eb4);}}});};