Built motion from commit (unavailable).|2.4.20
[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 _0x63ab=['../../config/environment','client','defaults','redis','localhost','./user.socket','register','User,\x20%s,\x20%s','User,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','result','catch','findAll','options','raw','where','attributes','limit','map','include','model','then','info','debug','GetUser','User','ShowUser','find','name','role','internal','UserVoiceQueueRt','MemberReport','length','format','YYYY-MM-DD\x20HH:mm:ss','updateAttributes','getChannels','forEach','push','isNil','interface','SIP/%s','body','type','DEFAULT\x20PAUSE','uniqueid','bulkCreate','update','UnpauseUser','isValidChannel','channel','Unknown\x20channel','voice','PAUSE','mail','fax','sms','system','set','all','LoginUser','mobile','loginInPause','count','agent','../../config/license/util','getLicense','agents','Maximum\x20login\x20has\x20been\x20reached','destroy','getVoiceQueues','upsert','UserVoiceQueue.penalty','merge','LOGININPAUSE','concat','util','moment','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc'];(function(_0x129edf,_0xfa7302){var _0x70563a=function(_0x549205){while(--_0x549205){_0x129edf['push'](_0x129edf['shift']());}};_0x70563a(++_0xfa7302);}(_0x63ab,0x15c));var _0xb63a=function(_0x26a897,_0x153639){_0x26a897=_0x26a897-0x0;var _0x363702=_0x63ab[_0x26a897];return _0x363702;};'use strict';var _=require('lodash');var util=require(_0xb63a('0x0'));var moment=require(_0xb63a('0x1'));var BPromise=require('bluebird');var rs=require(_0xb63a('0x2'));var fs=require('fs');var Redis=require(_0xb63a('0x3'));var db=require(_0xb63a('0x4'))['db'];var utils=require(_0xb63a('0x5'));var logger=require(_0xb63a('0x6'))(_0xb63a('0x7'));var config=require(_0xb63a('0x8'));var jayson=require('jayson/promise');var client=jayson[_0xb63a('0x9')]['http']({'port':0x232a});config['redis']=_[_0xb63a('0xa')](config[_0xb63a('0xb')],{'host':_0xb63a('0xc'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0xb63a('0xb')]));require(_0xb63a('0xd'))[_0xb63a('0xe')](socket);function respondWithRpcPromise(_0xd2966c,_0x2d845e,_0x2f513b){return new BPromise(function(_0x4195bd,_0x50f9c4){return client['request'](_0xd2966c,_0x2f513b)['then'](function(_0x2fedd8){logger['info'](_0xb63a('0xf'),_0x2d845e,'request\x20sent');logger['debug'](_0xb63a('0x10'),_0x2d845e,_0xb63a('0x11'),JSON[_0xb63a('0x12')](_0x2fedd8));if(_0x2fedd8[_0xb63a('0x13')]){if(_0x2fedd8[_0xb63a('0x13')][_0xb63a('0x14')]===0x1f4){logger[_0xb63a('0x13')](_0xb63a('0xf'),_0x2d845e,_0x2fedd8[_0xb63a('0x13')][_0xb63a('0x15')]);return _0x50f9c4(_0x2fedd8['error'][_0xb63a('0x15')]);}logger[_0xb63a('0x13')](_0xb63a('0xf'),_0x2d845e,_0x2fedd8[_0xb63a('0x13')]['message']);return _0x4195bd(_0x2fedd8[_0xb63a('0x13')]['message']);}else{logger['info'](_0xb63a('0xf'),_0x2d845e,_0xb63a('0x11'));_0x4195bd(_0x2fedd8[_0xb63a('0x16')]['message']);}})[_0xb63a('0x17')](function(_0x2c0fea){logger['error']('User,\x20%s,\x20%s',_0x2d845e,_0x2c0fea);_0x50f9c4(_0x2c0fea);});});}exports['GetUser']=function(_0x59ace6){var _0x29c70e=this;return new Promise(function(_0x5d6a9c,_0x5dcbde){return db['User'][_0xb63a('0x18')]({'raw':_0x59ace6[_0xb63a('0x19')]?_0x59ace6[_0xb63a('0x19')][_0xb63a('0x1a')]===undefined?!![]:![]:!![],'where':_0x59ace6[_0xb63a('0x19')]?_0x59ace6[_0xb63a('0x19')][_0xb63a('0x1b')]||null:null,'attributes':_0x59ace6[_0xb63a('0x19')]?_0x59ace6['options'][_0xb63a('0x1c')]||null:null,'limit':_0x59ace6['options']?_0x59ace6['options'][_0xb63a('0x1d')]||null:null,'include':_0x59ace6[_0xb63a('0x19')]?_0x59ace6['options']['include']?_[_0xb63a('0x1e')](_0x59ace6[_0xb63a('0x19')][_0xb63a('0x1f')],function(_0x4ddf1e){return{'model':db[_0x4ddf1e[_0xb63a('0x20')]],'as':_0x4ddf1e['as'],'attributes':_0x4ddf1e['attributes'],'include':_0x4ddf1e[_0xb63a('0x1f')]?_[_0xb63a('0x1e')](_0x4ddf1e[_0xb63a('0x1f')],function(_0x4f8ef4){return{'model':db[_0x4f8ef4[_0xb63a('0x20')]],'as':_0x4f8ef4['as'],'attributes':_0x4f8ef4[_0xb63a('0x1c')],'include':_0x4f8ef4['include']?_[_0xb63a('0x1e')](_0x4f8ef4[_0xb63a('0x1f')],function(_0x1be5f9){return{'model':db[_0x1be5f9[_0xb63a('0x20')]],'as':_0x1be5f9['as'],'attributes':_0x1be5f9[_0xb63a('0x1c')]};}):[]};}):[]};}):[]:[]})[_0xb63a('0x21')](function(_0x14bb18){logger[_0xb63a('0x22')]('GetUser',_0x59ace6);logger[_0xb63a('0x23')](_0xb63a('0x24'),_0x59ace6,JSON[_0xb63a('0x12')](_0x14bb18));_0x5d6a9c(_0x14bb18);})[_0xb63a('0x17')](function(_0x1990f2){logger[_0xb63a('0x13')](_0xb63a('0x24'),_0x1990f2[_0xb63a('0x15')],_0x59ace6);_0x5dcbde(_0x29c70e[_0xb63a('0x13')](0x1f4,_0x1990f2['message']));});});};exports['ShowUser']=function(_0x2ded2c){var _0x542313=this;return new Promise(function(_0x469d63,_0x324cce){return db[_0xb63a('0x25')]['find']({'raw':_0x2ded2c[_0xb63a('0x19')]?_0x2ded2c[_0xb63a('0x19')][_0xb63a('0x1a')]===undefined?!![]:![]:!![],'where':_0x2ded2c['options']?_0x2ded2c[_0xb63a('0x19')][_0xb63a('0x1b')]||null:null,'attributes':_0x2ded2c[_0xb63a('0x19')]?_0x2ded2c[_0xb63a('0x19')][_0xb63a('0x1c')]||null:null,'include':_0x2ded2c[_0xb63a('0x19')]?_0x2ded2c['options'][_0xb63a('0x1f')]?_[_0xb63a('0x1e')](_0x2ded2c['options'][_0xb63a('0x1f')],function(_0x1d37f9){return{'model':db[_0x1d37f9[_0xb63a('0x20')]],'as':_0x1d37f9['as'],'attributes':_0x1d37f9['attributes'],'include':_0x1d37f9[_0xb63a('0x1f')]?_[_0xb63a('0x1e')](_0x1d37f9['include'],function(_0x48cf73){return{'model':db[_0x48cf73[_0xb63a('0x20')]],'as':_0x48cf73['as'],'attributes':_0x48cf73['attributes'],'include':_0x48cf73['include']?_[_0xb63a('0x1e')](_0x48cf73[_0xb63a('0x1f')],function(_0x54f18e){return{'model':db[_0x54f18e[_0xb63a('0x20')]],'as':_0x54f18e['as'],'attributes':_0x54f18e['attributes']};}):[]};}):[]};}):[]:[]})[_0xb63a('0x21')](function(_0xbd9390){logger[_0xb63a('0x22')](_0xb63a('0x26'),_0x2ded2c);logger[_0xb63a('0x23')](_0xb63a('0x26'),_0x2ded2c,JSON[_0xb63a('0x12')](_0xbd9390));_0x469d63(_0xbd9390);})[_0xb63a('0x17')](function(_0x1b6520){logger[_0xb63a('0x13')](_0xb63a('0x26'),_0x1b6520[_0xb63a('0x15')],_0x2ded2c);_0x324cce(_0x542313['error'](0x1f4,_0x1b6520['message']));});});};exports['PauseUser']=function(_0x1b5607){var _0x1a67b4=this;return new Promise(function(_0x573f47,_0x3a5da0){var _0x53e5b7;return db[_0xb63a('0x25')][_0xb63a('0x27')]({'where':_0x1b5607[_0xb63a('0x19')][_0xb63a('0x1b')]||{},'attributes':['id',_0xb63a('0x28'),_0xb63a('0x29'),_0xb63a('0x2a'),'interface']})[_0xb63a('0x21')](function(_0x1a6071){if(_0x1a6071){_0x53e5b7=_0x1a6071;return db[_0xb63a('0x2b')]['update']({'paused':0x1},{'where':{'UserId':_0x53e5b7['id']},'individualHooks':!![]});}})[_0xb63a('0x21')](function(){if(_0x53e5b7){return db[_0xb63a('0x2c')][_0xb63a('0x18')]({'where':{'membername':_0x53e5b7[_0xb63a('0x28')],'type':'PAUSE','exitAt':null}});}})[_0xb63a('0x21')](function(_0x37df1e){if(_0x53e5b7){if(_0x37df1e&&_0x37df1e[_0xb63a('0x2d')]){var _0x303aff=moment()[_0xb63a('0x2e')](_0xb63a('0x2f'));for(var _0x31a883=0x0,_0x180d38=_0x37df1e['length'];_0x31a883<_0x180d38;_0x31a883++){_0x37df1e[_0x31a883][_0xb63a('0x30')]({'exitAt':_0x303aff});}}}})[_0xb63a('0x21')](function(){if(_0x53e5b7){var _0x3c357c=[];var _0xabdc46=utils[_0xb63a('0x31')]();_0xabdc46[_0xb63a('0x32')](function(_0x5993b1){_0x3c357c[_0xb63a('0x33')]({'channel':_0x5993b1,'membername':_0x53e5b7[_0xb63a('0x28')],'interface':_[_0xb63a('0x34')](_0x53e5b7[_0xb63a('0x35')])?util[_0xb63a('0x2e')](_0xb63a('0x36'),_0x53e5b7[_0xb63a('0x28')]):_0x53e5b7[_0xb63a('0x35')],'type':'PAUSE','enterAt':moment()[_0xb63a('0x2e')](_0xb63a('0x2f')),'data1':_0x1b5607[_0xb63a('0x37')][_0xb63a('0x38')]||_0xb63a('0x39'),'role':_0x53e5b7[_0xb63a('0x29')],'internal':_0x53e5b7['internal'],'uniqueid':_0x1b5607[_0xb63a('0x37')][_0xb63a('0x3a')]||null});});return db[_0xb63a('0x2c')][_0xb63a('0x3b')](_0x3c357c,{'individualHooks':!![]});}})[_0xb63a('0x21')](function(){if(_0x53e5b7){return _0x53e5b7[_0xb63a('0x3c')]({'voicePause':!![],'mailPause':!![],'chatPause':!![],'faxPause':!![],'smsPause':!![],'openchannelPause':!![],'pauseType':_0x1b5607[_0xb63a('0x37')][_0xb63a('0x38')]||_0xb63a('0x39'),'lastPauseAt':moment()[_0xb63a('0x2e')](_0xb63a('0x2f'))});}})[_0xb63a('0x21')](function(_0x54119b){_0x573f47(_0x54119b);})[_0xb63a('0x17')](function(_0x680f6a){_0x3a5da0(_0x1a67b4[_0xb63a('0x13')](0x1f4,_0x680f6a[_0xb63a('0x15')]));});});};exports[_0xb63a('0x3d')]=function(_0x3dd006){var _0x5d1652=this;return new Promise(function(_0x3f076a,_0x421496){var _0xbb64db;return db[_0xb63a('0x25')]['findOne']({'where':_0x3dd006[_0xb63a('0x19')][_0xb63a('0x1b')]||{},'attributes':['id',_0xb63a('0x28')]})[_0xb63a('0x21')](function(_0x4179de){if(_0x4179de){_0xbb64db=_0x4179de;if(_0x3dd006[_0xb63a('0x37')]['channel']&&!utils[_0xb63a('0x3e')](_0x3dd006[_0xb63a('0x37')][_0xb63a('0x3f')])){throw new Error(_0xb63a('0x40'));}switch(_0x3dd006[_0xb63a('0x37')][_0xb63a('0x3f')]){case _0xb63a('0x41'):return db[_0xb63a('0x2b')][_0xb63a('0x3c')]({'paused':0x0},{'where':{'UserId':_0xbb64db['id']}})[_0xb63a('0x21')](function(){return db['MemberReport'][_0xb63a('0x27')]({'where':{'channel':_0x3dd006[_0xb63a('0x37')]['channel'],'membername':_0xbb64db['name'],'type':_0xb63a('0x42'),'exitAt':null}});})['then'](function(_0x1160ef){if(_0x1160ef){return _0x1160ef[_0xb63a('0x3c')]({'exitAt':moment()[_0xb63a('0x2e')](_0xb63a('0x2f')),'data2':'system'},{'individualHooks':!![]});}return null;})[_0xb63a('0x21')](function(){return _0xbb64db[_0xb63a('0x3c')]({'voicePause':![]});});case _0xb63a('0x43'):case'chat':case _0xb63a('0x44'):case _0xb63a('0x45'):case'openchannel':return db[_0xb63a('0x2c')][_0xb63a('0x27')]({'where':{'channel':_0x3dd006['body'][_0xb63a('0x3f')],'membername':_0xbb64db[_0xb63a('0x28')],'type':_0xb63a('0x42'),'exitAt':null}})[_0xb63a('0x21')](function(_0x5e4cd2){return _0x5e4cd2[_0xb63a('0x3c')]({'exitAt':moment()[_0xb63a('0x2e')]('YYYY-MM-DD\x20HH:mm:ss'),'data2':_0xb63a('0x46')},{'individualHooks':!![]});})[_0xb63a('0x21')](function(){var _0x2dd57e={};_[_0xb63a('0x47')](_0x2dd57e,util['format']('%s%s',_0x3dd006[_0xb63a('0x37')][_0xb63a('0x3f')],'Pause'),![]);return _0xbb64db[_0xb63a('0x3c')](_0x2dd57e);});default:return db[_0xb63a('0x2b')][_0xb63a('0x3c')]({'paused':0x0},{'where':{'UserId':_0xbb64db['id']}})[_0xb63a('0x21')](function(){return db[_0xb63a('0x2c')][_0xb63a('0x18')]({'where':{'membername':_0xbb64db[_0xb63a('0x28')],'type':_0xb63a('0x42'),'exitAt':null}});})[_0xb63a('0x21')](function(_0x30dadd){var _0x26a21f=[];_0x30dadd[_0xb63a('0x32')](function(_0x3bf178){_0x26a21f[_0xb63a('0x33')](_0x3bf178['update']({'exitAt':moment()['format'](_0xb63a('0x2f')),'data2':_0xb63a('0x46')}));});return BPromise[_0xb63a('0x48')](_0x26a21f);})['then'](function(){return _0xbb64db[_0xb63a('0x3c')]({'voicePause':![],'mailPause':![],'chatPause':![],'faxPause':![],'smsPause':![],'openchannelPause':![]});});}}})[_0xb63a('0x21')](function(_0x3c0a1a){_0x3f076a(_0x3c0a1a);})[_0xb63a('0x17')](function(_0x135049){_0x421496(_0x5d1652['error'](0x1f4,_0x135049['message']));});});};exports['LogoutUser']=function(_0x46742b){var _0x10bb08=this;return new Promise(function(_0x2c047a,_0x448728){var _0x5905db;return db['User']['findOne']({'where':_0x46742b['options'][_0xb63a('0x1b')]||{},'attributes':['id','name']})[_0xb63a('0x21')](function(_0x27325a){if(_0x27325a){_0x5905db=_0x27325a;return db[_0xb63a('0x2b')]['destroy']({'where':{'membername':_0x5905db[_0xb63a('0x28')]},'individualHooks':!![]});}})[_0xb63a('0x21')](function(){if(_0x5905db){return db['MemberReport'][_0xb63a('0x18')]({'where':{'membername':_0x5905db['name'],'exitAt':null}});}})[_0xb63a('0x21')](function(_0x417ccc){if(_0x5905db){if(_0x417ccc&&_0x417ccc[_0xb63a('0x2d')]){var _0x5273a2=[];_0x417ccc[_0xb63a('0x32')](function(_0x368410){_0x5273a2[_0xb63a('0x33')](_0x368410[_0xb63a('0x3c')]({'exitAt':moment()['format']('YYYY-MM-DD\x20HH:mm:ss')}));});return BPromise[_0xb63a('0x48')](_0x5273a2);}}})[_0xb63a('0x21')](function(){if(_0x5905db){return _0x5905db['update']({'online':![],'lastLoginAt':null,'voicePause':![],'mailPause':![],'chatPause':![],'faxPause':![],'smsPause':![],'openchannelPause':![]});}})['then'](function(_0x561536){_0x2c047a(_0x561536);})[_0xb63a('0x17')](function(_0x208d00){_0x448728(_0x10bb08[_0xb63a('0x13')](0x1f4,_0x208d00[_0xb63a('0x15')]));});});};exports[_0xb63a('0x49')]=function(_0x247732){var _0x2b357c=this;return new Promise(function(_0x2a1b06,_0x55347a){var _0x36514f;var _0x291d4f;var _0x2f5520;var _0x482934;return db[_0xb63a('0x25')]['findOne']({'where':_0x247732[_0xb63a('0x19')][_0xb63a('0x1b')]||{},'attributes':['id','name',_0xb63a('0x29'),_0xb63a('0x4a'),'phone',_0xb63a('0x2a'),_0xb63a('0x4b'),_0xb63a('0x35')]})[_0xb63a('0x21')](function(_0x5631aa){if(_0x5631aa){_0x36514f=_0x5631aa;_0x482934=_0x247732['body'][_0xb63a('0x35')]?_0x247732['body'][_0xb63a('0x35')]:util[_0xb63a('0x2e')](_0xb63a('0x36'),_0x36514f[_0xb63a('0x28')]);return db[_0xb63a('0x25')][_0xb63a('0x4c')]({'where':{'role':_0xb63a('0x4d'),'online':!![],'id':{'$ne':_0x36514f['id']}}});}})[_0xb63a('0x21')](function(_0x2558e1){if(_0x2558e1){_0x2f5520=_0x2558e1;return require(_0xb63a('0x4e'))[_0xb63a('0x4f')]();}})[_0xb63a('0x21')](function(_0x1b530e){if(_0x1b530e&&_0x1b530e[_0xb63a('0x50')]&&_0x2f5520>=_0x1b530e['agents']){throw new Error(_0xb63a('0x51'));}})[_0xb63a('0x21')](function(){if(_0x36514f){return db[_0xb63a('0x2b')][_0xb63a('0x52')]({'where':{'membername':_0x36514f['name']},'individualHooks':!![]});}})[_0xb63a('0x21')](function(){if(_0x36514f){return _0x36514f[_0xb63a('0x53')]({'raw':!![]});}})[_0xb63a('0x21')](function(_0x3fbbf1){if(_0x36514f){if(_0x3fbbf1){var _0x3166fe=[];_0x291d4f=_0x3fbbf1;if(_0x291d4f['length']){for(var _0x4a6d4a=0x0;_0x4a6d4a<_0x291d4f[_0xb63a('0x2d')];_0x4a6d4a++){_0x3166fe[_0xb63a('0x33')](db[_0xb63a('0x2b')][_0xb63a('0x54')]({'membername':_0x36514f[_0xb63a('0x28')],'UserId':_0x36514f['id'],'queue_name':_0x291d4f[_0x4a6d4a][_0xb63a('0x28')],'VoiceQueueId':_0x291d4f[_0x4a6d4a]['id'],'interface':_0x482934,'paused':_0x36514f[_0xb63a('0x4b')]||![],'penalty':_0x291d4f[_0x4a6d4a][_0xb63a('0x55')]||0x0}));}return BPromise['all'](_0x3166fe);}}}})[_0xb63a('0x21')](function(){if(_0x36514f){return db['MemberReport']['findAll']({'where':{'membername':_0x36514f[_0xb63a('0x28')],'exitAt':null}});}})[_0xb63a('0x21')](function(_0x26ca90){if(_0x36514f){if(_0x26ca90&&_0x26ca90['length']){var _0x3700b1=[];_0x26ca90[_0xb63a('0x32')](function(_0x50d25a){_0x3700b1[_0xb63a('0x33')](_0x50d25a[_0xb63a('0x3c')]({'exitAt':moment()[_0xb63a('0x2e')](_0xb63a('0x2f'))}));});return BPromise[_0xb63a('0x48')](_0x3700b1);}}})[_0xb63a('0x21')](function(_0x379fbe){if(_0x36514f){var _0x37e351=[];var _0x3f3199=[];var _0xa96cae=utils[_0xb63a('0x31')]();var _0x1bca61={'membername':_0x36514f[_0xb63a('0x28')],'interface':_0x482934,'enterAt':moment()['format'](_0xb63a('0x2f')),'role':_0x36514f[_0xb63a('0x29')],'internal':_0x36514f[_0xb63a('0x2a')]};_0xa96cae[_0xb63a('0x32')](function(_0x47b168){_0x37e351[_0xb63a('0x33')](_[_0xb63a('0x56')]({'channel':_0x47b168,'type':'LOGIN','data1':'callysquare','data2':_0x482934},_0x1bca61));if(_0x36514f[_0xb63a('0x4b')]){_0x3f3199[_0xb63a('0x33')](_[_0xb63a('0x56')]({'channel':_0x47b168,'type':_0xb63a('0x42'),'data1':_0xb63a('0x57')},_0x1bca61));}});return db[_0xb63a('0x2c')][_0xb63a('0x3b')](_0x37e351[_0xb63a('0x58')](_0x3f3199),{'individualHooks':!![]});}})[_0xb63a('0x21')](function(){if(_0x36514f){return _0x36514f[_0xb63a('0x3c')]({'online':!![],'lastLoginAt':moment()[_0xb63a('0x2e')](_0xb63a('0x2f')),'voicePause':_0x36514f['loginInPause']||![],'mailPause':_0x36514f[_0xb63a('0x4b')]||![],'chatPause':_0x36514f[_0xb63a('0x4b')]||![],'faxPause':_0x36514f[_0xb63a('0x4b')]||![],'smsPause':_0x36514f['loginInPause']||![],'openchannelPause':_0x36514f[_0xb63a('0x4b')]||![],'pauseType':_0x36514f[_0xb63a('0x4b')]?_0xb63a('0x57'):null,'lastPauseAt':moment()[_0xb63a('0x2e')]('YYYY-MM-DD\x20HH:mm:ss'),'interface':_0x482934});}})['then'](function(_0x116711){_0x2a1b06(_0x116711);})['catch'](function(_0x386da2){_0x55347a(_0x2b357c[_0xb63a('0x13')](0x1f4,_0x386da2[_0xb63a('0x15')]));});});};