Built motion from commit a9fb64cc6defd8fb3a5cc199221f878e91c0e969. Version 3.0.0...
[motion-next.git] / server / api / webbar / webbar.controller.js
1 const a780_0x15c1=['callNumber','conference\x20fired:','webbar:hold','hold\x20fired:','entityFound:','UserId','info','validate','hangup\x20executed!','hold','filter','send','hangup','catch','status','hold\x20executed!','sessionId','answer','callerId','callbackUrl','../../config/logger','length','util','message','agent','transfer\x20executed!','userId','number','originate\x20fired:','unhold','transferNumber','unhold\x20fired:','body','jayson/promise','string','webbar:answer','stringify','../../mysqldb','then','webbar:unhold','result','name','transferNumber\x20is\x20required','webbar:originate','webbarapi','emit','user:%s','findOne','webbar:transfer','stack','VoiceChannels','answer\x20executed!','log','calls\x20fired:','originate','error','json','conference\x20executed!','callNumber\x20is\x20required','userId\x20is\x20required','request','all','format','lodash'];(function(_0x54e632,_0x15c119){const _0x8c1480=function(_0x265c01){while(--_0x265c01){_0x54e632['push'](_0x54e632['shift']());}};_0x8c1480(++_0x15c119);}(a780_0x15c1,0x1cb));const a780_0x8c14=function(_0x54e632,_0x15c119){_0x54e632=_0x54e632-0x0;let _0x8c1480=a780_0x15c1[_0x54e632];return _0x8c1480;};const _0x2dcec3=a780_0x8c14;'use strict';const _=require(_0x2dcec3('0x34')),db=require(_0x2dcec3('0x1a'))['db'],util=require(_0x2dcec3('0xb')),jayson=require(_0x2dcec3('0x16')),amiClient=jayson['client']['http']({'port':0x232a}),logger=require(_0x2dcec3('0x9'))(_0x2dcec3('0x21')),{getSocket}=require('../../rediscache'),io=getSocket(),Schema=require(_0x2dcec3('0x3c')),originateValidation=new Schema({'userId':{'type':_0x2dcec3('0x10'),'required':[!![],'userId\x20is\x20required']},'callNumber':{'type':_0x2dcec3('0x17'),'required':[!![],_0x2dcec3('0x2f')]},'callerId':{'type':_0x2dcec3('0x17')},'callbackUrl':{'type':_0x2dcec3('0x17')}}),hangupValidation=new Schema({'userId':{'type':_0x2dcec3('0x10'),'required':[!![],_0x2dcec3('0x30')]},'sessionId':{'type':_0x2dcec3('0x17'),'required':![]}}),answerValidation=new Schema({'userId':{'type':_0x2dcec3('0x10'),'required':[!![],_0x2dcec3('0x30')]},'sessionId':{'type':'string','required':![]}}),transferValidation=new Schema({'userId':{'type':'number','required':[!![],_0x2dcec3('0x30')]},'sessionId':{'type':_0x2dcec3('0x17'),'required':[!![],'sessionId\x20is\x20required']},'transferNumber':{'type':'string','required':[!![],_0x2dcec3('0x1f')]}}),holdValidation=new Schema({'userId':{'type':_0x2dcec3('0x10'),'required':[!![],_0x2dcec3('0x30')]},'sessionId':{'type':_0x2dcec3('0x17'),'required':![]}}),unholdValidation=new Schema({'userId':{'type':'number','required':[!![],_0x2dcec3('0x30')]},'sessionId':{'type':_0x2dcec3('0x17'),'required':![]}}),callsValidation=new Schema({'userId':{'type':_0x2dcec3('0x10'),'required':[!![],_0x2dcec3('0x30')]}}),conferenceValidation=new Schema({'userId':{'type':_0x2dcec3('0x10'),'required':[!![],_0x2dcec3('0x30')]}});function emit(_0x265c01,_0x1b9952,_0x4b9dca){const _0x125b9f=_0x2dcec3;logger[_0x125b9f('0x3b')](_0x265c01,_0x1b9952,JSON[_0x125b9f('0x19')](_0x4b9dca)),io['to'](_0x265c01)[_0x125b9f('0x22')](_0x1b9952,_0x4b9dca);}function handleError(_0x524d32){return function(_0x2fe856){const _0x36eb4a=a780_0x8c14;console[_0x36eb4a('0x29')]('handleError:',_0x2fe856,_0x2fe856 instanceof RangeError),logger['error'](_0x2fe856[_0x36eb4a('0x26')]),_0x2fe856 instanceof RangeError?(_0x2fe856[_0x36eb4a('0x1e')]&&delete _0x2fe856['name'],_0x524d32['status'](0x194)[_0x36eb4a('0x0')](_0x2fe856)):(_0x2fe856['name']&&delete _0x2fe856[_0x36eb4a('0x1e')],_0x524d32[_0x36eb4a('0x3')](0x1f4)[_0x36eb4a('0x0')](_0x2fe856));};}function checkError(){return function(_0xbd1eb0){if(!_0xbd1eb0)throw new RangeError('NotFound');return _0xbd1eb0;};}function respondWithRpcPromise(_0x1badda,_0x4ad125){return new Promise(function(_0x2d22f0,_0x49397c){const _0x1162f2=a780_0x8c14,_0x7b703a=amiClient;return _0x7b703a[_0x1162f2('0x31')](_0x1badda,_0x4ad125)['then'](function(_0x22050b){const _0xd7a756=_0x1162f2;if(_0x22050b[_0xd7a756('0x2c')]){if(_0x22050b[_0xd7a756('0x2c')]['code']===0x1f4)return _0x49397c(_0x22050b[_0xd7a756('0x2c')][_0xd7a756('0xc')]);return _0x2d22f0(_0x22050b[_0xd7a756('0x2c')][_0xd7a756('0xc')]);}else _0x2d22f0(_0x22050b[_0xd7a756('0x1d')]);})[_0x1162f2('0x2')](function(_0x34c469){_0x49397c(_0x34c469);});});}function getAgent(_0x4f663d){const _0x1b1da0=_0x2dcec3;return db['User'][_0x1b1da0('0x24')]({'where':{'id':_0x4f663d,'role':_0x1b1da0('0xd')}})[_0x1b1da0('0x1b')](checkError());}exports[_0x2dcec3('0x2b')]=function(_0x338d94,_0x3ef7a9){const _0x503df8=_0x2dcec3;logger[_0x503df8('0x3b')](_0x503df8('0x11'),_0x338d94[_0x503df8('0x15')]);const _0x1f174a=originateValidation[_0x503df8('0x3c')](_0x338d94[_0x503df8('0x15')]);if(_0x1f174a[_0x503df8('0xa')]>0x0)return _0x3ef7a9[_0x503df8('0x3')](0x190)['json'](_0x1f174a);const _0x52a92c=_0x338d94[_0x503df8('0x15')][_0x503df8('0xf')],_0x4c7f05=_0x338d94[_0x503df8('0x15')][_0x503df8('0x35')],_0x228c22=_0x338d94[_0x503df8('0x15')][_0x503df8('0x7')],_0x26a377=_0x338d94[_0x503df8('0x15')][_0x503df8('0x8')];return getAgent(_0x52a92c)[_0x503df8('0x1b')](function(_0x293b30){const _0xf1540a=_0x503df8;return logger[_0xf1540a('0x3b')](_0xf1540a('0x39'),_0x293b30[_0xf1540a('0x1e')]),emit(util[_0xf1540a('0x33')](_0xf1540a('0x23'),_0x293b30['name']),_0xf1540a('0x20'),{'callNumber':_0x4c7f05,'callerId':_0x228c22,'callbackUrl':_0x26a377}),_0x3ef7a9['status'](0xc8)[_0xf1540a('0x2d')]({'error':![],'message':'originate\x20executed!'});})['catch'](handleError(_0x3ef7a9));},exports[_0x2dcec3('0x1')]=function(_0x39a6d3,_0x3ad300){const _0x29d119=_0x2dcec3;logger[_0x29d119('0x3b')]('hangup\x20fired:',_0x39a6d3['body']);const _0x4cdd9e=hangupValidation['validate'](_0x39a6d3[_0x29d119('0x15')]);if(_0x4cdd9e['length']>0x0)return _0x3ad300[_0x29d119('0x3')](0x190)[_0x29d119('0x2d')](_0x4cdd9e);const _0x415e7a=_0x39a6d3[_0x29d119('0x15')][_0x29d119('0xf')],_0x39d652=_0x39a6d3[_0x29d119('0x15')][_0x29d119('0x5')];return getAgent(_0x415e7a)[_0x29d119('0x1b')](function(_0x34695e){const _0x3ba04d=_0x29d119;return logger[_0x3ba04d('0x3b')](_0x3ba04d('0x39'),_0x34695e[_0x3ba04d('0x1e')]),emit(util[_0x3ba04d('0x33')]('user:%s',_0x34695e[_0x3ba04d('0x1e')]),'webbar:hangup',{'sessionId':_0x39d652}),_0x3ad300[_0x3ba04d('0x3')](0xc8)[_0x3ba04d('0x2d')]({'error':![],'message':_0x3ba04d('0x3d')});})[_0x29d119('0x2')](handleError(_0x3ad300));},exports[_0x2dcec3('0x6')]=function(_0x5c903c,_0x35f0c5){const _0x1ba3a5=_0x2dcec3;logger[_0x1ba3a5('0x3b')]('answer\x20fired:',_0x5c903c[_0x1ba3a5('0x15')]);const _0x561ee9=answerValidation[_0x1ba3a5('0x3c')](_0x5c903c[_0x1ba3a5('0x15')]);if(_0x561ee9['length']>0x0)return _0x35f0c5[_0x1ba3a5('0x3')](0x190)[_0x1ba3a5('0x2d')](_0x561ee9);const _0x3e9eae=_0x5c903c[_0x1ba3a5('0x15')][_0x1ba3a5('0xf')],_0x44da43=_0x5c903c[_0x1ba3a5('0x15')]['sessionId'];return getAgent(_0x3e9eae)[_0x1ba3a5('0x1b')](function(_0x2dcf71){const _0x413fc9=_0x1ba3a5;return logger[_0x413fc9('0x3b')](_0x413fc9('0x39'),_0x2dcf71['name']),emit(util[_0x413fc9('0x33')](_0x413fc9('0x23'),_0x2dcf71[_0x413fc9('0x1e')]),_0x413fc9('0x18'),{'sessionId':_0x44da43}),_0x35f0c5['status'](0xc8)[_0x413fc9('0x2d')]({'error':![],'message':_0x413fc9('0x28')});})[_0x1ba3a5('0x2')](handleError(_0x35f0c5));},exports[_0x2dcec3('0x3e')]=function(_0xf545f4,_0x15a83b){const _0x41997f=_0x2dcec3;logger[_0x41997f('0x3b')](_0x41997f('0x38'),_0xf545f4[_0x41997f('0x15')]);const _0x44e581=holdValidation[_0x41997f('0x3c')](_0xf545f4[_0x41997f('0x15')]);if(_0x44e581[_0x41997f('0xa')]>0x0)return _0x15a83b[_0x41997f('0x3')](0x190)['json'](_0x44e581);const _0x23c233=_0xf545f4[_0x41997f('0x15')][_0x41997f('0xf')],_0xe3b57f=_0xf545f4[_0x41997f('0x15')][_0x41997f('0x5')];return getAgent(_0x23c233)['then'](function(_0x2d46ea){const _0x377502=_0x41997f;return logger['info'](_0x377502('0x39'),_0x2d46ea[_0x377502('0x1e')]),emit(util['format'](_0x377502('0x23'),_0x2d46ea[_0x377502('0x1e')]),_0x377502('0x37'),{'sessionId':_0xe3b57f}),_0x15a83b[_0x377502('0x3')](0xc8)[_0x377502('0x2d')]({'error':![],'message':_0x377502('0x4')});})['catch'](handleError(_0x15a83b));},exports[_0x2dcec3('0x12')]=function(_0x335399,_0x419393){const _0xdabfd6=_0x2dcec3;logger[_0xdabfd6('0x3b')](_0xdabfd6('0x14'),_0x335399[_0xdabfd6('0x15')]);const _0x2089ce=unholdValidation[_0xdabfd6('0x3c')](_0x335399['body']);if(_0x2089ce[_0xdabfd6('0xa')]>0x0)return _0x419393[_0xdabfd6('0x3')](0x190)[_0xdabfd6('0x2d')](_0x2089ce);const _0x5cf422=_0x335399['body'][_0xdabfd6('0xf')],_0x23f76a=_0x335399[_0xdabfd6('0x15')][_0xdabfd6('0x5')];return getAgent(_0x5cf422)[_0xdabfd6('0x1b')](function(_0x33ab85){const _0x329d66=_0xdabfd6;return logger['info']('entityFound:',_0x33ab85[_0x329d66('0x1e')]),emit(util['format']('user:%s',_0x33ab85['name']),_0x329d66('0x1c'),{'sessionId':_0x23f76a}),_0x419393[_0x329d66('0x3')](0xc8)[_0x329d66('0x2d')]({'error':![],'message':'unhold\x20executed!'});})[_0xdabfd6('0x2')](handleError(_0x419393));},exports['calls']=function(_0x16a2af,_0x57f8bb){const _0x2d0909=_0x2dcec3;logger['info'](_0x2d0909('0x2a'),_0x57f8bb[_0x2d0909('0x15')]);const _0x59c6b0=callsValidation[_0x2d0909('0x3c')](_0x16a2af[_0x2d0909('0x15')]);if(_0x59c6b0['length']>0x0)return _0x57f8bb['status'](0x190)[_0x2d0909('0x2d')](_0x59c6b0);const _0x4348ba=_0x16a2af[_0x2d0909('0x15')]['userId'],_0x5427c8=respondWithRpcPromise(_0x2d0909('0x27')),_0x1be2d5=getAgent(_0x4348ba);return Promise[_0x2d0909('0x32')]([_0x5427c8,_0x1be2d5])[_0x2d0909('0x1b')](function(_0x5f30ad){const _0x6eeb94=_0x2d0909,_0x56b363=_0x5f30ad[0x0],_0x2996bb=_0x5f30ad[0x1],_0x444f17=_[_0x6eeb94('0x3f')](_0x56b363['rows'],function(_0x40469e){const _0x3e605c=_0x6eeb94;return _0x40469e[_0x3e605c('0x3a')]==_0x2996bb['id'];});return _0x57f8bb[_0x6eeb94('0x3')](0xc8)[_0x6eeb94('0x2d')]({'count':_0x444f17['length'],'rows':_0x444f17});})[_0x2d0909('0x2')](handleError(_0x57f8bb));},exports['conference']=function(_0x4156cd,_0x3af0c8){const _0x1133a6=_0x2dcec3;logger[_0x1133a6('0x3b')](_0x1133a6('0x36'),_0x4156cd[_0x1133a6('0x15')]);const _0x51e3a4=conferenceValidation[_0x1133a6('0x3c')](_0x4156cd[_0x1133a6('0x15')]);if(_0x51e3a4[_0x1133a6('0xa')]>0x0)return _0x3af0c8['status'](0x190)[_0x1133a6('0x2d')](_0x51e3a4);const _0x4d71fe=_0x4156cd[_0x1133a6('0x15')]['userId'];return getAgent(_0x4d71fe)[_0x1133a6('0x1b')](function(_0x4b1c30){const _0x2806c8=_0x1133a6;return logger['info'](_0x2806c8('0x39'),_0x4b1c30[_0x2806c8('0x1e')]),emit(util[_0x2806c8('0x33')](_0x2806c8('0x23'),_0x4b1c30[_0x2806c8('0x1e')]),'webbar:conference'),_0x3af0c8[_0x2806c8('0x3')](0xc8)[_0x2806c8('0x2d')]({'error':![],'message':_0x2806c8('0x2e')});})['catch'](handleError(_0x3af0c8));},exports['transfer']=function(_0x5a59f4,_0x2efe1b){const _0x1b4923=_0x2dcec3;logger[_0x1b4923('0x3b')]('transfer\x20fired:',_0x5a59f4[_0x1b4923('0x15')]);const _0x4141cf=transferValidation[_0x1b4923('0x3c')](_0x5a59f4[_0x1b4923('0x15')]);if(_0x4141cf['length']>0x0)return _0x2efe1b['status'](0x190)[_0x1b4923('0x2d')](_0x4141cf);const _0x177df3=_0x5a59f4[_0x1b4923('0x15')][_0x1b4923('0xf')],_0x10a833=_0x5a59f4[_0x1b4923('0x15')][_0x1b4923('0x5')],_0x3c74ee=_0x5a59f4['body'][_0x1b4923('0x13')];return getAgent(_0x177df3)[_0x1b4923('0x1b')](function(_0x25e1ad){const _0x3c28f0=_0x1b4923;return logger[_0x3c28f0('0x3b')](_0x3c28f0('0x39'),_0x25e1ad['name']),emit(util[_0x3c28f0('0x33')]('user:%s',_0x25e1ad[_0x3c28f0('0x1e')]),_0x3c28f0('0x25'),{'sessionId':_0x10a833,'transferNumber':_0x3c74ee}),_0x2efe1b[_0x3c28f0('0x3')](0xc8)[_0x3c28f0('0x2d')]({'error':![],'message':_0x3c28f0('0xe')});})['catch'](handleError(_0x2efe1b));};