7d95f96eb2130e4c11be07a363b984167d549249
[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 _0x892b=['findOne','channel','isValidChannel','voice','UserVoiceQueueRt','system','chat','fax','sms','openchannel','set','%s%s','Pause','forEach','all','LogoutUser','destroy','LoginUser','mobile','phone','loginInPause','count','agent','../../config/license/util','agents','Maximum\x20login\x20has\x20been\x20reached','upsert','UserVoiceQueue.penalty','LOGIN','callysquare','merge','LOGININPAUSE','concat','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','../../config/environment','client','http','defaults','redis','localhost','socket.io-emitter','register','request','info','User,\x20%s,\x20%s','request\x20sent','debug','User,\x20%s,\x20%s,\x20%s','code','error','message','GetUser','User','findAll','options','attributes','limit','map','include','model','then','stringify','ShowUser','find','raw','where','catch','PauseUser','name','role','internal','update','MemberReport','PAUSE','length','updateAttributes','getChannels','push','isNil','format','SIP/%s','interface','YYYY-MM-DD\x20HH:mm:ss','body','type','DEFAULT\x20PAUSE','uniqueid','bulkCreate','UnpauseUser'];(function(_0x178e48,_0x3c9509){var _0x440d7e=function(_0xc2f8a0){while(--_0xc2f8a0){_0x178e48['push'](_0x178e48['shift']());}};_0x440d7e(++_0x3c9509);}(_0x892b,0x81));var _0xb892=function(_0x29a8ba,_0x2a8862){_0x29a8ba=_0x29a8ba-0x0;var _0x484858=_0x892b[_0x29a8ba];return _0x484858;};'use strict';var _=require('lodash');var util=require(_0xb892('0x0'));var moment=require(_0xb892('0x1'));var BPromise=require(_0xb892('0x2'));var rs=require(_0xb892('0x3'));var fs=require('fs');var Redis=require(_0xb892('0x4'));var db=require(_0xb892('0x5'))['db'];var utils=require(_0xb892('0x6'));var logger=require(_0xb892('0x7'))('rpc');var config=require(_0xb892('0x8'));var jayson=require('jayson/promise');var client=jayson[_0xb892('0x9')][_0xb892('0xa')]({'port':0x232a});config['redis']=_[_0xb892('0xb')](config[_0xb892('0xc')],{'host':_0xb892('0xd'),'port':0x18eb});var socket=require(_0xb892('0xe'))(new Redis(config['redis']));require('./user.socket')[_0xb892('0xf')](socket);function respondWithRpcPromise(_0x1fd2cb,_0x48aacf,_0x4c07a6){return new BPromise(function(_0x35e904,_0x359904){return client[_0xb892('0x10')](_0x1fd2cb,_0x4c07a6)['then'](function(_0x235230){logger[_0xb892('0x11')](_0xb892('0x12'),_0x48aacf,_0xb892('0x13'));logger[_0xb892('0x14')](_0xb892('0x15'),_0x48aacf,_0xb892('0x13'),JSON['stringify'](_0x235230));if(_0x235230['error']){if(_0x235230['error'][_0xb892('0x16')]===0x1f4){logger[_0xb892('0x17')]('User,\x20%s,\x20%s',_0x48aacf,_0x235230[_0xb892('0x17')][_0xb892('0x18')]);return _0x359904(_0x235230[_0xb892('0x17')]['message']);}logger['error']('User,\x20%s,\x20%s',_0x48aacf,_0x235230[_0xb892('0x17')][_0xb892('0x18')]);return _0x35e904(_0x235230[_0xb892('0x17')]['message']);}else{logger[_0xb892('0x11')]('User,\x20%s,\x20%s',_0x48aacf,_0xb892('0x13'));_0x35e904(_0x235230['result'][_0xb892('0x18')]);}})['catch'](function(_0x1b2dd5){logger[_0xb892('0x17')](_0xb892('0x12'),_0x48aacf,_0x1b2dd5);_0x359904(_0x1b2dd5);});});}exports[_0xb892('0x19')]=function(_0x4d5320){var _0x2a1106=this;return new Promise(function(_0x17adf5,_0x366328){return db[_0xb892('0x1a')][_0xb892('0x1b')]({'raw':_0x4d5320[_0xb892('0x1c')]?_0x4d5320['options']['raw']===undefined?!![]:![]:!![],'where':_0x4d5320['options']?_0x4d5320[_0xb892('0x1c')]['where']||null:null,'attributes':_0x4d5320['options']?_0x4d5320['options'][_0xb892('0x1d')]||null:null,'limit':_0x4d5320[_0xb892('0x1c')]?_0x4d5320[_0xb892('0x1c')][_0xb892('0x1e')]||null:null,'include':_0x4d5320['options']?_0x4d5320[_0xb892('0x1c')]['include']?_[_0xb892('0x1f')](_0x4d5320[_0xb892('0x1c')]['include'],function(_0x1f226a){return{'model':db[_0x1f226a['model']],'as':_0x1f226a['as'],'attributes':_0x1f226a[_0xb892('0x1d')],'include':_0x1f226a[_0xb892('0x20')]?_[_0xb892('0x1f')](_0x1f226a[_0xb892('0x20')],function(_0x1b9e0d){return{'model':db[_0x1b9e0d[_0xb892('0x21')]],'as':_0x1b9e0d['as'],'attributes':_0x1b9e0d['attributes'],'include':_0x1b9e0d[_0xb892('0x20')]?_[_0xb892('0x1f')](_0x1b9e0d[_0xb892('0x20')],function(_0x3dd4eb){return{'model':db[_0x3dd4eb[_0xb892('0x21')]],'as':_0x3dd4eb['as'],'attributes':_0x3dd4eb['attributes']};}):[]};}):[]};}):[]:[]})[_0xb892('0x22')](function(_0x2ab49b){logger[_0xb892('0x11')]('GetUser',_0x4d5320);logger[_0xb892('0x14')]('GetUser',_0x4d5320,JSON[_0xb892('0x23')](_0x2ab49b));_0x17adf5(_0x2ab49b);})['catch'](function(_0x119a8d){logger[_0xb892('0x17')]('GetUser',_0x119a8d[_0xb892('0x18')],_0x4d5320);_0x366328(_0x2a1106['error'](0x1f4,_0x119a8d[_0xb892('0x18')]));});});};exports[_0xb892('0x24')]=function(_0x85d34a){var _0x4e6ebd=this;return new Promise(function(_0xac6780,_0x4f9041){return db[_0xb892('0x1a')][_0xb892('0x25')]({'raw':_0x85d34a[_0xb892('0x1c')]?_0x85d34a[_0xb892('0x1c')][_0xb892('0x26')]===undefined?!![]:![]:!![],'where':_0x85d34a[_0xb892('0x1c')]?_0x85d34a[_0xb892('0x1c')][_0xb892('0x27')]||null:null,'attributes':_0x85d34a[_0xb892('0x1c')]?_0x85d34a[_0xb892('0x1c')][_0xb892('0x1d')]||null:null,'include':_0x85d34a[_0xb892('0x1c')]?_0x85d34a[_0xb892('0x1c')]['include']?_['map'](_0x85d34a[_0xb892('0x1c')][_0xb892('0x20')],function(_0x761ac9){return{'model':db[_0x761ac9[_0xb892('0x21')]],'as':_0x761ac9['as'],'attributes':_0x761ac9[_0xb892('0x1d')],'include':_0x761ac9[_0xb892('0x20')]?_[_0xb892('0x1f')](_0x761ac9[_0xb892('0x20')],function(_0x1de56a){return{'model':db[_0x1de56a[_0xb892('0x21')]],'as':_0x1de56a['as'],'attributes':_0x1de56a['attributes'],'include':_0x1de56a[_0xb892('0x20')]?_[_0xb892('0x1f')](_0x1de56a['include'],function(_0x2b9c60){return{'model':db[_0x2b9c60['model']],'as':_0x2b9c60['as'],'attributes':_0x2b9c60[_0xb892('0x1d')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x2f8c85){logger[_0xb892('0x11')]('ShowUser',_0x85d34a);logger['debug'](_0xb892('0x24'),_0x85d34a,JSON[_0xb892('0x23')](_0x2f8c85));_0xac6780(_0x2f8c85);})[_0xb892('0x28')](function(_0x508085){logger[_0xb892('0x17')](_0xb892('0x24'),_0x508085[_0xb892('0x18')],_0x85d34a);_0x4f9041(_0x4e6ebd['error'](0x1f4,_0x508085[_0xb892('0x18')]));});});};exports[_0xb892('0x29')]=function(_0x31e8f9){var _0xd1874c=this;return new Promise(function(_0x33bc09,_0x9a66e2){var _0x127bd4;return db['User'][_0xb892('0x25')]({'where':_0x31e8f9[_0xb892('0x1c')][_0xb892('0x27')]||{},'attributes':['id',_0xb892('0x2a'),_0xb892('0x2b'),_0xb892('0x2c'),'interface']})[_0xb892('0x22')](function(_0x4f2311){if(_0x4f2311){_0x127bd4=_0x4f2311;return db['UserVoiceQueueRt'][_0xb892('0x2d')]({'paused':0x1},{'where':{'UserId':_0x127bd4['id']},'individualHooks':!![]});}})['then'](function(){if(_0x127bd4){return db[_0xb892('0x2e')][_0xb892('0x1b')]({'where':{'membername':_0x127bd4[_0xb892('0x2a')],'type':_0xb892('0x2f'),'exitAt':null}});}})['then'](function(_0x27c229){if(_0x127bd4){if(_0x27c229&&_0x27c229[_0xb892('0x30')]){var _0x3ad2c0=moment()['format']('YYYY-MM-DD\x20HH:mm:ss');for(var _0x5b2e17=0x0,_0x3418fb=_0x27c229[_0xb892('0x30')];_0x5b2e17<_0x3418fb;_0x5b2e17++){_0x27c229[_0x5b2e17][_0xb892('0x31')]({'exitAt':_0x3ad2c0});}}}})[_0xb892('0x22')](function(){if(_0x127bd4){var _0x3a2db8=[];var _0x4abd57=utils[_0xb892('0x32')]();_0x4abd57['forEach'](function(_0x5813e4){_0x3a2db8[_0xb892('0x33')]({'channel':_0x5813e4,'membername':_0x127bd4[_0xb892('0x2a')],'interface':_[_0xb892('0x34')](_0x127bd4['interface'])?util[_0xb892('0x35')](_0xb892('0x36'),_0x127bd4[_0xb892('0x2a')]):_0x127bd4[_0xb892('0x37')],'type':_0xb892('0x2f'),'enterAt':moment()[_0xb892('0x35')](_0xb892('0x38')),'data1':_0x31e8f9[_0xb892('0x39')][_0xb892('0x3a')]||_0xb892('0x3b'),'role':_0x127bd4[_0xb892('0x2b')],'internal':_0x127bd4[_0xb892('0x2c')],'uniqueid':_0x31e8f9[_0xb892('0x39')][_0xb892('0x3c')]||null});});return db['MemberReport'][_0xb892('0x3d')](_0x3a2db8,{'individualHooks':!![]});}})['then'](function(){if(_0x127bd4){return _0x127bd4[_0xb892('0x2d')]({'voicePause':!![],'mailPause':!![],'chatPause':!![],'faxPause':!![],'smsPause':!![],'openchannelPause':!![],'pauseType':_0x31e8f9[_0xb892('0x39')]['type']||_0xb892('0x3b'),'lastPauseAt':moment()[_0xb892('0x35')](_0xb892('0x38'))});}})['then'](function(_0x422bdf){_0x33bc09(_0x422bdf);})['catch'](function(_0x19acab){_0x9a66e2(_0xd1874c[_0xb892('0x17')](0x1f4,_0x19acab[_0xb892('0x18')]));});});};exports[_0xb892('0x3e')]=function(_0x31ec8b){var _0x3b5446=this;return new Promise(function(_0x1a32c0,_0x487d9e){var _0x3c3bf3;return db[_0xb892('0x1a')][_0xb892('0x3f')]({'where':_0x31ec8b[_0xb892('0x1c')]['where']||{},'attributes':['id',_0xb892('0x2a')]})[_0xb892('0x22')](function(_0x39990e){if(_0x39990e){_0x3c3bf3=_0x39990e;if(_0x31ec8b[_0xb892('0x39')][_0xb892('0x40')]&&!utils[_0xb892('0x41')](_0x31ec8b[_0xb892('0x39')]['channel'])){throw new Error('Unknown\x20channel');}switch(_0x31ec8b[_0xb892('0x39')]['channel']){case _0xb892('0x42'):return db[_0xb892('0x43')][_0xb892('0x2d')]({'paused':0x0},{'where':{'UserId':_0x3c3bf3['id']}})['then'](function(){return db[_0xb892('0x2e')][_0xb892('0x25')]({'where':{'channel':_0x31ec8b[_0xb892('0x39')][_0xb892('0x40')],'membername':_0x3c3bf3[_0xb892('0x2a')],'type':_0xb892('0x2f'),'exitAt':null}});})[_0xb892('0x22')](function(_0x404449){if(_0x404449){return _0x404449[_0xb892('0x2d')]({'exitAt':moment()[_0xb892('0x35')]('YYYY-MM-DD\x20HH:mm:ss'),'data2':_0xb892('0x44')},{'individualHooks':!![]});}return null;})[_0xb892('0x22')](function(){return _0x3c3bf3[_0xb892('0x2d')]({'voicePause':![]});});case'mail':case _0xb892('0x45'):case _0xb892('0x46'):case _0xb892('0x47'):case _0xb892('0x48'):return db[_0xb892('0x2e')]['find']({'where':{'channel':_0x31ec8b[_0xb892('0x39')]['channel'],'membername':_0x3c3bf3['name'],'type':_0xb892('0x2f'),'exitAt':null}})[_0xb892('0x22')](function(_0x403e79){return _0x403e79[_0xb892('0x2d')]({'exitAt':moment()[_0xb892('0x35')](_0xb892('0x38')),'data2':_0xb892('0x44')},{'individualHooks':!![]});})[_0xb892('0x22')](function(){var _0x239e51={};_[_0xb892('0x49')](_0x239e51,util['format'](_0xb892('0x4a'),_0x31ec8b['body'][_0xb892('0x40')],_0xb892('0x4b')),![]);return _0x3c3bf3[_0xb892('0x2d')](_0x239e51);});default:return db[_0xb892('0x43')][_0xb892('0x2d')]({'paused':0x0},{'where':{'UserId':_0x3c3bf3['id']}})['then'](function(){return db['MemberReport'][_0xb892('0x1b')]({'where':{'membername':_0x3c3bf3['name'],'type':_0xb892('0x2f'),'exitAt':null}});})[_0xb892('0x22')](function(_0x41fbc2){var _0x215564=[];_0x41fbc2[_0xb892('0x4c')](function(_0x3a2abb){_0x215564[_0xb892('0x33')](_0x3a2abb[_0xb892('0x2d')]({'exitAt':moment()[_0xb892('0x35')]('YYYY-MM-DD\x20HH:mm:ss'),'data2':_0xb892('0x44')}));});return BPromise[_0xb892('0x4d')](_0x215564);})[_0xb892('0x22')](function(){return _0x3c3bf3[_0xb892('0x2d')]({'voicePause':![],'mailPause':![],'chatPause':![],'faxPause':![],'smsPause':![],'openchannelPause':![]});});}}})[_0xb892('0x22')](function(_0x5358d6){_0x1a32c0(_0x5358d6);})[_0xb892('0x28')](function(_0x2c210b){_0x487d9e(_0x3b5446[_0xb892('0x17')](0x1f4,_0x2c210b[_0xb892('0x18')]));});});};exports[_0xb892('0x4e')]=function(_0x4842ce){var _0x2d7b90=this;return new Promise(function(_0x52e75d,_0x26e43f){var _0x224d71;return db[_0xb892('0x1a')][_0xb892('0x3f')]({'where':_0x4842ce[_0xb892('0x1c')][_0xb892('0x27')]||{},'attributes':['id',_0xb892('0x2a')]})[_0xb892('0x22')](function(_0x30087e){if(_0x30087e){_0x224d71=_0x30087e;return db[_0xb892('0x43')][_0xb892('0x4f')]({'where':{'membername':_0x224d71[_0xb892('0x2a')]},'individualHooks':!![]});}})['then'](function(){if(_0x224d71){return db[_0xb892('0x2e')]['findAll']({'where':{'membername':_0x224d71['name'],'exitAt':null}});}})[_0xb892('0x22')](function(_0x198fc5){if(_0x224d71){if(_0x198fc5&&_0x198fc5['length']){var _0x5976bc=[];_0x198fc5[_0xb892('0x4c')](function(_0x499e95){_0x5976bc[_0xb892('0x33')](_0x499e95[_0xb892('0x2d')]({'exitAt':moment()[_0xb892('0x35')](_0xb892('0x38'))}));});return BPromise[_0xb892('0x4d')](_0x5976bc);}}})[_0xb892('0x22')](function(){if(_0x224d71){return _0x224d71[_0xb892('0x2d')]({'online':![],'lastLoginAt':null,'voicePause':![],'mailPause':![],'chatPause':![],'faxPause':![],'smsPause':![],'openchannelPause':![]});}})['then'](function(_0x30a878){_0x52e75d(_0x30a878);})[_0xb892('0x28')](function(_0x267812){_0x26e43f(_0x2d7b90[_0xb892('0x17')](0x1f4,_0x267812['message']));});});};exports[_0xb892('0x50')]=function(_0x55ab1e){var _0x19ffeb=this;return new Promise(function(_0x54a2c5,_0x4b08de){var _0x19a0e0;var _0x887065;var _0x3be121;var _0x1cee77;return db[_0xb892('0x1a')]['findOne']({'where':_0x55ab1e['options']['where']||{},'attributes':['id','name',_0xb892('0x2b'),_0xb892('0x51'),_0xb892('0x52'),'internal',_0xb892('0x53'),'interface']})['then'](function(_0x4c8ddc){if(_0x4c8ddc){_0x19a0e0=_0x4c8ddc;_0x1cee77=_0x55ab1e['body'][_0xb892('0x37')]?_0x55ab1e['body'][_0xb892('0x37')]:util['format'](_0xb892('0x36'),_0x19a0e0[_0xb892('0x2a')]);return db[_0xb892('0x1a')][_0xb892('0x54')]({'where':{'role':_0xb892('0x55'),'online':!![],'id':{'$ne':_0x19a0e0['id']}}});}})[_0xb892('0x22')](function(_0x44ad22){if(_0x44ad22){_0x3be121=_0x44ad22;return require(_0xb892('0x56'))['getLicense']();}})[_0xb892('0x22')](function(_0x8d0483){if(_0x8d0483&&_0x8d0483[_0xb892('0x57')]&&_0x3be121>=_0x8d0483[_0xb892('0x57')]){throw new Error(_0xb892('0x58'));}})[_0xb892('0x22')](function(){if(_0x19a0e0){return db[_0xb892('0x43')][_0xb892('0x4f')]({'where':{'membername':_0x19a0e0[_0xb892('0x2a')]},'individualHooks':!![]});}})[_0xb892('0x22')](function(){if(_0x19a0e0){return _0x19a0e0['getVoiceQueues']({'raw':!![]});}})['then'](function(_0x5c2782){if(_0x19a0e0){if(_0x5c2782){var _0x181504=[];_0x887065=_0x5c2782;if(_0x887065['length']){for(var _0x1b15ca=0x0;_0x1b15ca<_0x887065[_0xb892('0x30')];_0x1b15ca++){_0x181504['push'](db[_0xb892('0x43')][_0xb892('0x59')]({'membername':_0x19a0e0[_0xb892('0x2a')],'UserId':_0x19a0e0['id'],'queue_name':_0x887065[_0x1b15ca][_0xb892('0x2a')],'VoiceQueueId':_0x887065[_0x1b15ca]['id'],'interface':_0x1cee77,'paused':_0x19a0e0['loginInPause']||![],'penalty':_0x887065[_0x1b15ca][_0xb892('0x5a')]||0x0}));}return BPromise[_0xb892('0x4d')](_0x181504);}}}})[_0xb892('0x22')](function(){if(_0x19a0e0){return db[_0xb892('0x2e')][_0xb892('0x1b')]({'where':{'membername':_0x19a0e0['name'],'exitAt':null}});}})[_0xb892('0x22')](function(_0x113cfc){if(_0x19a0e0){if(_0x113cfc&&_0x113cfc[_0xb892('0x30')]){var _0x56a939=[];_0x113cfc[_0xb892('0x4c')](function(_0x1f1b6c){_0x56a939['push'](_0x1f1b6c['update']({'exitAt':moment()[_0xb892('0x35')](_0xb892('0x38'))}));});return BPromise['all'](_0x56a939);}}})[_0xb892('0x22')](function(_0x5b6aca){if(_0x19a0e0){var _0x45f1a7=[];var _0x5ea500=[];var _0x753421=utils[_0xb892('0x32')]();var _0x18fd5e={'membername':_0x19a0e0[_0xb892('0x2a')],'interface':_0x1cee77,'enterAt':moment()[_0xb892('0x35')](_0xb892('0x38')),'role':_0x19a0e0[_0xb892('0x2b')],'internal':_0x19a0e0[_0xb892('0x2c')]};_0x753421[_0xb892('0x4c')](function(_0xf91c6d){_0x45f1a7[_0xb892('0x33')](_['merge']({'channel':_0xf91c6d,'type':_0xb892('0x5b'),'data1':_0xb892('0x5c'),'data2':_0x1cee77},_0x18fd5e));if(_0x19a0e0[_0xb892('0x53')]){_0x5ea500[_0xb892('0x33')](_[_0xb892('0x5d')]({'channel':_0xf91c6d,'type':_0xb892('0x2f'),'data1':_0xb892('0x5e')},_0x18fd5e));}});return db[_0xb892('0x2e')][_0xb892('0x3d')](_0x45f1a7[_0xb892('0x5f')](_0x5ea500),{'individualHooks':!![]});}})['then'](function(){if(_0x19a0e0){return _0x19a0e0['update']({'online':!![],'lastLoginAt':moment()['format'](_0xb892('0x38')),'voicePause':_0x19a0e0[_0xb892('0x53')]||![],'mailPause':_0x19a0e0[_0xb892('0x53')]||![],'chatPause':_0x19a0e0['loginInPause']||![],'faxPause':_0x19a0e0[_0xb892('0x53')]||![],'smsPause':_0x19a0e0[_0xb892('0x53')]||![],'openchannelPause':_0x19a0e0['loginInPause']||![],'pauseType':_0x19a0e0[_0xb892('0x53')]?_0xb892('0x5e'):null,'lastPauseAt':moment()[_0xb892('0x35')](_0xb892('0x38')),'interface':_0x1cee77});}})['then'](function(_0x155338){_0x54a2c5(_0x155338);})[_0xb892('0x28')](function(_0x391314){_0x4b08de(_0x19ffeb[_0xb892('0x17')](0x1f4,_0x391314['message']));});});};