0155cd4d96f379b38c51e77c47f2b38a0e73e006
[motion2.git] / server / api / user / user.rpc.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 _0xe4fb=['mobile','phone','loginInPause','agent','../../config/license/util','agents','Maximum\x20login\x20has\x20been\x20reached','getVoiceQueues','UserVoiceQueue.penalty','merge','callysquare','concat','util','moment','bluebird','ioredis','../../mysqldb','../../config/utils','../../config/logger','../../config/environment','redis','defaults','localhost','socket.io-emitter','./user.socket','register','GetUser','User','findAll','options','raw','where','attributes','include','map','model','then','info','debug','error','message','ShowUser','find','stringify','PauseUser','name','role','internal','interface','format','User\x20with\x20id\x20%s\x20not\x20found','PAUSE','length','getChannels','forEach','push','isNil','SIP/%s','body','type','DEFAULT\x20PAUSE','uniqueid','MemberReport','bulkCreate','update','YYYY-MM-DD\x20HH:mm:ss','catch','UnpauseUser','resolve','channel','isValidChannel','Channel\x20parameter\x20%s\x20is\x20invalid','findOne','online','mailPause','chatPause','openchannelPause','smsPause','whatsappPause','lastPauseAt','params','unpause','LogoutUser','UserVoiceQueueRt','destroy','all','LoginUser'];(function(_0x3b81d4,_0x2e3c44){var _0x7337b2=function(_0x52201c){while(--_0x52201c){_0x3b81d4['push'](_0x3b81d4['shift']());}};_0x7337b2(++_0x2e3c44);}(_0xe4fb,0xba));var _0xbe4f=function(_0x3ab51d,_0x2fa01d){_0x3ab51d=_0x3ab51d-0x0;var _0x29a04e=_0xe4fb[_0x3ab51d];return _0x29a04e;};'use strict';var _=require('lodash');var util=require(_0xbe4f('0x0'));var moment=require(_0xbe4f('0x1'));var BPromise=require(_0xbe4f('0x2'));var Redis=require(_0xbe4f('0x3'));var db=require(_0xbe4f('0x4'))['db'];var utils=require(_0xbe4f('0x5'));var logger=require(_0xbe4f('0x6'))('rpc');var config=require(_0xbe4f('0x7'));config[_0xbe4f('0x8')]=_[_0xbe4f('0x9')](config[_0xbe4f('0x8')],{'host':_0xbe4f('0xa'),'port':0x18eb});var socket=require(_0xbe4f('0xb'))(new Redis(config[_0xbe4f('0x8')]));require(_0xbe4f('0xc'))[_0xbe4f('0xd')](socket);exports[_0xbe4f('0xe')]=function(_0x730a0c){var _0x357e61=this;return new Promise(function(_0x18e53b,_0x5630ab){return db[_0xbe4f('0xf')][_0xbe4f('0x10')]({'raw':_0x730a0c[_0xbe4f('0x11')]?_0x730a0c[_0xbe4f('0x11')][_0xbe4f('0x12')]===undefined?!![]:![]:!![],'where':_0x730a0c[_0xbe4f('0x11')]?_0x730a0c['options'][_0xbe4f('0x13')]||null:null,'attributes':_0x730a0c[_0xbe4f('0x11')]?_0x730a0c[_0xbe4f('0x11')][_0xbe4f('0x14')]||null:null,'limit':_0x730a0c[_0xbe4f('0x11')]?_0x730a0c['options']['limit']||null:null,'include':_0x730a0c['options']?_0x730a0c['options'][_0xbe4f('0x15')]?_[_0xbe4f('0x16')](_0x730a0c[_0xbe4f('0x11')]['include'],function(_0x247c0d){return{'model':db[_0x247c0d[_0xbe4f('0x17')]],'as':_0x247c0d['as'],'attributes':_0x247c0d[_0xbe4f('0x14')],'include':_0x247c0d[_0xbe4f('0x15')]?_[_0xbe4f('0x16')](_0x247c0d['include'],function(_0x3e0319){return{'model':db[_0x3e0319[_0xbe4f('0x17')]],'as':_0x3e0319['as'],'attributes':_0x3e0319[_0xbe4f('0x14')],'include':_0x3e0319[_0xbe4f('0x15')]?_[_0xbe4f('0x16')](_0x3e0319[_0xbe4f('0x15')],function(_0x6306dd){return{'model':db[_0x6306dd[_0xbe4f('0x17')]],'as':_0x6306dd['as'],'attributes':_0x6306dd[_0xbe4f('0x14')]};}):[]};}):[]};}):[]:[]})[_0xbe4f('0x18')](function(_0x211413){logger[_0xbe4f('0x19')](_0xbe4f('0xe'),_0x730a0c);logger[_0xbe4f('0x1a')](_0xbe4f('0xe'),_0x730a0c,JSON['stringify'](_0x211413));_0x18e53b(_0x211413);})['catch'](function(_0x12bae5){logger[_0xbe4f('0x1b')](_0xbe4f('0xe'),_0x12bae5[_0xbe4f('0x1c')],_0x730a0c);_0x5630ab(_0x357e61[_0xbe4f('0x1b')](0x1f4,_0x12bae5['message']));});});};exports[_0xbe4f('0x1d')]=function(_0x228575){var _0x46857d=this;return new Promise(function(_0x5dd582,_0x5308ef){return db[_0xbe4f('0xf')][_0xbe4f('0x1e')]({'raw':_0x228575['options']?_0x228575[_0xbe4f('0x11')][_0xbe4f('0x12')]===undefined?!![]:![]:!![],'where':_0x228575[_0xbe4f('0x11')]?_0x228575[_0xbe4f('0x11')][_0xbe4f('0x13')]||null:null,'attributes':_0x228575[_0xbe4f('0x11')]?_0x228575[_0xbe4f('0x11')][_0xbe4f('0x14')]||null:null,'include':_0x228575[_0xbe4f('0x11')]?_0x228575['options']['include']?_['map'](_0x228575['options'][_0xbe4f('0x15')],function(_0x607187){return{'model':db[_0x607187[_0xbe4f('0x17')]],'as':_0x607187['as'],'attributes':_0x607187[_0xbe4f('0x14')],'include':_0x607187[_0xbe4f('0x15')]?_[_0xbe4f('0x16')](_0x607187[_0xbe4f('0x15')],function(_0x64f1a2){return{'model':db[_0x64f1a2[_0xbe4f('0x17')]],'as':_0x64f1a2['as'],'attributes':_0x64f1a2['attributes'],'include':_0x64f1a2[_0xbe4f('0x15')]?_[_0xbe4f('0x16')](_0x64f1a2[_0xbe4f('0x15')],function(_0x5b0c0e){return{'model':db[_0x5b0c0e[_0xbe4f('0x17')]],'as':_0x5b0c0e['as'],'attributes':_0x5b0c0e[_0xbe4f('0x14')]};}):[]};}):[]};}):[]:[]})[_0xbe4f('0x18')](function(_0x3597b4){logger[_0xbe4f('0x19')]('ShowUser',_0x228575);logger[_0xbe4f('0x1a')](_0xbe4f('0x1d'),_0x228575,JSON[_0xbe4f('0x1f')](_0x3597b4));_0x5dd582(_0x3597b4);})['catch'](function(_0x48e50f){logger['error'](_0xbe4f('0x1d'),_0x48e50f[_0xbe4f('0x1c')],_0x228575);_0x5308ef(_0x46857d[_0xbe4f('0x1b')](0x1f4,_0x48e50f[_0xbe4f('0x1c')]));});});};exports[_0xbe4f('0x20')]=function(_0x4c2084){var _0x339179;return db[_0xbe4f('0xf')][_0xbe4f('0x1e')]({'where':_0x4c2084[_0xbe4f('0x11')]['where']||{},'attributes':['id',_0xbe4f('0x21'),_0xbe4f('0x22'),_0xbe4f('0x23'),_0xbe4f('0x24')]})['then'](function(_0x54872a){if(!_0x54872a){throw new Error(util[_0xbe4f('0x25')](_0xbe4f('0x26'),_0x4c2084['params']['id']));}_0x339179=_0x54872a;return db['UserVoiceQueueRt']['update']({'paused':0x1},{'where':{'UserId':_0x339179['id']},'individualHooks':!![]});})['then'](function(){return db['MemberReport'][_0xbe4f('0x10')]({'where':{'membername':_0x339179[_0xbe4f('0x21')],'type':_0xbe4f('0x27'),'exitAt':null}});})[_0xbe4f('0x18')](function(_0x2db4bd){if(_0x2db4bd&&_0x2db4bd[_0xbe4f('0x28')]){var _0x52854b=moment()[_0xbe4f('0x25')]('YYYY-MM-DD\x20HH:mm:ss');for(var _0x243335=0x0,_0x2bf83b=_0x2db4bd[_0xbe4f('0x28')];_0x243335<_0x2bf83b;_0x243335++){_0x2db4bd[_0x243335]['updateAttributes']({'exitAt':_0x52854b});}}})[_0xbe4f('0x18')](function(){var _0x9478b1=[];var _0x4aeb8b=utils[_0xbe4f('0x29')]();_0x4aeb8b[_0xbe4f('0x2a')](function(_0x257268){_0x9478b1[_0xbe4f('0x2b')]({'channel':_0x257268,'membername':_0x339179['name'],'interface':_[_0xbe4f('0x2c')](_0x339179[_0xbe4f('0x24')])?util[_0xbe4f('0x25')](_0xbe4f('0x2d'),_0x339179['name']):_0x339179[_0xbe4f('0x24')],'type':_0xbe4f('0x27'),'enterAt':moment()[_0xbe4f('0x25')]('YYYY-MM-DD\x20HH:mm:ss'),'data1':_0x4c2084[_0xbe4f('0x2e')][_0xbe4f('0x2f')]||_0xbe4f('0x30'),'role':_0x339179[_0xbe4f('0x22')],'internal':_0x339179[_0xbe4f('0x23')],'uniqueid':_0x4c2084[_0xbe4f('0x2e')][_0xbe4f('0x31')]||null});});return db[_0xbe4f('0x32')][_0xbe4f('0x33')](_0x9478b1,{'individualHooks':!![]});})[_0xbe4f('0x18')](function(){return _0x339179[_0xbe4f('0x34')]({'voicePause':!![],'mailPause':!![],'chatPause':!![],'faxPause':!![],'smsPause':!![],'openchannelPause':!![],'whatsappPause':!![],'pauseType':_0x4c2084[_0xbe4f('0x2e')][_0xbe4f('0x2f')]||_0xbe4f('0x30'),'lastPauseAt':moment()['format'](_0xbe4f('0x35'))});})[_0xbe4f('0x36')](function(_0x4965b9){throw _0x4965b9;});};exports[_0xbe4f('0x37')]=function(_0x5ae9f1){return Promise[_0xbe4f('0x38')]()[_0xbe4f('0x18')](function(){if(_0x5ae9f1['body'][_0xbe4f('0x39')]&&!utils[_0xbe4f('0x3a')](_0x5ae9f1[_0xbe4f('0x2e')][_0xbe4f('0x39')])){throw new Error(util[_0xbe4f('0x25')](_0xbe4f('0x3b'),_0x5ae9f1[_0xbe4f('0x2e')][_0xbe4f('0x39')]));}return db[_0xbe4f('0xf')][_0xbe4f('0x3c')]({'where':_0x5ae9f1[_0xbe4f('0x11')][_0xbe4f('0x13')]||{},'attributes':['id','name',_0xbe4f('0x22'),_0xbe4f('0x23'),_0xbe4f('0x24'),_0xbe4f('0x3d'),'voicePause',_0xbe4f('0x3e'),_0xbe4f('0x3f'),'faxPause',_0xbe4f('0x40'),_0xbe4f('0x41'),_0xbe4f('0x42'),'pauseType',_0xbe4f('0x43')]});})['then'](function(_0x5b7198){if(!_0x5b7198){throw new Error(util[_0xbe4f('0x25')](_0xbe4f('0x26'),_0x5ae9f1[_0xbe4f('0x44')]['id']));}return _0x5b7198[_0xbe4f('0x45')](_0x5ae9f1[_0xbe4f('0x2e')]['channel'],'system');})[_0xbe4f('0x36')](function(_0x12cd29){throw _0x12cd29;});};exports[_0xbe4f('0x46')]=function(_0x519c44){var _0x4a4260=this;return new Promise(function(_0x3405c4,_0x421721){var _0x4ef110;return db['User'][_0xbe4f('0x3c')]({'where':_0x519c44['options'][_0xbe4f('0x13')]||{},'attributes':['id',_0xbe4f('0x21')]})[_0xbe4f('0x18')](function(_0x41efe1){if(_0x41efe1){_0x4ef110=_0x41efe1;return db[_0xbe4f('0x47')][_0xbe4f('0x48')]({'where':{'membername':_0x4ef110[_0xbe4f('0x21')]},'individualHooks':!![]});}})[_0xbe4f('0x18')](function(){if(_0x4ef110){return db[_0xbe4f('0x32')]['findAll']({'where':{'membername':_0x4ef110['name'],'exitAt':null}});}})[_0xbe4f('0x18')](function(_0x124ee1){if(_0x4ef110){if(_0x124ee1&&_0x124ee1[_0xbe4f('0x28')]){var _0x37fa99=[];_0x124ee1['forEach'](function(_0x721eb7){_0x37fa99[_0xbe4f('0x2b')](_0x721eb7[_0xbe4f('0x34')]({'exitAt':moment()[_0xbe4f('0x25')]('YYYY-MM-DD\x20HH:mm:ss')}));});return BPromise[_0xbe4f('0x49')](_0x37fa99);}}})[_0xbe4f('0x18')](function(){if(_0x4ef110){return _0x4ef110['update']({'online':![],'voicePause':![],'mailPause':![],'chatPause':![],'faxPause':![],'smsPause':![],'openchannelPause':![]});}})['then'](function(_0x44694d){_0x3405c4(_0x44694d);})[_0xbe4f('0x36')](function(_0x232641){_0x421721(_0x4a4260[_0xbe4f('0x1b')](0x1f4,_0x232641['message']));});});};exports[_0xbe4f('0x4a')]=function(_0x47f018){var _0x39a34a=this;return new Promise(function(_0x20dae5,_0x445df7){var _0x3bbe90;var _0x59fc57;var _0x493445;var _0x561cf7;return db[_0xbe4f('0xf')]['findOne']({'where':_0x47f018[_0xbe4f('0x11')][_0xbe4f('0x13')]||{},'attributes':['id',_0xbe4f('0x21'),'role',_0xbe4f('0x4b'),_0xbe4f('0x4c'),_0xbe4f('0x23'),_0xbe4f('0x4d'),_0xbe4f('0x24')]})[_0xbe4f('0x18')](function(_0x3cee7b){if(_0x3cee7b){_0x3bbe90=_0x3cee7b;_0x561cf7=_0x47f018[_0xbe4f('0x2e')][_0xbe4f('0x24')]?_0x47f018[_0xbe4f('0x2e')]['interface']:util[_0xbe4f('0x25')](_0xbe4f('0x2d'),_0x3bbe90[_0xbe4f('0x21')]);return db['User']['count']({'where':{'role':_0xbe4f('0x4e'),'online':!![],'id':{'$ne':_0x3bbe90['id']}}});}})[_0xbe4f('0x18')](function(_0x37b28a){if(_0x37b28a){_0x493445=_0x37b28a;return require(_0xbe4f('0x4f'))['getLicense']();}})[_0xbe4f('0x18')](function(_0x1e9381){if(_0x1e9381&&_0x1e9381['agents']&&_0x493445>=_0x1e9381[_0xbe4f('0x50')]){throw new Error(_0xbe4f('0x51'));}})[_0xbe4f('0x18')](function(){if(_0x3bbe90){return db[_0xbe4f('0x47')][_0xbe4f('0x48')]({'where':{'membername':_0x3bbe90[_0xbe4f('0x21')]},'individualHooks':!![]});}})[_0xbe4f('0x18')](function(){if(_0x3bbe90){return _0x3bbe90[_0xbe4f('0x52')]({'raw':!![]});}})[_0xbe4f('0x18')](function(_0x2f0e58){if(_0x3bbe90){if(_0x2f0e58){var _0x2c6458=[];_0x59fc57=_0x2f0e58;if(_0x59fc57[_0xbe4f('0x28')]){for(var _0x2291eb=0x0;_0x2291eb<_0x59fc57[_0xbe4f('0x28')];_0x2291eb++){_0x2c6458[_0xbe4f('0x2b')](db[_0xbe4f('0x47')]['upsert']({'membername':_0x3bbe90['name'],'UserId':_0x3bbe90['id'],'queue_name':_0x59fc57[_0x2291eb][_0xbe4f('0x21')],'VoiceQueueId':_0x59fc57[_0x2291eb]['id'],'interface':_0x561cf7,'paused':_0x3bbe90[_0xbe4f('0x4d')]||![],'penalty':_0x59fc57[_0x2291eb][_0xbe4f('0x53')]||0x0}));}return BPromise[_0xbe4f('0x49')](_0x2c6458);}}}})[_0xbe4f('0x18')](function(){if(_0x3bbe90){return db[_0xbe4f('0x32')][_0xbe4f('0x10')]({'where':{'membername':_0x3bbe90[_0xbe4f('0x21')],'exitAt':null}});}})['then'](function(_0x5ad08a){if(_0x3bbe90){if(_0x5ad08a&&_0x5ad08a[_0xbe4f('0x28')]){var _0x3c4466=[];_0x5ad08a[_0xbe4f('0x2a')](function(_0x4b3086){_0x3c4466[_0xbe4f('0x2b')](_0x4b3086[_0xbe4f('0x34')]({'exitAt':moment()[_0xbe4f('0x25')](_0xbe4f('0x35'))}));});return BPromise['all'](_0x3c4466);}}})[_0xbe4f('0x18')](function(){if(_0x3bbe90){var _0x2a2a05=[];var _0x563532=[];var _0x39e4bb=utils[_0xbe4f('0x29')]();var _0x409dc3={'membername':_0x3bbe90[_0xbe4f('0x21')],'interface':_0x561cf7,'enterAt':moment()[_0xbe4f('0x25')](_0xbe4f('0x35')),'role':_0x3bbe90[_0xbe4f('0x22')],'internal':_0x3bbe90[_0xbe4f('0x23')]};_0x39e4bb['forEach'](function(_0x4d1fbd){_0x2a2a05['push'](_[_0xbe4f('0x54')]({'channel':_0x4d1fbd,'type':'LOGIN','data1':_0xbe4f('0x55'),'data2':_0x561cf7},_0x409dc3));if(_0x3bbe90[_0xbe4f('0x4d')]){_0x563532[_0xbe4f('0x2b')](_['merge']({'channel':_0x4d1fbd,'type':_0xbe4f('0x27'),'data1':'LOGININPAUSE'},_0x409dc3));}});return db[_0xbe4f('0x32')][_0xbe4f('0x33')](_0x2a2a05[_0xbe4f('0x56')](_0x563532),{'individualHooks':!![]});}})[_0xbe4f('0x18')](function(){if(_0x3bbe90){return _0x3bbe90['update']({'online':!![],'lastLoginAt':moment()[_0xbe4f('0x25')]('YYYY-MM-DD\x20HH:mm:ss'),'voicePause':_0x3bbe90['loginInPause']||![],'mailPause':_0x3bbe90[_0xbe4f('0x4d')]||![],'chatPause':_0x3bbe90[_0xbe4f('0x4d')]||![],'faxPause':_0x3bbe90[_0xbe4f('0x4d')]||![],'smsPause':_0x3bbe90[_0xbe4f('0x4d')]||![],'openchannelPause':_0x3bbe90[_0xbe4f('0x4d')]||![],'pauseType':_0x3bbe90[_0xbe4f('0x4d')]?'LOGININPAUSE':null,'lastPauseAt':moment()['format'](_0xbe4f('0x35')),'interface':_0x561cf7});}})[_0xbe4f('0x18')](function(_0x2ced79){_0x20dae5(_0x2ced79);})['catch'](function(_0x41e455){_0x445df7(_0x39a34a[_0xbe4f('0x1b')](0x1f4,_0x41e455[_0xbe4f('0x1c')]));});});};