c16a94872f02c16cca32ed70c0616050e012ac99
[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 _0x4b74=['localhost','socket.io-emitter','register','request','then','User,\x20%s,\x20%s','request\x20sent','User,\x20%s,\x20%s,\x20%s','stringify','error','message','info','result','catch','User','findAll','options','raw','where','attributes','limit','include','map','model','GetUser','ShowUser','find','PauseUser','role','interface','update','MemberReport','name','PAUSE','format','YYYY-MM-DD\x20HH:mm:ss','length','updateAttributes','isNil','SIP/%s','body','DEFAULT\x20PAUSE','internal','uniqueid','type','UnpauseUser','findOne','channel','Unknown\x20channel','voice','UserVoiceQueueRt','system','mail','chat','fax','%s%s','forEach','all','LogoutUser','destroy','LoginUser','phone','loginInPause','count','agent','getLicense','agents','Maximum\x20login\x20has\x20been\x20reached','getVoiceQueues','push','upsert','UserVoiceQueue.penalty','getChannels','callysquare','merge','LOGININPAUSE','concat','lodash','util','moment','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','http','redis','defaults'];(function(_0x4beb9e,_0x45bc13){var _0x3021ea=function(_0x361cd9){while(--_0x361cd9){_0x4beb9e['push'](_0x4beb9e['shift']());}};_0x3021ea(++_0x45bc13);}(_0x4b74,0x103));var _0x44b7=function(_0x2a608e,_0x548753){_0x2a608e=_0x2a608e-0x0;var _0x4f3566=_0x4b74[_0x2a608e];return _0x4f3566;};'use strict';var _=require(_0x44b7('0x0'));var util=require(_0x44b7('0x1'));var moment=require(_0x44b7('0x2'));var BPromise=require('bluebird');var rs=require(_0x44b7('0x3'));var fs=require('fs');var Redis=require(_0x44b7('0x4'));var db=require(_0x44b7('0x5'))['db'];var utils=require(_0x44b7('0x6'));var logger=require(_0x44b7('0x7'))(_0x44b7('0x8'));var config=require(_0x44b7('0x9'));var jayson=require(_0x44b7('0xa'));var client=jayson['client'][_0x44b7('0xb')]({'port':0x232a});config[_0x44b7('0xc')]=_[_0x44b7('0xd')](config['redis'],{'host':_0x44b7('0xe'),'port':0x18eb});var socket=require(_0x44b7('0xf'))(new Redis(config[_0x44b7('0xc')]));require('./user.socket')[_0x44b7('0x10')](socket);function respondWithRpcPromise(_0x4765e6,_0x592286,_0xc83abb){return new BPromise(function(_0x3a1f89,_0x5b33b6){return client[_0x44b7('0x11')](_0x4765e6,_0xc83abb)[_0x44b7('0x12')](function(_0x12079b){logger['info'](_0x44b7('0x13'),_0x592286,_0x44b7('0x14'));logger['debug'](_0x44b7('0x15'),_0x592286,'request\x20sent',JSON[_0x44b7('0x16')](_0x12079b));if(_0x12079b[_0x44b7('0x17')]){if(_0x12079b[_0x44b7('0x17')]['code']===0x1f4){logger['error'](_0x44b7('0x13'),_0x592286,_0x12079b['error']['message']);return _0x5b33b6(_0x12079b['error'][_0x44b7('0x18')]);}logger[_0x44b7('0x17')]('User,\x20%s,\x20%s',_0x592286,_0x12079b[_0x44b7('0x17')][_0x44b7('0x18')]);return _0x3a1f89(_0x12079b[_0x44b7('0x17')][_0x44b7('0x18')]);}else{logger[_0x44b7('0x19')](_0x44b7('0x13'),_0x592286,_0x44b7('0x14'));_0x3a1f89(_0x12079b[_0x44b7('0x1a')][_0x44b7('0x18')]);}})[_0x44b7('0x1b')](function(_0xc5652b){logger[_0x44b7('0x17')](_0x44b7('0x13'),_0x592286,_0xc5652b);_0x5b33b6(_0xc5652b);});});}exports['GetUser']=function(_0x90b0ad){var _0x1952a1=this;return new Promise(function(_0x58f438,_0x361fdc){return db[_0x44b7('0x1c')][_0x44b7('0x1d')]({'raw':_0x90b0ad[_0x44b7('0x1e')]?_0x90b0ad[_0x44b7('0x1e')][_0x44b7('0x1f')]===undefined?!![]:![]:!![],'where':_0x90b0ad[_0x44b7('0x1e')]?_0x90b0ad['options'][_0x44b7('0x20')]||null:null,'attributes':_0x90b0ad['options']?_0x90b0ad[_0x44b7('0x1e')][_0x44b7('0x21')]||null:null,'limit':_0x90b0ad['options']?_0x90b0ad[_0x44b7('0x1e')][_0x44b7('0x22')]||null:null,'include':_0x90b0ad[_0x44b7('0x1e')]?_0x90b0ad[_0x44b7('0x1e')][_0x44b7('0x23')]?_[_0x44b7('0x24')](_0x90b0ad[_0x44b7('0x1e')]['include'],function(_0x58c71c){return{'model':db[_0x58c71c[_0x44b7('0x25')]],'as':_0x58c71c['as'],'attributes':_0x58c71c['attributes'],'include':_0x58c71c[_0x44b7('0x23')]?_['map'](_0x58c71c['include'],function(_0x39de72){return{'model':db[_0x39de72[_0x44b7('0x25')]],'as':_0x39de72['as'],'attributes':_0x39de72[_0x44b7('0x21')],'include':_0x39de72[_0x44b7('0x23')]?_[_0x44b7('0x24')](_0x39de72['include'],function(_0x19416d){return{'model':db[_0x19416d[_0x44b7('0x25')]],'as':_0x19416d['as'],'attributes':_0x19416d[_0x44b7('0x21')]};}):[]};}):[]};}):[]:[]})[_0x44b7('0x12')](function(_0x115f80){logger['info']('GetUser',_0x90b0ad);logger['debug'](_0x44b7('0x26'),_0x90b0ad,JSON[_0x44b7('0x16')](_0x115f80));_0x58f438(_0x115f80);})['catch'](function(_0x4ed0cc){logger[_0x44b7('0x17')](_0x44b7('0x26'),_0x4ed0cc[_0x44b7('0x18')],_0x90b0ad);_0x361fdc(_0x1952a1[_0x44b7('0x17')](0x1f4,_0x4ed0cc[_0x44b7('0x18')]));});});};exports[_0x44b7('0x27')]=function(_0x2e158d){var _0x5c7e16=this;return new Promise(function(_0x4b8cdf,_0x2b4ee7){return db[_0x44b7('0x1c')][_0x44b7('0x28')]({'raw':_0x2e158d[_0x44b7('0x1e')]?_0x2e158d[_0x44b7('0x1e')][_0x44b7('0x1f')]===undefined?!![]:![]:!![],'where':_0x2e158d['options']?_0x2e158d[_0x44b7('0x1e')][_0x44b7('0x20')]||null:null,'attributes':_0x2e158d[_0x44b7('0x1e')]?_0x2e158d[_0x44b7('0x1e')][_0x44b7('0x21')]||null:null,'include':_0x2e158d[_0x44b7('0x1e')]?_0x2e158d[_0x44b7('0x1e')][_0x44b7('0x23')]?_[_0x44b7('0x24')](_0x2e158d[_0x44b7('0x1e')][_0x44b7('0x23')],function(_0x49bbc1){return{'model':db[_0x49bbc1[_0x44b7('0x25')]],'as':_0x49bbc1['as'],'attributes':_0x49bbc1[_0x44b7('0x21')],'include':_0x49bbc1['include']?_[_0x44b7('0x24')](_0x49bbc1[_0x44b7('0x23')],function(_0x320927){return{'model':db[_0x320927[_0x44b7('0x25')]],'as':_0x320927['as'],'attributes':_0x320927['attributes'],'include':_0x320927[_0x44b7('0x23')]?_['map'](_0x320927[_0x44b7('0x23')],function(_0x41eced){return{'model':db[_0x41eced[_0x44b7('0x25')]],'as':_0x41eced['as'],'attributes':_0x41eced[_0x44b7('0x21')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x3adefd){logger[_0x44b7('0x19')](_0x44b7('0x27'),_0x2e158d);logger['debug'](_0x44b7('0x27'),_0x2e158d,JSON[_0x44b7('0x16')](_0x3adefd));_0x4b8cdf(_0x3adefd);})[_0x44b7('0x1b')](function(_0x1d7f5b){logger['error'](_0x44b7('0x27'),_0x1d7f5b['message'],_0x2e158d);_0x2b4ee7(_0x5c7e16[_0x44b7('0x17')](0x1f4,_0x1d7f5b['message']));});});};exports[_0x44b7('0x29')]=function(_0x3d392f){var _0x5e933e=this;return new Promise(function(_0x48c3b3,_0x5f188d){var _0x2e2d4c;return db[_0x44b7('0x1c')][_0x44b7('0x28')]({'where':_0x3d392f[_0x44b7('0x1e')][_0x44b7('0x20')]||{},'attributes':['id','name',_0x44b7('0x2a'),'internal',_0x44b7('0x2b')]})[_0x44b7('0x12')](function(_0x18299d){if(_0x18299d){_0x2e2d4c=_0x18299d;return db['UserVoiceQueueRt'][_0x44b7('0x2c')]({'paused':0x1},{'where':{'UserId':_0x2e2d4c['id']},'individualHooks':!![]});}})[_0x44b7('0x12')](function(){if(_0x2e2d4c){return db[_0x44b7('0x2d')][_0x44b7('0x1d')]({'where':{'membername':_0x2e2d4c[_0x44b7('0x2e')],'type':_0x44b7('0x2f'),'exitAt':null}});}})[_0x44b7('0x12')](function(_0x566115){if(_0x2e2d4c){if(_0x566115&&_0x566115['length']){var _0x212f04=moment()[_0x44b7('0x30')](_0x44b7('0x31'));for(var _0xa35d97=0x0,_0xd8aaa3=_0x566115[_0x44b7('0x32')];_0xa35d97<_0xd8aaa3;_0xa35d97++){_0x566115[_0xa35d97][_0x44b7('0x33')]({'exitAt':_0x212f04});}}}})[_0x44b7('0x12')](function(){if(_0x2e2d4c){var _0x2c6122=[];var _0x1e52de=utils['getChannels']();_0x1e52de['forEach'](function(_0x4b7c35){_0x2c6122['push']({'channel':_0x4b7c35,'membername':_0x2e2d4c[_0x44b7('0x2e')],'interface':_[_0x44b7('0x34')](_0x2e2d4c[_0x44b7('0x2b')])?util[_0x44b7('0x30')](_0x44b7('0x35'),_0x2e2d4c[_0x44b7('0x2e')]):_0x2e2d4c[_0x44b7('0x2b')],'type':'PAUSE','enterAt':moment()[_0x44b7('0x30')](_0x44b7('0x31')),'data1':_0x3d392f[_0x44b7('0x36')]['type']||_0x44b7('0x37'),'role':_0x2e2d4c[_0x44b7('0x2a')],'internal':_0x2e2d4c[_0x44b7('0x38')],'uniqueid':_0x3d392f['body'][_0x44b7('0x39')]||null});});return db[_0x44b7('0x2d')]['bulkCreate'](_0x2c6122,{'individualHooks':!![]});}})[_0x44b7('0x12')](function(){if(_0x2e2d4c){return _0x2e2d4c[_0x44b7('0x2c')]({'voicePause':!![],'mailPause':!![],'chatPause':!![],'faxPause':!![],'smsPause':!![],'openchannelPause':!![],'whatsappPause':!![],'pauseType':_0x3d392f[_0x44b7('0x36')][_0x44b7('0x3a')]||_0x44b7('0x37'),'lastPauseAt':moment()[_0x44b7('0x30')](_0x44b7('0x31'))});}})['then'](function(_0x2be133){_0x48c3b3(_0x2be133);})[_0x44b7('0x1b')](function(_0x169cc6){_0x5f188d(_0x5e933e[_0x44b7('0x17')](0x1f4,_0x169cc6['message']));});});};exports[_0x44b7('0x3b')]=function(_0xede2d3){var _0x2936c3=this;return new Promise(function(_0x481240,_0x5ba0fa){var _0x2ac84e;return db[_0x44b7('0x1c')][_0x44b7('0x3c')]({'where':_0xede2d3[_0x44b7('0x1e')]['where']||{},'attributes':['id',_0x44b7('0x2e')]})[_0x44b7('0x12')](function(_0xe9346a){if(_0xe9346a){_0x2ac84e=_0xe9346a;if(_0xede2d3[_0x44b7('0x36')]['channel']&&!utils['isValidChannel'](_0xede2d3[_0x44b7('0x36')][_0x44b7('0x3d')])){throw new Error(_0x44b7('0x3e'));}switch(_0xede2d3[_0x44b7('0x36')][_0x44b7('0x3d')]){case _0x44b7('0x3f'):return db[_0x44b7('0x40')]['update']({'paused':0x0},{'where':{'UserId':_0x2ac84e['id']}})[_0x44b7('0x12')](function(){return db[_0x44b7('0x2d')][_0x44b7('0x28')]({'where':{'channel':_0xede2d3[_0x44b7('0x36')][_0x44b7('0x3d')],'membername':_0x2ac84e['name'],'type':_0x44b7('0x2f'),'exitAt':null}});})[_0x44b7('0x12')](function(_0x5842ec){if(_0x5842ec){return _0x5842ec[_0x44b7('0x2c')]({'exitAt':moment()['format'](_0x44b7('0x31')),'data2':_0x44b7('0x41')},{'individualHooks':!![]});}return null;})[_0x44b7('0x12')](function(){return _0x2ac84e[_0x44b7('0x2c')]({'voicePause':![]});});case _0x44b7('0x42'):case _0x44b7('0x43'):case _0x44b7('0x44'):case'sms':case'openchannel':case'whatsapp':return db[_0x44b7('0x2d')][_0x44b7('0x28')]({'where':{'channel':_0xede2d3[_0x44b7('0x36')][_0x44b7('0x3d')],'membername':_0x2ac84e['name'],'type':_0x44b7('0x2f'),'exitAt':null}})[_0x44b7('0x12')](function(_0x2fb7b5){return _0x2fb7b5[_0x44b7('0x2c')]({'exitAt':moment()['format']('YYYY-MM-DD\x20HH:mm:ss'),'data2':_0x44b7('0x41')},{'individualHooks':!![]});})[_0x44b7('0x12')](function(){var _0x3e78eb={};_['set'](_0x3e78eb,util[_0x44b7('0x30')](_0x44b7('0x45'),_0xede2d3['body'][_0x44b7('0x3d')],'Pause'),![]);return _0x2ac84e['update'](_0x3e78eb);});default:return db[_0x44b7('0x40')]['update']({'paused':0x0},{'where':{'UserId':_0x2ac84e['id']}})[_0x44b7('0x12')](function(){return db['MemberReport'][_0x44b7('0x1d')]({'where':{'membername':_0x2ac84e[_0x44b7('0x2e')],'type':_0x44b7('0x2f'),'exitAt':null}});})['then'](function(_0x54746a){var _0x525459=[];_0x54746a[_0x44b7('0x46')](function(_0x180177){_0x525459['push'](_0x180177[_0x44b7('0x2c')]({'exitAt':moment()[_0x44b7('0x30')](_0x44b7('0x31')),'data2':_0x44b7('0x41')}));});return BPromise[_0x44b7('0x47')](_0x525459);})[_0x44b7('0x12')](function(){return _0x2ac84e[_0x44b7('0x2c')]({'voicePause':![],'mailPause':![],'chatPause':![],'faxPause':![],'smsPause':![],'openchannelPause':![],'whatsappPause':![]});});}}})[_0x44b7('0x12')](function(_0x3b310c){_0x481240(_0x3b310c);})[_0x44b7('0x1b')](function(_0x42b77a){_0x5ba0fa(_0x2936c3[_0x44b7('0x17')](0x1f4,_0x42b77a[_0x44b7('0x18')]));});});};exports[_0x44b7('0x48')]=function(_0x2b83a1){var _0x71bc4c=this;return new Promise(function(_0x437582,_0x433fe2){var _0x8e38cd;return db[_0x44b7('0x1c')][_0x44b7('0x3c')]({'where':_0x2b83a1[_0x44b7('0x1e')][_0x44b7('0x20')]||{},'attributes':['id',_0x44b7('0x2e')]})[_0x44b7('0x12')](function(_0xa3dc8e){if(_0xa3dc8e){_0x8e38cd=_0xa3dc8e;return db[_0x44b7('0x40')][_0x44b7('0x49')]({'where':{'membername':_0x8e38cd['name']},'individualHooks':!![]});}})[_0x44b7('0x12')](function(){if(_0x8e38cd){return db[_0x44b7('0x2d')][_0x44b7('0x1d')]({'where':{'membername':_0x8e38cd[_0x44b7('0x2e')],'exitAt':null}});}})[_0x44b7('0x12')](function(_0x201889){if(_0x8e38cd){if(_0x201889&&_0x201889[_0x44b7('0x32')]){var _0x3d3be8=[];_0x201889[_0x44b7('0x46')](function(_0x542613){_0x3d3be8['push'](_0x542613[_0x44b7('0x2c')]({'exitAt':moment()[_0x44b7('0x30')](_0x44b7('0x31'))}));});return BPromise[_0x44b7('0x47')](_0x3d3be8);}}})['then'](function(){if(_0x8e38cd){return _0x8e38cd[_0x44b7('0x2c')]({'online':![],'lastLoginAt':null,'voicePause':![],'mailPause':![],'chatPause':![],'faxPause':![],'smsPause':![],'openchannelPause':![]});}})['then'](function(_0x30ab7e){_0x437582(_0x30ab7e);})[_0x44b7('0x1b')](function(_0x49ec9a){_0x433fe2(_0x71bc4c[_0x44b7('0x17')](0x1f4,_0x49ec9a[_0x44b7('0x18')]));});});};exports[_0x44b7('0x4a')]=function(_0xc6871f){var _0x18fec9=this;return new Promise(function(_0x39ff54,_0x202f8b){var _0x336f9e;var _0x2e4978;var _0x5d74be;var _0x332b2e;return db[_0x44b7('0x1c')][_0x44b7('0x3c')]({'where':_0xc6871f['options'][_0x44b7('0x20')]||{},'attributes':['id',_0x44b7('0x2e'),_0x44b7('0x2a'),'mobile',_0x44b7('0x4b'),_0x44b7('0x38'),_0x44b7('0x4c'),_0x44b7('0x2b')]})[_0x44b7('0x12')](function(_0x5a7312){if(_0x5a7312){_0x336f9e=_0x5a7312;_0x332b2e=_0xc6871f['body'][_0x44b7('0x2b')]?_0xc6871f[_0x44b7('0x36')][_0x44b7('0x2b')]:util['format']('SIP/%s',_0x336f9e['name']);return db['User'][_0x44b7('0x4d')]({'where':{'role':_0x44b7('0x4e'),'online':!![],'id':{'$ne':_0x336f9e['id']}}});}})[_0x44b7('0x12')](function(_0x2bd6cc){if(_0x2bd6cc){_0x5d74be=_0x2bd6cc;return require('../../config/license/util')[_0x44b7('0x4f')]();}})[_0x44b7('0x12')](function(_0x3dc8e2){if(_0x3dc8e2&&_0x3dc8e2[_0x44b7('0x50')]&&_0x5d74be>=_0x3dc8e2[_0x44b7('0x50')]){throw new Error(_0x44b7('0x51'));}})[_0x44b7('0x12')](function(){if(_0x336f9e){return db[_0x44b7('0x40')][_0x44b7('0x49')]({'where':{'membername':_0x336f9e[_0x44b7('0x2e')]},'individualHooks':!![]});}})[_0x44b7('0x12')](function(){if(_0x336f9e){return _0x336f9e[_0x44b7('0x52')]({'raw':!![]});}})[_0x44b7('0x12')](function(_0x214898){if(_0x336f9e){if(_0x214898){var _0x461ee0=[];_0x2e4978=_0x214898;if(_0x2e4978['length']){for(var _0x3c364d=0x0;_0x3c364d<_0x2e4978[_0x44b7('0x32')];_0x3c364d++){_0x461ee0[_0x44b7('0x53')](db['UserVoiceQueueRt'][_0x44b7('0x54')]({'membername':_0x336f9e['name'],'UserId':_0x336f9e['id'],'queue_name':_0x2e4978[_0x3c364d][_0x44b7('0x2e')],'VoiceQueueId':_0x2e4978[_0x3c364d]['id'],'interface':_0x332b2e,'paused':_0x336f9e[_0x44b7('0x4c')]||![],'penalty':_0x2e4978[_0x3c364d][_0x44b7('0x55')]||0x0}));}return BPromise[_0x44b7('0x47')](_0x461ee0);}}}})[_0x44b7('0x12')](function(){if(_0x336f9e){return db['MemberReport'][_0x44b7('0x1d')]({'where':{'membername':_0x336f9e[_0x44b7('0x2e')],'exitAt':null}});}})[_0x44b7('0x12')](function(_0x1dc9b1){if(_0x336f9e){if(_0x1dc9b1&&_0x1dc9b1['length']){var _0x58117=[];_0x1dc9b1[_0x44b7('0x46')](function(_0x2b6edb){_0x58117[_0x44b7('0x53')](_0x2b6edb[_0x44b7('0x2c')]({'exitAt':moment()[_0x44b7('0x30')](_0x44b7('0x31'))}));});return BPromise[_0x44b7('0x47')](_0x58117);}}})['then'](function(_0xcd7c36){if(_0x336f9e){var _0x1243ae=[];var _0x4f00f5=[];var _0x4d2414=utils[_0x44b7('0x56')]();var _0x43c831={'membername':_0x336f9e[_0x44b7('0x2e')],'interface':_0x332b2e,'enterAt':moment()[_0x44b7('0x30')](_0x44b7('0x31')),'role':_0x336f9e[_0x44b7('0x2a')],'internal':_0x336f9e[_0x44b7('0x38')]};_0x4d2414['forEach'](function(_0x568586){_0x1243ae[_0x44b7('0x53')](_['merge']({'channel':_0x568586,'type':'LOGIN','data1':_0x44b7('0x57'),'data2':_0x332b2e},_0x43c831));if(_0x336f9e[_0x44b7('0x4c')]){_0x4f00f5[_0x44b7('0x53')](_[_0x44b7('0x58')]({'channel':_0x568586,'type':_0x44b7('0x2f'),'data1':_0x44b7('0x59')},_0x43c831));}});return db['MemberReport']['bulkCreate'](_0x1243ae[_0x44b7('0x5a')](_0x4f00f5),{'individualHooks':!![]});}})['then'](function(){if(_0x336f9e){return _0x336f9e[_0x44b7('0x2c')]({'online':!![],'lastLoginAt':moment()[_0x44b7('0x30')](_0x44b7('0x31')),'voicePause':_0x336f9e[_0x44b7('0x4c')]||![],'mailPause':_0x336f9e['loginInPause']||![],'chatPause':_0x336f9e[_0x44b7('0x4c')]||![],'faxPause':_0x336f9e[_0x44b7('0x4c')]||![],'smsPause':_0x336f9e['loginInPause']||![],'openchannelPause':_0x336f9e[_0x44b7('0x4c')]||![],'pauseType':_0x336f9e[_0x44b7('0x4c')]?_0x44b7('0x59'):null,'lastPauseAt':moment()['format'](_0x44b7('0x31')),'interface':_0x332b2e});}})[_0x44b7('0x12')](function(_0x3f18bf){_0x39ff54(_0x3f18bf);})[_0x44b7('0x1b')](function(_0xc21986){_0x202f8b(_0x18fec9['error'](0x1f4,_0xc21986[_0x44b7('0x18')]));});});};