Built motion from commit ab870f9e.|2.5.44
[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 _0x1156=['../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','redis','localhost','socket.io-emitter','./user.socket','request','then','info','User,\x20%s,\x20%s','User,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','result','options','where','attributes','limit','include','map','model','GetUser','catch','ShowUser','User','raw','find','name','role','internal','interface','UserVoiceQueueRt','update','MemberReport','findAll','PAUSE','length','format','YYYY-MM-DD\x20HH:mm:ss','getChannels','forEach','push','body','DEFAULT\x20PAUSE','uniqueid','bulkCreate','type','UnpauseUser','findOne','channel','Unknown\x20channel','system','mail','chat','fax','openchannel','set','%s%s','Pause','all','LoginUser','mobile','phone','loginInPause','agent','../../config/license/util','getLicense','agents','Maximum\x20login\x20has\x20been\x20reached','destroy','getVoiceQueues','upsert','UserVoiceQueue.penalty','merge','LOGIN','LOGININPAUSE','concat','lodash','moment','bluebird','randomstring','ioredis','../../mysqldb'];(function(_0x20cc13,_0x1b730f){var _0x5fefe9=function(_0x3e51c5){while(--_0x3e51c5){_0x20cc13['push'](_0x20cc13['shift']());}};_0x5fefe9(++_0x1b730f);}(_0x1156,0x10b));var _0x6115=function(_0x6d6a66,_0x2924af){_0x6d6a66=_0x6d6a66-0x0;var _0x11eb6e=_0x1156[_0x6d6a66];return _0x11eb6e;};'use strict';var _=require(_0x6115('0x0'));var util=require('util');var moment=require(_0x6115('0x1'));var BPromise=require(_0x6115('0x2'));var rs=require(_0x6115('0x3'));var fs=require('fs');var Redis=require(_0x6115('0x4'));var db=require(_0x6115('0x5'))['db'];var utils=require(_0x6115('0x6'));var logger=require(_0x6115('0x7'))(_0x6115('0x8'));var config=require(_0x6115('0x9'));var jayson=require(_0x6115('0xa'));var client=jayson[_0x6115('0xb')][_0x6115('0xc')]({'port':0x232a});config[_0x6115('0xd')]=_['defaults'](config[_0x6115('0xd')],{'host':_0x6115('0xe'),'port':0x18eb});var socket=require(_0x6115('0xf'))(new Redis(config[_0x6115('0xd')]));require(_0x6115('0x10'))['register'](socket);function respondWithRpcPromise(_0xcaad04,_0x9588b3,_0x281dde){return new BPromise(function(_0x2b1b4f,_0x29c1c6){return client[_0x6115('0x11')](_0xcaad04,_0x281dde)[_0x6115('0x12')](function(_0x5842ef){logger[_0x6115('0x13')](_0x6115('0x14'),_0x9588b3,'request\x20sent');logger['debug'](_0x6115('0x15'),_0x9588b3,_0x6115('0x16'),JSON[_0x6115('0x17')](_0x5842ef));if(_0x5842ef['error']){if(_0x5842ef[_0x6115('0x18')][_0x6115('0x19')]===0x1f4){logger[_0x6115('0x18')](_0x6115('0x14'),_0x9588b3,_0x5842ef['error'][_0x6115('0x1a')]);return _0x29c1c6(_0x5842ef[_0x6115('0x18')][_0x6115('0x1a')]);}logger[_0x6115('0x18')](_0x6115('0x14'),_0x9588b3,_0x5842ef[_0x6115('0x18')][_0x6115('0x1a')]);return _0x2b1b4f(_0x5842ef['error'][_0x6115('0x1a')]);}else{logger['info'](_0x6115('0x14'),_0x9588b3,_0x6115('0x16'));_0x2b1b4f(_0x5842ef[_0x6115('0x1b')]['message']);}})['catch'](function(_0x462818){logger[_0x6115('0x18')](_0x6115('0x14'),_0x9588b3,_0x462818);_0x29c1c6(_0x462818);});});}exports['GetUser']=function(_0x22526e){var _0x37f53f=this;return new Promise(function(_0x3efa16,_0x2480bf){return db['User']['findAll']({'raw':_0x22526e[_0x6115('0x1c')]?_0x22526e[_0x6115('0x1c')]['raw']===undefined?!![]:![]:!![],'where':_0x22526e[_0x6115('0x1c')]?_0x22526e[_0x6115('0x1c')][_0x6115('0x1d')]||null:null,'attributes':_0x22526e[_0x6115('0x1c')]?_0x22526e[_0x6115('0x1c')][_0x6115('0x1e')]||null:null,'limit':_0x22526e[_0x6115('0x1c')]?_0x22526e['options'][_0x6115('0x1f')]||null:null,'include':_0x22526e[_0x6115('0x1c')]?_0x22526e[_0x6115('0x1c')][_0x6115('0x20')]?_[_0x6115('0x21')](_0x22526e[_0x6115('0x1c')][_0x6115('0x20')],function(_0x4ceb00){return{'model':db[_0x4ceb00[_0x6115('0x22')]],'as':_0x4ceb00['as'],'attributes':_0x4ceb00[_0x6115('0x1e')],'include':_0x4ceb00[_0x6115('0x20')]?_[_0x6115('0x21')](_0x4ceb00[_0x6115('0x20')],function(_0xb046a){return{'model':db[_0xb046a[_0x6115('0x22')]],'as':_0xb046a['as'],'attributes':_0xb046a[_0x6115('0x1e')],'include':_0xb046a[_0x6115('0x20')]?_[_0x6115('0x21')](_0xb046a[_0x6115('0x20')],function(_0x4b1490){return{'model':db[_0x4b1490[_0x6115('0x22')]],'as':_0x4b1490['as'],'attributes':_0x4b1490[_0x6115('0x1e')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x1aa06e){logger[_0x6115('0x13')](_0x6115('0x23'),_0x22526e);logger['debug']('GetUser',_0x22526e,JSON[_0x6115('0x17')](_0x1aa06e));_0x3efa16(_0x1aa06e);})[_0x6115('0x24')](function(_0x1dfa28){logger[_0x6115('0x18')](_0x6115('0x23'),_0x1dfa28[_0x6115('0x1a')],_0x22526e);_0x2480bf(_0x37f53f[_0x6115('0x18')](0x1f4,_0x1dfa28[_0x6115('0x1a')]));});});};exports[_0x6115('0x25')]=function(_0x1fe561){var _0x3b72cc=this;return new Promise(function(_0x362f09,_0x540d1e){return db[_0x6115('0x26')]['find']({'raw':_0x1fe561[_0x6115('0x1c')]?_0x1fe561[_0x6115('0x1c')][_0x6115('0x27')]===undefined?!![]:![]:!![],'where':_0x1fe561['options']?_0x1fe561[_0x6115('0x1c')][_0x6115('0x1d')]||null:null,'attributes':_0x1fe561[_0x6115('0x1c')]?_0x1fe561[_0x6115('0x1c')][_0x6115('0x1e')]||null:null,'include':_0x1fe561[_0x6115('0x1c')]?_0x1fe561[_0x6115('0x1c')]['include']?_[_0x6115('0x21')](_0x1fe561[_0x6115('0x1c')][_0x6115('0x20')],function(_0x5ddf3c){return{'model':db[_0x5ddf3c[_0x6115('0x22')]],'as':_0x5ddf3c['as'],'attributes':_0x5ddf3c[_0x6115('0x1e')],'include':_0x5ddf3c[_0x6115('0x20')]?_[_0x6115('0x21')](_0x5ddf3c[_0x6115('0x20')],function(_0x492ac3){return{'model':db[_0x492ac3[_0x6115('0x22')]],'as':_0x492ac3['as'],'attributes':_0x492ac3['attributes'],'include':_0x492ac3[_0x6115('0x20')]?_[_0x6115('0x21')](_0x492ac3[_0x6115('0x20')],function(_0x5075c5){return{'model':db[_0x5075c5['model']],'as':_0x5075c5['as'],'attributes':_0x5075c5[_0x6115('0x1e')]};}):[]};}):[]};}):[]:[]})[_0x6115('0x12')](function(_0xb2a33a){logger[_0x6115('0x13')](_0x6115('0x25'),_0x1fe561);logger['debug'](_0x6115('0x25'),_0x1fe561,JSON[_0x6115('0x17')](_0xb2a33a));_0x362f09(_0xb2a33a);})[_0x6115('0x24')](function(_0x1ae853){logger[_0x6115('0x18')]('ShowUser',_0x1ae853[_0x6115('0x1a')],_0x1fe561);_0x540d1e(_0x3b72cc[_0x6115('0x18')](0x1f4,_0x1ae853['message']));});});};exports['PauseUser']=function(_0x5d1493){var _0x16d4bc=this;return new Promise(function(_0x32139a,_0x5a0737){var _0x536c89;return db[_0x6115('0x26')][_0x6115('0x28')]({'where':_0x5d1493[_0x6115('0x1c')][_0x6115('0x1d')]||{},'attributes':['id',_0x6115('0x29'),_0x6115('0x2a'),_0x6115('0x2b'),_0x6115('0x2c')]})[_0x6115('0x12')](function(_0x6bc296){if(_0x6bc296){_0x536c89=_0x6bc296;return db[_0x6115('0x2d')][_0x6115('0x2e')]({'paused':0x1},{'where':{'UserId':_0x536c89['id']},'individualHooks':!![]});}})[_0x6115('0x12')](function(){if(_0x536c89){return db[_0x6115('0x2f')][_0x6115('0x30')]({'where':{'membername':_0x536c89[_0x6115('0x29')],'type':_0x6115('0x31'),'exitAt':null}});}})[_0x6115('0x12')](function(_0x38ba0d){if(_0x536c89){if(_0x38ba0d&&_0x38ba0d[_0x6115('0x32')]){var _0x42f0fc=moment()[_0x6115('0x33')](_0x6115('0x34'));for(var _0x330d16=0x0,_0x4ce689=_0x38ba0d[_0x6115('0x32')];_0x330d16<_0x4ce689;_0x330d16++){_0x38ba0d[_0x330d16]['updateAttributes']({'exitAt':_0x42f0fc});}}}})[_0x6115('0x12')](function(){if(_0x536c89){var _0x1765bf=[];var _0x361747=utils[_0x6115('0x35')]();_0x361747[_0x6115('0x36')](function(_0x1d753e){_0x1765bf[_0x6115('0x37')]({'channel':_0x1d753e,'membername':_0x536c89[_0x6115('0x29')],'interface':_['isNil'](_0x536c89['interface'])?util[_0x6115('0x33')]('SIP/%s',_0x536c89[_0x6115('0x29')]):_0x536c89[_0x6115('0x2c')],'type':_0x6115('0x31'),'enterAt':moment()[_0x6115('0x33')](_0x6115('0x34')),'data1':_0x5d1493[_0x6115('0x38')]['type']||_0x6115('0x39'),'role':_0x536c89[_0x6115('0x2a')],'internal':_0x536c89[_0x6115('0x2b')],'uniqueid':_0x5d1493['body'][_0x6115('0x3a')]||null});});return db[_0x6115('0x2f')][_0x6115('0x3b')](_0x1765bf,{'individualHooks':!![]});}})['then'](function(){if(_0x536c89){return _0x536c89[_0x6115('0x2e')]({'voicePause':!![],'mailPause':!![],'chatPause':!![],'faxPause':!![],'smsPause':!![],'openchannelPause':!![],'whatsappPause':!![],'pauseType':_0x5d1493[_0x6115('0x38')][_0x6115('0x3c')]||_0x6115('0x39'),'lastPauseAt':moment()[_0x6115('0x33')](_0x6115('0x34'))});}})[_0x6115('0x12')](function(_0x2d8f4f){_0x32139a(_0x2d8f4f);})['catch'](function(_0x340fae){_0x5a0737(_0x16d4bc[_0x6115('0x18')](0x1f4,_0x340fae[_0x6115('0x1a')]));});});};exports[_0x6115('0x3d')]=function(_0x548693){var _0x1e3ed2=this;return new Promise(function(_0x33d5ec,_0x48a274){var _0x2b7bc6;return db[_0x6115('0x26')][_0x6115('0x3e')]({'where':_0x548693[_0x6115('0x1c')][_0x6115('0x1d')]||{},'attributes':['id','name']})[_0x6115('0x12')](function(_0xd31242){if(_0xd31242){_0x2b7bc6=_0xd31242;if(_0x548693['body']['channel']&&!utils['isValidChannel'](_0x548693[_0x6115('0x38')][_0x6115('0x3f')])){throw new Error(_0x6115('0x40'));}switch(_0x548693['body'][_0x6115('0x3f')]){case'voice':return db['UserVoiceQueueRt'][_0x6115('0x2e')]({'paused':0x0},{'where':{'UserId':_0x2b7bc6['id']}})[_0x6115('0x12')](function(){return db[_0x6115('0x2f')][_0x6115('0x28')]({'where':{'channel':_0x548693['body'][_0x6115('0x3f')],'membername':_0x2b7bc6['name'],'type':_0x6115('0x31'),'exitAt':null}});})[_0x6115('0x12')](function(_0x248020){if(_0x248020){return _0x248020[_0x6115('0x2e')]({'exitAt':moment()[_0x6115('0x33')](_0x6115('0x34')),'data2':_0x6115('0x41')},{'individualHooks':!![]});}return null;})[_0x6115('0x12')](function(){return _0x2b7bc6[_0x6115('0x2e')]({'voicePause':![]});});case _0x6115('0x42'):case _0x6115('0x43'):case _0x6115('0x44'):case'sms':case _0x6115('0x45'):case'whatsapp':return db[_0x6115('0x2f')][_0x6115('0x28')]({'where':{'channel':_0x548693[_0x6115('0x38')][_0x6115('0x3f')],'membername':_0x2b7bc6[_0x6115('0x29')],'type':_0x6115('0x31'),'exitAt':null}})[_0x6115('0x12')](function(_0x2e546b){return _0x2e546b[_0x6115('0x2e')]({'exitAt':moment()['format'](_0x6115('0x34')),'data2':_0x6115('0x41')},{'individualHooks':!![]});})[_0x6115('0x12')](function(){var _0x5178a7={};_[_0x6115('0x46')](_0x5178a7,util[_0x6115('0x33')](_0x6115('0x47'),_0x548693[_0x6115('0x38')][_0x6115('0x3f')],_0x6115('0x48')),![]);return _0x2b7bc6['update'](_0x5178a7);});default:return db[_0x6115('0x2d')]['update']({'paused':0x0},{'where':{'UserId':_0x2b7bc6['id']}})['then'](function(){return db[_0x6115('0x2f')][_0x6115('0x30')]({'where':{'membername':_0x2b7bc6[_0x6115('0x29')],'type':_0x6115('0x31'),'exitAt':null}});})[_0x6115('0x12')](function(_0x296e59){var _0x86c6bc=[];_0x296e59[_0x6115('0x36')](function(_0x4272cd){_0x86c6bc[_0x6115('0x37')](_0x4272cd[_0x6115('0x2e')]({'exitAt':moment()[_0x6115('0x33')](_0x6115('0x34')),'data2':_0x6115('0x41')}));});return BPromise[_0x6115('0x49')](_0x86c6bc);})['then'](function(){return _0x2b7bc6[_0x6115('0x2e')]({'voicePause':![],'mailPause':![],'chatPause':![],'faxPause':![],'smsPause':![],'openchannelPause':![],'whatsappPause':![]});});}}})[_0x6115('0x12')](function(_0x2297ad){_0x33d5ec(_0x2297ad);})[_0x6115('0x24')](function(_0x5f8f22){_0x48a274(_0x1e3ed2[_0x6115('0x18')](0x1f4,_0x5f8f22['message']));});});};exports['LogoutUser']=function(_0x193581){var _0x4165ba=this;return new Promise(function(_0x1f3634,_0x56aa05){var _0x5c4e58;return db['User'][_0x6115('0x3e')]({'where':_0x193581[_0x6115('0x1c')][_0x6115('0x1d')]||{},'attributes':['id',_0x6115('0x29')]})[_0x6115('0x12')](function(_0x3147a9){if(_0x3147a9){_0x5c4e58=_0x3147a9;return db[_0x6115('0x2d')]['destroy']({'where':{'membername':_0x5c4e58[_0x6115('0x29')]},'individualHooks':!![]});}})[_0x6115('0x12')](function(){if(_0x5c4e58){return db[_0x6115('0x2f')][_0x6115('0x30')]({'where':{'membername':_0x5c4e58[_0x6115('0x29')],'exitAt':null}});}})[_0x6115('0x12')](function(_0x59966a){if(_0x5c4e58){if(_0x59966a&&_0x59966a[_0x6115('0x32')]){var _0x4f1d9c=[];_0x59966a['forEach'](function(_0xb10ddd){_0x4f1d9c[_0x6115('0x37')](_0xb10ddd[_0x6115('0x2e')]({'exitAt':moment()[_0x6115('0x33')]('YYYY-MM-DD\x20HH:mm:ss')}));});return BPromise[_0x6115('0x49')](_0x4f1d9c);}}})['then'](function(){if(_0x5c4e58){return _0x5c4e58[_0x6115('0x2e')]({'online':![],'voicePause':![],'mailPause':![],'chatPause':![],'faxPause':![],'smsPause':![],'openchannelPause':![]});}})[_0x6115('0x12')](function(_0x3119e3){_0x1f3634(_0x3119e3);})[_0x6115('0x24')](function(_0x544f65){_0x56aa05(_0x4165ba[_0x6115('0x18')](0x1f4,_0x544f65[_0x6115('0x1a')]));});});};exports[_0x6115('0x4a')]=function(_0x36cc98){var _0x58aeac=this;return new Promise(function(_0x335ba2,_0x2262d4){var _0x829fea;var _0x35caec;var _0x2580f1;var _0x418ed1;return db[_0x6115('0x26')]['findOne']({'where':_0x36cc98[_0x6115('0x1c')][_0x6115('0x1d')]||{},'attributes':['id',_0x6115('0x29'),'role',_0x6115('0x4b'),_0x6115('0x4c'),'internal',_0x6115('0x4d'),_0x6115('0x2c')]})['then'](function(_0x55fab7){if(_0x55fab7){_0x829fea=_0x55fab7;_0x418ed1=_0x36cc98[_0x6115('0x38')]['interface']?_0x36cc98['body'][_0x6115('0x2c')]:util[_0x6115('0x33')]('SIP/%s',_0x829fea['name']);return db[_0x6115('0x26')]['count']({'where':{'role':_0x6115('0x4e'),'online':!![],'id':{'$ne':_0x829fea['id']}}});}})[_0x6115('0x12')](function(_0x1821c7){if(_0x1821c7){_0x2580f1=_0x1821c7;return require(_0x6115('0x4f'))[_0x6115('0x50')]();}})[_0x6115('0x12')](function(_0x3c90cc){if(_0x3c90cc&&_0x3c90cc[_0x6115('0x51')]&&_0x2580f1>=_0x3c90cc[_0x6115('0x51')]){throw new Error(_0x6115('0x52'));}})[_0x6115('0x12')](function(){if(_0x829fea){return db[_0x6115('0x2d')][_0x6115('0x53')]({'where':{'membername':_0x829fea['name']},'individualHooks':!![]});}})['then'](function(){if(_0x829fea){return _0x829fea[_0x6115('0x54')]({'raw':!![]});}})[_0x6115('0x12')](function(_0x4daac2){if(_0x829fea){if(_0x4daac2){var _0x17cf8c=[];_0x35caec=_0x4daac2;if(_0x35caec[_0x6115('0x32')]){for(var _0x538a99=0x0;_0x538a99<_0x35caec[_0x6115('0x32')];_0x538a99++){_0x17cf8c[_0x6115('0x37')](db['UserVoiceQueueRt'][_0x6115('0x55')]({'membername':_0x829fea[_0x6115('0x29')],'UserId':_0x829fea['id'],'queue_name':_0x35caec[_0x538a99][_0x6115('0x29')],'VoiceQueueId':_0x35caec[_0x538a99]['id'],'interface':_0x418ed1,'paused':_0x829fea['loginInPause']||![],'penalty':_0x35caec[_0x538a99][_0x6115('0x56')]||0x0}));}return BPromise['all'](_0x17cf8c);}}}})[_0x6115('0x12')](function(){if(_0x829fea){return db[_0x6115('0x2f')]['findAll']({'where':{'membername':_0x829fea[_0x6115('0x29')],'exitAt':null}});}})['then'](function(_0x4c2c8f){if(_0x829fea){if(_0x4c2c8f&&_0x4c2c8f[_0x6115('0x32')]){var _0x131666=[];_0x4c2c8f['forEach'](function(_0x325f65){_0x131666['push'](_0x325f65[_0x6115('0x2e')]({'exitAt':moment()[_0x6115('0x33')](_0x6115('0x34'))}));});return BPromise[_0x6115('0x49')](_0x131666);}}})[_0x6115('0x12')](function(_0x57f864){if(_0x829fea){var _0xebe703=[];var _0x3de28b=[];var _0x27863b=utils['getChannels']();var _0x4137e0={'membername':_0x829fea['name'],'interface':_0x418ed1,'enterAt':moment()[_0x6115('0x33')](_0x6115('0x34')),'role':_0x829fea[_0x6115('0x2a')],'internal':_0x829fea['internal']};_0x27863b[_0x6115('0x36')](function(_0x478a1b){_0xebe703[_0x6115('0x37')](_[_0x6115('0x57')]({'channel':_0x478a1b,'type':_0x6115('0x58'),'data1':'callysquare','data2':_0x418ed1},_0x4137e0));if(_0x829fea[_0x6115('0x4d')]){_0x3de28b[_0x6115('0x37')](_[_0x6115('0x57')]({'channel':_0x478a1b,'type':_0x6115('0x31'),'data1':_0x6115('0x59')},_0x4137e0));}});return db[_0x6115('0x2f')][_0x6115('0x3b')](_0xebe703[_0x6115('0x5a')](_0x3de28b),{'individualHooks':!![]});}})[_0x6115('0x12')](function(){if(_0x829fea){return _0x829fea['update']({'online':!![],'lastLoginAt':moment()[_0x6115('0x33')](_0x6115('0x34')),'voicePause':_0x829fea[_0x6115('0x4d')]||![],'mailPause':_0x829fea[_0x6115('0x4d')]||![],'chatPause':_0x829fea[_0x6115('0x4d')]||![],'faxPause':_0x829fea[_0x6115('0x4d')]||![],'smsPause':_0x829fea[_0x6115('0x4d')]||![],'openchannelPause':_0x829fea[_0x6115('0x4d')]||![],'pauseType':_0x829fea[_0x6115('0x4d')]?_0x6115('0x59'):null,'lastPauseAt':moment()[_0x6115('0x33')](_0x6115('0x34')),'interface':_0x418ed1});}})[_0x6115('0x12')](function(_0x485381){_0x335ba2(_0x485381);})['catch'](function(_0x157284){_0x2262d4(_0x58aeac['error'](0x1f4,_0x157284[_0x6115('0x1a')]));});});};