035393e08f0c03bade07dcbf5166e332a49c4761
[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 _0x389c=['options','raw','where','attributes','include','map','model','info','ShowUser','find','PauseUser','name','role','internal','interface','UserVoiceQueueRt','update','MemberReport','findAll','PAUSE','length','YYYY-MM-DD\x20HH:mm:ss','updateAttributes','getChannels','forEach','isNil','format','SIP/%s','body','type','DEFAULT\x20PAUSE','uniqueid','bulkCreate','UnpauseUser','findOne','channel','Unknown\x20channel','voice','mail','chat','system','set','push','all','LogoutUser','destroy','LoginUser','mobile','phone','loginInPause','count','agent','../../config/license/util','agents','Maximum\x20login\x20has\x20been\x20reached','getVoiceQueues','UserVoiceQueue.penalty','merge','LOGIN','LOGININPAUSE','lodash','util','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/environment','jayson/promise','http','redis','socket.io-emitter','./user.socket','then','request\x20sent','debug','User,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','User,\x20%s,\x20%s','GetUser','User'];(function(_0x819464,_0x46fc91){var _0x49dcc0=function(_0x36b2b2){while(--_0x36b2b2){_0x819464['push'](_0x819464['shift']());}};_0x49dcc0(++_0x46fc91);}(_0x389c,0x13e));var _0xc389=function(_0x1f25d4,_0x2c555f){_0x1f25d4=_0x1f25d4-0x0;var _0x4da8a2=_0x389c[_0x1f25d4];return _0x4da8a2;};'use strict';var _=require(_0xc389('0x0'));var util=require(_0xc389('0x1'));var moment=require('moment');var BPromise=require(_0xc389('0x2'));var rs=require(_0xc389('0x3'));var fs=require('fs');var Redis=require(_0xc389('0x4'));var db=require(_0xc389('0x5'))['db'];var utils=require(_0xc389('0x6'));var logger=require('../../config/logger')('rpc');var config=require(_0xc389('0x7'));var jayson=require(_0xc389('0x8'));var client=jayson['client'][_0xc389('0x9')]({'port':0x232a});config[_0xc389('0xa')]=_['defaults'](config[_0xc389('0xa')],{'host':'localhost','port':0x18eb});var socket=require(_0xc389('0xb'))(new Redis(config['redis']));require(_0xc389('0xc'))['register'](socket);function respondWithRpcPromise(_0x28e9b0,_0x3ce5f3,_0x2e8363){return new BPromise(function(_0x52783b,_0x425dc2){return client['request'](_0x28e9b0,_0x2e8363)[_0xc389('0xd')](function(_0x120572){logger['info']('User,\x20%s,\x20%s',_0x3ce5f3,_0xc389('0xe'));logger[_0xc389('0xf')](_0xc389('0x10'),_0x3ce5f3,_0xc389('0xe'),JSON[_0xc389('0x11')](_0x120572));if(_0x120572[_0xc389('0x12')]){if(_0x120572[_0xc389('0x12')][_0xc389('0x13')]===0x1f4){logger[_0xc389('0x12')]('User,\x20%s,\x20%s',_0x3ce5f3,_0x120572['error'][_0xc389('0x14')]);return _0x425dc2(_0x120572[_0xc389('0x12')]['message']);}logger[_0xc389('0x12')]('User,\x20%s,\x20%s',_0x3ce5f3,_0x120572[_0xc389('0x12')][_0xc389('0x14')]);return _0x52783b(_0x120572[_0xc389('0x12')][_0xc389('0x14')]);}else{logger['info']('User,\x20%s,\x20%s',_0x3ce5f3,_0xc389('0xe'));_0x52783b(_0x120572[_0xc389('0x15')][_0xc389('0x14')]);}})[_0xc389('0x16')](function(_0x465d8a){logger['error'](_0xc389('0x17'),_0x3ce5f3,_0x465d8a);_0x425dc2(_0x465d8a);});});}exports[_0xc389('0x18')]=function(_0x496307){var _0x49ab9f=this;return new Promise(function(_0x1d3621,_0x264596){return db[_0xc389('0x19')]['findAll']({'raw':_0x496307[_0xc389('0x1a')]?_0x496307[_0xc389('0x1a')][_0xc389('0x1b')]===undefined?!![]:![]:!![],'where':_0x496307[_0xc389('0x1a')]?_0x496307['options'][_0xc389('0x1c')]||null:null,'attributes':_0x496307[_0xc389('0x1a')]?_0x496307['options'][_0xc389('0x1d')]||null:null,'limit':_0x496307['options']?_0x496307[_0xc389('0x1a')]['limit']||null:null,'include':_0x496307['options']?_0x496307[_0xc389('0x1a')][_0xc389('0x1e')]?_['map'](_0x496307[_0xc389('0x1a')][_0xc389('0x1e')],function(_0x1bc193){return{'model':db[_0x1bc193['model']],'as':_0x1bc193['as'],'attributes':_0x1bc193[_0xc389('0x1d')],'include':_0x1bc193[_0xc389('0x1e')]?_[_0xc389('0x1f')](_0x1bc193['include'],function(_0x2a94d6){return{'model':db[_0x2a94d6['model']],'as':_0x2a94d6['as'],'attributes':_0x2a94d6['attributes'],'include':_0x2a94d6[_0xc389('0x1e')]?_[_0xc389('0x1f')](_0x2a94d6['include'],function(_0x5375a5){return{'model':db[_0x5375a5[_0xc389('0x20')]],'as':_0x5375a5['as'],'attributes':_0x5375a5[_0xc389('0x1d')]};}):[]};}):[]};}):[]:[]})[_0xc389('0xd')](function(_0x1b0526){logger[_0xc389('0x21')](_0xc389('0x18'),_0x496307);logger[_0xc389('0xf')](_0xc389('0x18'),_0x496307,JSON['stringify'](_0x1b0526));_0x1d3621(_0x1b0526);})[_0xc389('0x16')](function(_0x34e648){logger['error']('GetUser',_0x34e648[_0xc389('0x14')],_0x496307);_0x264596(_0x49ab9f['error'](0x1f4,_0x34e648[_0xc389('0x14')]));});});};exports[_0xc389('0x22')]=function(_0x41e76f){var _0x12b63e=this;return new Promise(function(_0x59538b,_0x2c8c23){return db[_0xc389('0x19')][_0xc389('0x23')]({'raw':_0x41e76f[_0xc389('0x1a')]?_0x41e76f[_0xc389('0x1a')][_0xc389('0x1b')]===undefined?!![]:![]:!![],'where':_0x41e76f[_0xc389('0x1a')]?_0x41e76f[_0xc389('0x1a')][_0xc389('0x1c')]||null:null,'attributes':_0x41e76f[_0xc389('0x1a')]?_0x41e76f[_0xc389('0x1a')][_0xc389('0x1d')]||null:null,'include':_0x41e76f['options']?_0x41e76f[_0xc389('0x1a')][_0xc389('0x1e')]?_['map'](_0x41e76f['options'][_0xc389('0x1e')],function(_0x1d97fa){return{'model':db[_0x1d97fa[_0xc389('0x20')]],'as':_0x1d97fa['as'],'attributes':_0x1d97fa[_0xc389('0x1d')],'include':_0x1d97fa[_0xc389('0x1e')]?_[_0xc389('0x1f')](_0x1d97fa[_0xc389('0x1e')],function(_0x2391df){return{'model':db[_0x2391df[_0xc389('0x20')]],'as':_0x2391df['as'],'attributes':_0x2391df[_0xc389('0x1d')],'include':_0x2391df[_0xc389('0x1e')]?_[_0xc389('0x1f')](_0x2391df[_0xc389('0x1e')],function(_0x48d63c){return{'model':db[_0x48d63c['model']],'as':_0x48d63c['as'],'attributes':_0x48d63c[_0xc389('0x1d')]};}):[]};}):[]};}):[]:[]})[_0xc389('0xd')](function(_0x3135f7){logger['info']('ShowUser',_0x41e76f);logger[_0xc389('0xf')](_0xc389('0x22'),_0x41e76f,JSON['stringify'](_0x3135f7));_0x59538b(_0x3135f7);})[_0xc389('0x16')](function(_0x50e297){logger[_0xc389('0x12')](_0xc389('0x22'),_0x50e297[_0xc389('0x14')],_0x41e76f);_0x2c8c23(_0x12b63e[_0xc389('0x12')](0x1f4,_0x50e297[_0xc389('0x14')]));});});};exports[_0xc389('0x24')]=function(_0xc98018){var _0x3ca43c=this;return new Promise(function(_0x2fc57a,_0x2aca32){var _0x49c991;return db[_0xc389('0x19')][_0xc389('0x23')]({'where':_0xc98018[_0xc389('0x1a')][_0xc389('0x1c')]||{},'attributes':['id',_0xc389('0x25'),_0xc389('0x26'),_0xc389('0x27'),_0xc389('0x28')]})[_0xc389('0xd')](function(_0x12a6e9){if(_0x12a6e9){_0x49c991=_0x12a6e9;return db[_0xc389('0x29')][_0xc389('0x2a')]({'paused':0x1},{'where':{'UserId':_0x49c991['id']},'individualHooks':!![]});}})['then'](function(){if(_0x49c991){return db[_0xc389('0x2b')][_0xc389('0x2c')]({'where':{'membername':_0x49c991[_0xc389('0x25')],'type':_0xc389('0x2d'),'exitAt':null}});}})['then'](function(_0x53616a){if(_0x49c991){if(_0x53616a&&_0x53616a[_0xc389('0x2e')]){var _0x495193=moment()['format'](_0xc389('0x2f'));for(var _0x34b3b2=0x0,_0x498bfd=_0x53616a[_0xc389('0x2e')];_0x34b3b2<_0x498bfd;_0x34b3b2++){_0x53616a[_0x34b3b2][_0xc389('0x30')]({'exitAt':_0x495193});}}}})[_0xc389('0xd')](function(){if(_0x49c991){var _0x4ce4e9=[];var _0x336566=utils[_0xc389('0x31')]();_0x336566[_0xc389('0x32')](function(_0x3d3d39){_0x4ce4e9['push']({'channel':_0x3d3d39,'membername':_0x49c991[_0xc389('0x25')],'interface':_[_0xc389('0x33')](_0x49c991[_0xc389('0x28')])?util[_0xc389('0x34')](_0xc389('0x35'),_0x49c991[_0xc389('0x25')]):_0x49c991[_0xc389('0x28')],'type':'PAUSE','enterAt':moment()[_0xc389('0x34')](_0xc389('0x2f')),'data1':_0xc98018[_0xc389('0x36')][_0xc389('0x37')]||_0xc389('0x38'),'role':_0x49c991['role'],'internal':_0x49c991[_0xc389('0x27')],'uniqueid':_0xc98018[_0xc389('0x36')][_0xc389('0x39')]||null});});return db[_0xc389('0x2b')][_0xc389('0x3a')](_0x4ce4e9,{'individualHooks':!![]});}})[_0xc389('0xd')](function(){if(_0x49c991){return _0x49c991['update']({'voicePause':!![],'mailPause':!![],'chatPause':!![],'faxPause':!![],'smsPause':!![],'openchannelPause':!![],'pauseType':_0xc98018[_0xc389('0x36')][_0xc389('0x37')]||_0xc389('0x38'),'lastPauseAt':moment()[_0xc389('0x34')](_0xc389('0x2f'))});}})[_0xc389('0xd')](function(_0x28eca5){_0x2fc57a(_0x28eca5);})[_0xc389('0x16')](function(_0x2e2809){_0x2aca32(_0x3ca43c[_0xc389('0x12')](0x1f4,_0x2e2809['message']));});});};exports[_0xc389('0x3b')]=function(_0x96968){var _0xccbf12=this;return new Promise(function(_0x53fa98,_0x2429cf){var _0x1b83cd;return db[_0xc389('0x19')][_0xc389('0x3c')]({'where':_0x96968[_0xc389('0x1a')][_0xc389('0x1c')]||{},'attributes':['id',_0xc389('0x25')]})[_0xc389('0xd')](function(_0x34e8e1){if(_0x34e8e1){_0x1b83cd=_0x34e8e1;if(_0x96968[_0xc389('0x36')][_0xc389('0x3d')]&&!utils['isValidChannel'](_0x96968[_0xc389('0x36')][_0xc389('0x3d')])){throw new Error(_0xc389('0x3e'));}switch(_0x96968[_0xc389('0x36')]['channel']){case _0xc389('0x3f'):return db[_0xc389('0x29')][_0xc389('0x2a')]({'paused':0x0},{'where':{'UserId':_0x1b83cd['id']}})['then'](function(){return db[_0xc389('0x2b')][_0xc389('0x23')]({'where':{'channel':_0x96968['body'][_0xc389('0x3d')],'membername':_0x1b83cd[_0xc389('0x25')],'type':_0xc389('0x2d'),'exitAt':null}});})['then'](function(_0x2ef761){if(_0x2ef761){return _0x2ef761['update']({'exitAt':moment()[_0xc389('0x34')](_0xc389('0x2f')),'data2':'system'},{'individualHooks':!![]});}return null;})[_0xc389('0xd')](function(){return _0x1b83cd[_0xc389('0x2a')]({'voicePause':![]});});case _0xc389('0x40'):case _0xc389('0x41'):case'fax':case'sms':case'openchannel':return db[_0xc389('0x2b')][_0xc389('0x23')]({'where':{'channel':_0x96968['body'][_0xc389('0x3d')],'membername':_0x1b83cd[_0xc389('0x25')],'type':_0xc389('0x2d'),'exitAt':null}})[_0xc389('0xd')](function(_0x134a83){return _0x134a83[_0xc389('0x2a')]({'exitAt':moment()[_0xc389('0x34')](_0xc389('0x2f')),'data2':_0xc389('0x42')},{'individualHooks':!![]});})['then'](function(){var _0x451af4={};_[_0xc389('0x43')](_0x451af4,util[_0xc389('0x34')]('%s%s',_0x96968['body'][_0xc389('0x3d')],'Pause'),![]);return _0x1b83cd[_0xc389('0x2a')](_0x451af4);});default:return db[_0xc389('0x29')][_0xc389('0x2a')]({'paused':0x0},{'where':{'UserId':_0x1b83cd['id']}})[_0xc389('0xd')](function(){return db[_0xc389('0x2b')][_0xc389('0x2c')]({'where':{'membername':_0x1b83cd[_0xc389('0x25')],'type':_0xc389('0x2d'),'exitAt':null}});})[_0xc389('0xd')](function(_0x22e9ef){var _0x583ef6=[];_0x22e9ef[_0xc389('0x32')](function(_0x46fdc1){_0x583ef6[_0xc389('0x44')](_0x46fdc1[_0xc389('0x2a')]({'exitAt':moment()[_0xc389('0x34')](_0xc389('0x2f')),'data2':_0xc389('0x42')}));});return BPromise[_0xc389('0x45')](_0x583ef6);})[_0xc389('0xd')](function(){return _0x1b83cd[_0xc389('0x2a')]({'voicePause':![],'mailPause':![],'chatPause':![],'faxPause':![],'smsPause':![],'openchannelPause':![]});});}}})[_0xc389('0xd')](function(_0xd74bd0){_0x53fa98(_0xd74bd0);})[_0xc389('0x16')](function(_0x3903a2){_0x2429cf(_0xccbf12[_0xc389('0x12')](0x1f4,_0x3903a2[_0xc389('0x14')]));});});};exports[_0xc389('0x46')]=function(_0x2e01b8){var _0x10a653=this;return new Promise(function(_0x378f63,_0x230c5a){var _0x282b6c;return db[_0xc389('0x19')]['findOne']({'where':_0x2e01b8['options'][_0xc389('0x1c')]||{},'attributes':['id',_0xc389('0x25')]})['then'](function(_0x4344a9){if(_0x4344a9){_0x282b6c=_0x4344a9;return db['UserVoiceQueueRt'][_0xc389('0x47')]({'where':{'membername':_0x282b6c[_0xc389('0x25')]},'individualHooks':!![]});}})[_0xc389('0xd')](function(){if(_0x282b6c){return db[_0xc389('0x2b')]['findAll']({'where':{'membername':_0x282b6c[_0xc389('0x25')],'exitAt':null}});}})[_0xc389('0xd')](function(_0x5c3fb3){if(_0x282b6c){if(_0x5c3fb3&&_0x5c3fb3[_0xc389('0x2e')]){var _0x2e071f=[];_0x5c3fb3[_0xc389('0x32')](function(_0x1dff8a){_0x2e071f[_0xc389('0x44')](_0x1dff8a[_0xc389('0x2a')]({'exitAt':moment()[_0xc389('0x34')](_0xc389('0x2f'))}));});return BPromise['all'](_0x2e071f);}}})[_0xc389('0xd')](function(){if(_0x282b6c){return _0x282b6c[_0xc389('0x2a')]({'online':![],'lastLoginAt':null,'voicePause':![],'mailPause':![],'chatPause':![],'faxPause':![],'smsPause':![],'openchannelPause':![]});}})[_0xc389('0xd')](function(_0x87c751){_0x378f63(_0x87c751);})[_0xc389('0x16')](function(_0x36179e){_0x230c5a(_0x10a653[_0xc389('0x12')](0x1f4,_0x36179e[_0xc389('0x14')]));});});};exports[_0xc389('0x48')]=function(_0x23ee50){var _0x23aaf6=this;return new Promise(function(_0x4e12be,_0x4e5c4a){var _0x44c73b;var _0x3b84d;var _0x49b1c8;var _0xabe0fe;return db[_0xc389('0x19')][_0xc389('0x3c')]({'where':_0x23ee50[_0xc389('0x1a')][_0xc389('0x1c')]||{},'attributes':['id',_0xc389('0x25'),'role',_0xc389('0x49'),_0xc389('0x4a'),'internal',_0xc389('0x4b'),_0xc389('0x28')]})[_0xc389('0xd')](function(_0x443fa7){if(_0x443fa7){_0x44c73b=_0x443fa7;_0xabe0fe=_0x23ee50[_0xc389('0x36')][_0xc389('0x28')]?_0x23ee50[_0xc389('0x36')][_0xc389('0x28')]:util['format'](_0xc389('0x35'),_0x44c73b[_0xc389('0x25')]);return db['User'][_0xc389('0x4c')]({'where':{'role':_0xc389('0x4d'),'online':!![],'id':{'$ne':_0x44c73b['id']}}});}})[_0xc389('0xd')](function(_0x5de2be){if(_0x5de2be){_0x49b1c8=_0x5de2be;return require(_0xc389('0x4e'))['getLicense']();}})[_0xc389('0xd')](function(_0x470320){if(_0x470320&&_0x470320[_0xc389('0x4f')]&&_0x49b1c8>=_0x470320[_0xc389('0x4f')]){throw new Error(_0xc389('0x50'));}})[_0xc389('0xd')](function(){if(_0x44c73b){return db[_0xc389('0x29')][_0xc389('0x47')]({'where':{'membername':_0x44c73b[_0xc389('0x25')]},'individualHooks':!![]});}})['then'](function(){if(_0x44c73b){return _0x44c73b[_0xc389('0x51')]({'raw':!![]});}})['then'](function(_0x3ac969){if(_0x44c73b){if(_0x3ac969){var _0x5271d4=[];_0x3b84d=_0x3ac969;if(_0x3b84d[_0xc389('0x2e')]){for(var _0x554a76=0x0;_0x554a76<_0x3b84d[_0xc389('0x2e')];_0x554a76++){_0x5271d4['push'](db['UserVoiceQueueRt']['upsert']({'membername':_0x44c73b[_0xc389('0x25')],'UserId':_0x44c73b['id'],'queue_name':_0x3b84d[_0x554a76][_0xc389('0x25')],'VoiceQueueId':_0x3b84d[_0x554a76]['id'],'interface':_0xabe0fe,'paused':_0x44c73b[_0xc389('0x4b')]||![],'penalty':_0x3b84d[_0x554a76][_0xc389('0x52')]||0x0}));}return BPromise[_0xc389('0x45')](_0x5271d4);}}}})[_0xc389('0xd')](function(){if(_0x44c73b){return db[_0xc389('0x2b')][_0xc389('0x2c')]({'where':{'membername':_0x44c73b[_0xc389('0x25')],'exitAt':null}});}})[_0xc389('0xd')](function(_0x38e499){if(_0x44c73b){if(_0x38e499&&_0x38e499[_0xc389('0x2e')]){var _0x2cbe3e=[];_0x38e499[_0xc389('0x32')](function(_0x39810e){_0x2cbe3e[_0xc389('0x44')](_0x39810e[_0xc389('0x2a')]({'exitAt':moment()['format'](_0xc389('0x2f'))}));});return BPromise[_0xc389('0x45')](_0x2cbe3e);}}})[_0xc389('0xd')](function(_0x8be62b){if(_0x44c73b){var _0x3c7448=[];var _0xd0e01b=[];var _0x30d7d6=utils[_0xc389('0x31')]();var _0x2f7a0a={'membername':_0x44c73b['name'],'interface':_0xabe0fe,'enterAt':moment()['format'](_0xc389('0x2f')),'role':_0x44c73b['role'],'internal':_0x44c73b[_0xc389('0x27')]};_0x30d7d6[_0xc389('0x32')](function(_0x2a9291){_0x3c7448[_0xc389('0x44')](_[_0xc389('0x53')]({'channel':_0x2a9291,'type':_0xc389('0x54'),'data1':'callysquare','data2':_0xabe0fe},_0x2f7a0a));if(_0x44c73b[_0xc389('0x4b')]){_0xd0e01b[_0xc389('0x44')](_[_0xc389('0x53')]({'channel':_0x2a9291,'type':_0xc389('0x2d'),'data1':'LOGININPAUSE'},_0x2f7a0a));}});return db['MemberReport'][_0xc389('0x3a')](_0x3c7448['concat'](_0xd0e01b),{'individualHooks':!![]});}})['then'](function(){if(_0x44c73b){return _0x44c73b[_0xc389('0x2a')]({'online':!![],'lastLoginAt':moment()['format']('YYYY-MM-DD\x20HH:mm:ss'),'voicePause':_0x44c73b[_0xc389('0x4b')]||![],'mailPause':_0x44c73b[_0xc389('0x4b')]||![],'chatPause':_0x44c73b[_0xc389('0x4b')]||![],'faxPause':_0x44c73b[_0xc389('0x4b')]||![],'smsPause':_0x44c73b[_0xc389('0x4b')]||![],'openchannelPause':_0x44c73b['loginInPause']||![],'pauseType':_0x44c73b[_0xc389('0x4b')]?_0xc389('0x55'):null,'lastPauseAt':moment()[_0xc389('0x34')](_0xc389('0x2f')),'interface':_0xabe0fe});}})['then'](function(_0x581b9f){_0x4e12be(_0x581b9f);})[_0xc389('0x16')](function(_0x52a1c1){_0x4e5c4a(_0x23aaf6['error'](0x1f4,_0x52a1c1[_0xc389('0x14')]));});});};