025cf97ce4b04d29eb9513ccefe65d226c8c0b7b
[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 _0x9d62=['then','info','User,\x20%s,\x20%s','request\x20sent','debug','User,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','GetUser','User','findAll','options','raw','attributes','limit','include','map','model','ShowUser','find','where','PauseUser','name','role','internal','interface','UserVoiceQueueRt','MemberReport','PAUSE','length','format','YYYY-MM-DD\x20HH:mm:ss','updateAttributes','getChannels','forEach','isNil','type','DEFAULT\x20PAUSE','uniqueid','bulkCreate','update','body','UnpauseUser','findOne','isValidChannel','channel','system','mail','chat','fax','sms','openchannel','whatsapp','set','%s%s','Pause','push','LogoutUser','destroy','LoginUser','mobile','phone','loginInPause','agent','../../config/license/util','getLicense','agents','Maximum\x20login\x20has\x20been\x20reached','upsert','UserVoiceQueue.penalty','all','merge','LOGIN','callysquare','LOGININPAUSE','lodash','util','moment','bluebird','randomstring','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','client','http','redis','defaults','localhost','./user.socket','register'];(function(_0x20637a,_0x2f0e4e){var _0x9d5fe5=function(_0x12b859){while(--_0x12b859){_0x20637a['push'](_0x20637a['shift']());}};_0x9d5fe5(++_0x2f0e4e);}(_0x9d62,0xaf));var _0x29d6=function(_0x1aa0d0,_0x3d5b9b){_0x1aa0d0=_0x1aa0d0-0x0;var _0x4d5b83=_0x9d62[_0x1aa0d0];return _0x4d5b83;};'use strict';var _=require(_0x29d6('0x0'));var util=require(_0x29d6('0x1'));var moment=require(_0x29d6('0x2'));var BPromise=require(_0x29d6('0x3'));var rs=require(_0x29d6('0x4'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0x29d6('0x5'))['db'];var utils=require(_0x29d6('0x6'));var logger=require(_0x29d6('0x7'))(_0x29d6('0x8'));var config=require(_0x29d6('0x9'));var jayson=require('jayson/promise');var client=jayson[_0x29d6('0xa')][_0x29d6('0xb')]({'port':0x232a});config[_0x29d6('0xc')]=_[_0x29d6('0xd')](config[_0x29d6('0xc')],{'host':_0x29d6('0xe'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x29d6('0xc')]));require(_0x29d6('0xf'))[_0x29d6('0x10')](socket);function respondWithRpcPromise(_0x1735f4,_0xc1970f,_0xa936a0){return new BPromise(function(_0x1f55a5,_0x1ab490){return client['request'](_0x1735f4,_0xa936a0)[_0x29d6('0x11')](function(_0x32e1da){logger[_0x29d6('0x12')](_0x29d6('0x13'),_0xc1970f,_0x29d6('0x14'));logger[_0x29d6('0x15')](_0x29d6('0x16'),_0xc1970f,'request\x20sent',JSON[_0x29d6('0x17')](_0x32e1da));if(_0x32e1da['error']){if(_0x32e1da[_0x29d6('0x18')][_0x29d6('0x19')]===0x1f4){logger[_0x29d6('0x18')](_0x29d6('0x13'),_0xc1970f,_0x32e1da['error']['message']);return _0x1ab490(_0x32e1da['error'][_0x29d6('0x1a')]);}logger[_0x29d6('0x18')](_0x29d6('0x13'),_0xc1970f,_0x32e1da[_0x29d6('0x18')][_0x29d6('0x1a')]);return _0x1f55a5(_0x32e1da[_0x29d6('0x18')][_0x29d6('0x1a')]);}else{logger['info'](_0x29d6('0x13'),_0xc1970f,_0x29d6('0x14'));_0x1f55a5(_0x32e1da[_0x29d6('0x1b')]['message']);}})[_0x29d6('0x1c')](function(_0x431496){logger[_0x29d6('0x18')](_0x29d6('0x13'),_0xc1970f,_0x431496);_0x1ab490(_0x431496);});});}exports[_0x29d6('0x1d')]=function(_0xc193d){var _0x1a8645=this;return new Promise(function(_0x464be3,_0x5ccdac){return db[_0x29d6('0x1e')][_0x29d6('0x1f')]({'raw':_0xc193d['options']?_0xc193d[_0x29d6('0x20')][_0x29d6('0x21')]===undefined?!![]:![]:!![],'where':_0xc193d[_0x29d6('0x20')]?_0xc193d['options']['where']||null:null,'attributes':_0xc193d[_0x29d6('0x20')]?_0xc193d['options'][_0x29d6('0x22')]||null:null,'limit':_0xc193d[_0x29d6('0x20')]?_0xc193d['options'][_0x29d6('0x23')]||null:null,'include':_0xc193d[_0x29d6('0x20')]?_0xc193d[_0x29d6('0x20')][_0x29d6('0x24')]?_[_0x29d6('0x25')](_0xc193d['options'][_0x29d6('0x24')],function(_0x4c6583){return{'model':db[_0x4c6583['model']],'as':_0x4c6583['as'],'attributes':_0x4c6583['attributes'],'include':_0x4c6583[_0x29d6('0x24')]?_['map'](_0x4c6583[_0x29d6('0x24')],function(_0xd911f7){return{'model':db[_0xd911f7['model']],'as':_0xd911f7['as'],'attributes':_0xd911f7[_0x29d6('0x22')],'include':_0xd911f7['include']?_[_0x29d6('0x25')](_0xd911f7['include'],function(_0x4af26f){return{'model':db[_0x4af26f[_0x29d6('0x26')]],'as':_0x4af26f['as'],'attributes':_0x4af26f[_0x29d6('0x22')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x1ccd54){logger[_0x29d6('0x12')](_0x29d6('0x1d'),_0xc193d);logger[_0x29d6('0x15')]('GetUser',_0xc193d,JSON[_0x29d6('0x17')](_0x1ccd54));_0x464be3(_0x1ccd54);})['catch'](function(_0x49abc9){logger['error'](_0x29d6('0x1d'),_0x49abc9[_0x29d6('0x1a')],_0xc193d);_0x5ccdac(_0x1a8645['error'](0x1f4,_0x49abc9[_0x29d6('0x1a')]));});});};exports[_0x29d6('0x27')]=function(_0x34099b){var _0x2c8ef2=this;return new Promise(function(_0x1c79e7,_0x48990d){return db[_0x29d6('0x1e')][_0x29d6('0x28')]({'raw':_0x34099b[_0x29d6('0x20')]?_0x34099b[_0x29d6('0x20')]['raw']===undefined?!![]:![]:!![],'where':_0x34099b[_0x29d6('0x20')]?_0x34099b[_0x29d6('0x20')][_0x29d6('0x29')]||null:null,'attributes':_0x34099b[_0x29d6('0x20')]?_0x34099b[_0x29d6('0x20')]['attributes']||null:null,'include':_0x34099b[_0x29d6('0x20')]?_0x34099b[_0x29d6('0x20')][_0x29d6('0x24')]?_[_0x29d6('0x25')](_0x34099b[_0x29d6('0x20')][_0x29d6('0x24')],function(_0x2c5ada){return{'model':db[_0x2c5ada[_0x29d6('0x26')]],'as':_0x2c5ada['as'],'attributes':_0x2c5ada[_0x29d6('0x22')],'include':_0x2c5ada[_0x29d6('0x24')]?_[_0x29d6('0x25')](_0x2c5ada[_0x29d6('0x24')],function(_0x5cece5){return{'model':db[_0x5cece5['model']],'as':_0x5cece5['as'],'attributes':_0x5cece5['attributes'],'include':_0x5cece5[_0x29d6('0x24')]?_[_0x29d6('0x25')](_0x5cece5['include'],function(_0x17af51){return{'model':db[_0x17af51[_0x29d6('0x26')]],'as':_0x17af51['as'],'attributes':_0x17af51[_0x29d6('0x22')]};}):[]};}):[]};}):[]:[]})[_0x29d6('0x11')](function(_0x23998a){logger[_0x29d6('0x12')]('ShowUser',_0x34099b);logger[_0x29d6('0x15')](_0x29d6('0x27'),_0x34099b,JSON[_0x29d6('0x17')](_0x23998a));_0x1c79e7(_0x23998a);})[_0x29d6('0x1c')](function(_0x20699a){logger[_0x29d6('0x18')](_0x29d6('0x27'),_0x20699a[_0x29d6('0x1a')],_0x34099b);_0x48990d(_0x2c8ef2[_0x29d6('0x18')](0x1f4,_0x20699a[_0x29d6('0x1a')]));});});};exports[_0x29d6('0x2a')]=function(_0x16bd41){var _0xaa6d97=this;return new Promise(function(_0x1d651e,_0x2a62f9){var _0x23b31f;return db[_0x29d6('0x1e')]['find']({'where':_0x16bd41['options'][_0x29d6('0x29')]||{},'attributes':['id',_0x29d6('0x2b'),_0x29d6('0x2c'),_0x29d6('0x2d'),_0x29d6('0x2e')]})[_0x29d6('0x11')](function(_0x2f9d2a){if(_0x2f9d2a){_0x23b31f=_0x2f9d2a;return db[_0x29d6('0x2f')]['update']({'paused':0x1},{'where':{'UserId':_0x23b31f['id']},'individualHooks':!![]});}})[_0x29d6('0x11')](function(){if(_0x23b31f){return db[_0x29d6('0x30')][_0x29d6('0x1f')]({'where':{'membername':_0x23b31f[_0x29d6('0x2b')],'type':_0x29d6('0x31'),'exitAt':null}});}})[_0x29d6('0x11')](function(_0xbbce8b){if(_0x23b31f){if(_0xbbce8b&&_0xbbce8b[_0x29d6('0x32')]){var _0x4b383b=moment()[_0x29d6('0x33')](_0x29d6('0x34'));for(var _0x2c3cd5=0x0,_0x43042d=_0xbbce8b['length'];_0x2c3cd5<_0x43042d;_0x2c3cd5++){_0xbbce8b[_0x2c3cd5][_0x29d6('0x35')]({'exitAt':_0x4b383b});}}}})[_0x29d6('0x11')](function(){if(_0x23b31f){var _0x34533d=[];var _0x2764ed=utils[_0x29d6('0x36')]();_0x2764ed[_0x29d6('0x37')](function(_0x477c48){_0x34533d['push']({'channel':_0x477c48,'membername':_0x23b31f[_0x29d6('0x2b')],'interface':_[_0x29d6('0x38')](_0x23b31f[_0x29d6('0x2e')])?util['format']('SIP/%s',_0x23b31f[_0x29d6('0x2b')]):_0x23b31f[_0x29d6('0x2e')],'type':_0x29d6('0x31'),'enterAt':moment()[_0x29d6('0x33')](_0x29d6('0x34')),'data1':_0x16bd41['body'][_0x29d6('0x39')]||_0x29d6('0x3a'),'role':_0x23b31f['role'],'internal':_0x23b31f['internal'],'uniqueid':_0x16bd41['body'][_0x29d6('0x3b')]||null});});return db[_0x29d6('0x30')][_0x29d6('0x3c')](_0x34533d,{'individualHooks':!![]});}})[_0x29d6('0x11')](function(){if(_0x23b31f){return _0x23b31f[_0x29d6('0x3d')]({'voicePause':!![],'mailPause':!![],'chatPause':!![],'faxPause':!![],'smsPause':!![],'openchannelPause':!![],'whatsappPause':!![],'pauseType':_0x16bd41[_0x29d6('0x3e')][_0x29d6('0x39')]||'DEFAULT\x20PAUSE','lastPauseAt':moment()[_0x29d6('0x33')](_0x29d6('0x34'))});}})[_0x29d6('0x11')](function(_0x570a3c){_0x1d651e(_0x570a3c);})[_0x29d6('0x1c')](function(_0x245e09){_0x2a62f9(_0xaa6d97[_0x29d6('0x18')](0x1f4,_0x245e09[_0x29d6('0x1a')]));});});};exports[_0x29d6('0x3f')]=function(_0x3341f2){var _0x2ac52a=this;return new Promise(function(_0x406521,_0x21f38a){var _0x4eb59f;return db[_0x29d6('0x1e')][_0x29d6('0x40')]({'where':_0x3341f2[_0x29d6('0x20')][_0x29d6('0x29')]||{},'attributes':['id',_0x29d6('0x2b')]})[_0x29d6('0x11')](function(_0xa11f0c){if(_0xa11f0c){_0x4eb59f=_0xa11f0c;if(_0x3341f2[_0x29d6('0x3e')]['channel']&&!utils[_0x29d6('0x41')](_0x3341f2[_0x29d6('0x3e')][_0x29d6('0x42')])){throw new Error('Unknown\x20channel');}switch(_0x3341f2[_0x29d6('0x3e')][_0x29d6('0x42')]){case'voice':return db[_0x29d6('0x2f')][_0x29d6('0x3d')]({'paused':0x0},{'where':{'UserId':_0x4eb59f['id']}})[_0x29d6('0x11')](function(){return db[_0x29d6('0x30')][_0x29d6('0x28')]({'where':{'channel':_0x3341f2[_0x29d6('0x3e')]['channel'],'membername':_0x4eb59f[_0x29d6('0x2b')],'type':_0x29d6('0x31'),'exitAt':null}});})['then'](function(_0x84939){if(_0x84939){return _0x84939[_0x29d6('0x3d')]({'exitAt':moment()['format'](_0x29d6('0x34')),'data2':_0x29d6('0x43')},{'individualHooks':!![]});}return null;})['then'](function(){return _0x4eb59f[_0x29d6('0x3d')]({'voicePause':![]});});case _0x29d6('0x44'):case _0x29d6('0x45'):case _0x29d6('0x46'):case _0x29d6('0x47'):case _0x29d6('0x48'):case _0x29d6('0x49'):return db[_0x29d6('0x30')][_0x29d6('0x28')]({'where':{'channel':_0x3341f2['body'][_0x29d6('0x42')],'membername':_0x4eb59f[_0x29d6('0x2b')],'type':'PAUSE','exitAt':null}})[_0x29d6('0x11')](function(_0x52c285){return _0x52c285[_0x29d6('0x3d')]({'exitAt':moment()[_0x29d6('0x33')](_0x29d6('0x34')),'data2':_0x29d6('0x43')},{'individualHooks':!![]});})[_0x29d6('0x11')](function(){var _0x94cd94={};_[_0x29d6('0x4a')](_0x94cd94,util[_0x29d6('0x33')](_0x29d6('0x4b'),_0x3341f2[_0x29d6('0x3e')][_0x29d6('0x42')],_0x29d6('0x4c')),![]);return _0x4eb59f[_0x29d6('0x3d')](_0x94cd94);});default:return db[_0x29d6('0x2f')]['update']({'paused':0x0},{'where':{'UserId':_0x4eb59f['id']}})[_0x29d6('0x11')](function(){return db[_0x29d6('0x30')][_0x29d6('0x1f')]({'where':{'membername':_0x4eb59f[_0x29d6('0x2b')],'type':'PAUSE','exitAt':null}});})['then'](function(_0x1ad76){var _0x355237=[];_0x1ad76[_0x29d6('0x37')](function(_0x2e6796){_0x355237[_0x29d6('0x4d')](_0x2e6796[_0x29d6('0x3d')]({'exitAt':moment()['format'](_0x29d6('0x34')),'data2':'system'}));});return BPromise['all'](_0x355237);})[_0x29d6('0x11')](function(){return _0x4eb59f[_0x29d6('0x3d')]({'voicePause':![],'mailPause':![],'chatPause':![],'faxPause':![],'smsPause':![],'openchannelPause':![],'whatsappPause':![]});});}}})[_0x29d6('0x11')](function(_0x25123d){_0x406521(_0x25123d);})[_0x29d6('0x1c')](function(_0x511898){_0x21f38a(_0x2ac52a[_0x29d6('0x18')](0x1f4,_0x511898[_0x29d6('0x1a')]));});});};exports[_0x29d6('0x4e')]=function(_0x464683){var _0x3a2b30=this;return new Promise(function(_0x4e4aea,_0x3ede96){var _0x2ab77b;return db['User'][_0x29d6('0x40')]({'where':_0x464683[_0x29d6('0x20')][_0x29d6('0x29')]||{},'attributes':['id','name']})['then'](function(_0x54ab3b){if(_0x54ab3b){_0x2ab77b=_0x54ab3b;return db[_0x29d6('0x2f')][_0x29d6('0x4f')]({'where':{'membername':_0x2ab77b[_0x29d6('0x2b')]},'individualHooks':!![]});}})[_0x29d6('0x11')](function(){if(_0x2ab77b){return db[_0x29d6('0x30')]['findAll']({'where':{'membername':_0x2ab77b[_0x29d6('0x2b')],'exitAt':null}});}})['then'](function(_0x80a6bb){if(_0x2ab77b){if(_0x80a6bb&&_0x80a6bb['length']){var _0x589a56=[];_0x80a6bb['forEach'](function(_0x1dac11){_0x589a56[_0x29d6('0x4d')](_0x1dac11['update']({'exitAt':moment()[_0x29d6('0x33')](_0x29d6('0x34'))}));});return BPromise['all'](_0x589a56);}}})['then'](function(){if(_0x2ab77b){return _0x2ab77b[_0x29d6('0x3d')]({'online':![],'lastLoginAt':null,'voicePause':![],'mailPause':![],'chatPause':![],'faxPause':![],'smsPause':![],'openchannelPause':![]});}})['then'](function(_0x166d9f){_0x4e4aea(_0x166d9f);})['catch'](function(_0x4ae73b){_0x3ede96(_0x3a2b30['error'](0x1f4,_0x4ae73b[_0x29d6('0x1a')]));});});};exports[_0x29d6('0x50')]=function(_0x1f5ded){var _0x409036=this;return new Promise(function(_0x3765de,_0x173aea){var _0x1228bd;var _0x2eba2e;var _0x3d6320;var _0x16a846;return db['User'][_0x29d6('0x40')]({'where':_0x1f5ded[_0x29d6('0x20')]['where']||{},'attributes':['id','name',_0x29d6('0x2c'),_0x29d6('0x51'),_0x29d6('0x52'),_0x29d6('0x2d'),_0x29d6('0x53'),_0x29d6('0x2e')]})[_0x29d6('0x11')](function(_0x520a89){if(_0x520a89){_0x1228bd=_0x520a89;_0x16a846=_0x1f5ded[_0x29d6('0x3e')][_0x29d6('0x2e')]?_0x1f5ded[_0x29d6('0x3e')][_0x29d6('0x2e')]:util['format']('SIP/%s',_0x1228bd[_0x29d6('0x2b')]);return db[_0x29d6('0x1e')]['count']({'where':{'role':_0x29d6('0x54'),'online':!![],'id':{'$ne':_0x1228bd['id']}}});}})[_0x29d6('0x11')](function(_0xdd1f03){if(_0xdd1f03){_0x3d6320=_0xdd1f03;return require(_0x29d6('0x55'))[_0x29d6('0x56')]();}})[_0x29d6('0x11')](function(_0x1ff446){if(_0x1ff446&&_0x1ff446[_0x29d6('0x57')]&&_0x3d6320>=_0x1ff446[_0x29d6('0x57')]){throw new Error(_0x29d6('0x58'));}})[_0x29d6('0x11')](function(){if(_0x1228bd){return db[_0x29d6('0x2f')][_0x29d6('0x4f')]({'where':{'membername':_0x1228bd[_0x29d6('0x2b')]},'individualHooks':!![]});}})[_0x29d6('0x11')](function(){if(_0x1228bd){return _0x1228bd['getVoiceQueues']({'raw':!![]});}})[_0x29d6('0x11')](function(_0x36332f){if(_0x1228bd){if(_0x36332f){var _0x1b62e7=[];_0x2eba2e=_0x36332f;if(_0x2eba2e[_0x29d6('0x32')]){for(var _0x291dee=0x0;_0x291dee<_0x2eba2e['length'];_0x291dee++){_0x1b62e7[_0x29d6('0x4d')](db[_0x29d6('0x2f')][_0x29d6('0x59')]({'membername':_0x1228bd[_0x29d6('0x2b')],'UserId':_0x1228bd['id'],'queue_name':_0x2eba2e[_0x291dee][_0x29d6('0x2b')],'VoiceQueueId':_0x2eba2e[_0x291dee]['id'],'interface':_0x16a846,'paused':_0x1228bd[_0x29d6('0x53')]||![],'penalty':_0x2eba2e[_0x291dee][_0x29d6('0x5a')]||0x0}));}return BPromise[_0x29d6('0x5b')](_0x1b62e7);}}}})[_0x29d6('0x11')](function(){if(_0x1228bd){return db[_0x29d6('0x30')][_0x29d6('0x1f')]({'where':{'membername':_0x1228bd['name'],'exitAt':null}});}})['then'](function(_0x417ac2){if(_0x1228bd){if(_0x417ac2&&_0x417ac2[_0x29d6('0x32')]){var _0x315f51=[];_0x417ac2['forEach'](function(_0x87d36a){_0x315f51[_0x29d6('0x4d')](_0x87d36a[_0x29d6('0x3d')]({'exitAt':moment()['format']('YYYY-MM-DD\x20HH:mm:ss')}));});return BPromise[_0x29d6('0x5b')](_0x315f51);}}})[_0x29d6('0x11')](function(_0x3bc4b7){if(_0x1228bd){var _0x367900=[];var _0x1a97ae=[];var _0xaa8c47=utils[_0x29d6('0x36')]();var _0x1ce77f={'membername':_0x1228bd[_0x29d6('0x2b')],'interface':_0x16a846,'enterAt':moment()[_0x29d6('0x33')](_0x29d6('0x34')),'role':_0x1228bd[_0x29d6('0x2c')],'internal':_0x1228bd[_0x29d6('0x2d')]};_0xaa8c47[_0x29d6('0x37')](function(_0x1e9373){_0x367900[_0x29d6('0x4d')](_[_0x29d6('0x5c')]({'channel':_0x1e9373,'type':_0x29d6('0x5d'),'data1':_0x29d6('0x5e'),'data2':_0x16a846},_0x1ce77f));if(_0x1228bd[_0x29d6('0x53')]){_0x1a97ae[_0x29d6('0x4d')](_[_0x29d6('0x5c')]({'channel':_0x1e9373,'type':'PAUSE','data1':_0x29d6('0x5f')},_0x1ce77f));}});return db['MemberReport'][_0x29d6('0x3c')](_0x367900['concat'](_0x1a97ae),{'individualHooks':!![]});}})['then'](function(){if(_0x1228bd){return _0x1228bd[_0x29d6('0x3d')]({'online':!![],'lastLoginAt':moment()['format'](_0x29d6('0x34')),'voicePause':_0x1228bd[_0x29d6('0x53')]||![],'mailPause':_0x1228bd[_0x29d6('0x53')]||![],'chatPause':_0x1228bd[_0x29d6('0x53')]||![],'faxPause':_0x1228bd[_0x29d6('0x53')]||![],'smsPause':_0x1228bd[_0x29d6('0x53')]||![],'openchannelPause':_0x1228bd[_0x29d6('0x53')]||![],'pauseType':_0x1228bd[_0x29d6('0x53')]?'LOGININPAUSE':null,'lastPauseAt':moment()['format']('YYYY-MM-DD\x20HH:mm:ss'),'interface':_0x16a846});}})['then'](function(_0x597205){_0x3765de(_0x597205);})[_0x29d6('0x1c')](function(_0x43f73f){_0x173aea(_0x409036[_0x29d6('0x18')](0x1f4,_0x43f73f['message']));});});};