Built motion from commit (unavailable).|2.5.13
[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 _0xa321=['info','result','catch','GetUser','findAll','options','raw','where','attributes','limit','include','map','model','ShowUser','find','name','role','internal','UserVoiceQueueRt','update','format','YYYY-MM-DD\x20HH:mm:ss','length','updateAttributes','getChannels','forEach','PAUSE','body','type','DEFAULT\x20PAUSE','MemberReport','bulkCreate','UnpauseUser','User','findOne','channel','system','mail','chat','sms','openchannel','whatsapp','set','%s%s','Pause','push','all','LogoutUser','destroy','LoginUser','phone','loginInPause','interface','SIP/%s','agent','../../config/license/util','getLicense','agents','Maximum\x20login\x20has\x20been\x20reached','getVoiceQueues','upsert','UserVoiceQueue.penalty','merge','LOGIN','callysquare','concat','LOGININPAUSE','lodash','util','moment','bluebird','ioredis','../../mysqldb','../../config/logger','rpc','http','defaults','redis','localhost','socket.io-emitter','register','request','then','User,\x20%s,\x20%s','request\x20sent','debug','stringify','error','code','message'];(function(_0x13d0fc,_0x391eba){var _0x124453=function(_0x956eba){while(--_0x956eba){_0x13d0fc['push'](_0x13d0fc['shift']());}};_0x124453(++_0x391eba);}(_0xa321,0x9d));var _0x1a32=function(_0x419b6a,_0x265b43){_0x419b6a=_0x419b6a-0x0;var _0x229232=_0xa321[_0x419b6a];return _0x229232;};'use strict';var _=require(_0x1a32('0x0'));var util=require(_0x1a32('0x1'));var moment=require(_0x1a32('0x2'));var BPromise=require(_0x1a32('0x3'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x1a32('0x4'));var db=require(_0x1a32('0x5'))['db'];var utils=require('../../config/utils');var logger=require(_0x1a32('0x6'))(_0x1a32('0x7'));var config=require('../../config/environment');var jayson=require('jayson/promise');var client=jayson['client'][_0x1a32('0x8')]({'port':0x232a});config['redis']=_[_0x1a32('0x9')](config[_0x1a32('0xa')],{'host':_0x1a32('0xb'),'port':0x18eb});var socket=require(_0x1a32('0xc'))(new Redis(config[_0x1a32('0xa')]));require('./user.socket')[_0x1a32('0xd')](socket);function respondWithRpcPromise(_0xa920f7,_0x5d034a,_0x14d287){return new BPromise(function(_0x3cf338,_0x1ce64e){return client[_0x1a32('0xe')](_0xa920f7,_0x14d287)[_0x1a32('0xf')](function(_0x31f14f){logger['info'](_0x1a32('0x10'),_0x5d034a,_0x1a32('0x11'));logger[_0x1a32('0x12')]('User,\x20%s,\x20%s,\x20%s',_0x5d034a,_0x1a32('0x11'),JSON[_0x1a32('0x13')](_0x31f14f));if(_0x31f14f[_0x1a32('0x14')]){if(_0x31f14f[_0x1a32('0x14')][_0x1a32('0x15')]===0x1f4){logger['error'](_0x1a32('0x10'),_0x5d034a,_0x31f14f[_0x1a32('0x14')][_0x1a32('0x16')]);return _0x1ce64e(_0x31f14f[_0x1a32('0x14')][_0x1a32('0x16')]);}logger[_0x1a32('0x14')]('User,\x20%s,\x20%s',_0x5d034a,_0x31f14f[_0x1a32('0x14')][_0x1a32('0x16')]);return _0x3cf338(_0x31f14f['error'][_0x1a32('0x16')]);}else{logger[_0x1a32('0x17')](_0x1a32('0x10'),_0x5d034a,_0x1a32('0x11'));_0x3cf338(_0x31f14f[_0x1a32('0x18')][_0x1a32('0x16')]);}})[_0x1a32('0x19')](function(_0xf6093d){logger[_0x1a32('0x14')](_0x1a32('0x10'),_0x5d034a,_0xf6093d);_0x1ce64e(_0xf6093d);});});}exports[_0x1a32('0x1a')]=function(_0x4c1141){var _0x3231b2=this;return new Promise(function(_0x16896e,_0x235fd0){return db['User'][_0x1a32('0x1b')]({'raw':_0x4c1141[_0x1a32('0x1c')]?_0x4c1141['options'][_0x1a32('0x1d')]===undefined?!![]:![]:!![],'where':_0x4c1141['options']?_0x4c1141[_0x1a32('0x1c')][_0x1a32('0x1e')]||null:null,'attributes':_0x4c1141['options']?_0x4c1141[_0x1a32('0x1c')][_0x1a32('0x1f')]||null:null,'limit':_0x4c1141[_0x1a32('0x1c')]?_0x4c1141['options'][_0x1a32('0x20')]||null:null,'include':_0x4c1141[_0x1a32('0x1c')]?_0x4c1141['options'][_0x1a32('0x21')]?_[_0x1a32('0x22')](_0x4c1141['options'][_0x1a32('0x21')],function(_0x4b3b33){return{'model':db[_0x4b3b33['model']],'as':_0x4b3b33['as'],'attributes':_0x4b3b33['attributes'],'include':_0x4b3b33['include']?_['map'](_0x4b3b33[_0x1a32('0x21')],function(_0x2309b3){return{'model':db[_0x2309b3[_0x1a32('0x23')]],'as':_0x2309b3['as'],'attributes':_0x2309b3[_0x1a32('0x1f')],'include':_0x2309b3[_0x1a32('0x21')]?_[_0x1a32('0x22')](_0x2309b3[_0x1a32('0x21')],function(_0x2edc3e){return{'model':db[_0x2edc3e['model']],'as':_0x2edc3e['as'],'attributes':_0x2edc3e[_0x1a32('0x1f')]};}):[]};}):[]};}):[]:[]})[_0x1a32('0xf')](function(_0x37d660){logger[_0x1a32('0x17')](_0x1a32('0x1a'),_0x4c1141);logger[_0x1a32('0x12')](_0x1a32('0x1a'),_0x4c1141,JSON[_0x1a32('0x13')](_0x37d660));_0x16896e(_0x37d660);})[_0x1a32('0x19')](function(_0x54b122){logger[_0x1a32('0x14')](_0x1a32('0x1a'),_0x54b122['message'],_0x4c1141);_0x235fd0(_0x3231b2['error'](0x1f4,_0x54b122[_0x1a32('0x16')]));});});};exports['ShowUser']=function(_0x5b9f13){var _0x1d874e=this;return new Promise(function(_0x4ef9fd,_0x59f1bc){return db['User']['find']({'raw':_0x5b9f13[_0x1a32('0x1c')]?_0x5b9f13[_0x1a32('0x1c')][_0x1a32('0x1d')]===undefined?!![]:![]:!![],'where':_0x5b9f13[_0x1a32('0x1c')]?_0x5b9f13[_0x1a32('0x1c')]['where']||null:null,'attributes':_0x5b9f13['options']?_0x5b9f13[_0x1a32('0x1c')]['attributes']||null:null,'include':_0x5b9f13[_0x1a32('0x1c')]?_0x5b9f13[_0x1a32('0x1c')][_0x1a32('0x21')]?_['map'](_0x5b9f13[_0x1a32('0x1c')][_0x1a32('0x21')],function(_0x2121e2){return{'model':db[_0x2121e2[_0x1a32('0x23')]],'as':_0x2121e2['as'],'attributes':_0x2121e2[_0x1a32('0x1f')],'include':_0x2121e2[_0x1a32('0x21')]?_[_0x1a32('0x22')](_0x2121e2[_0x1a32('0x21')],function(_0x1b0b1e){return{'model':db[_0x1b0b1e['model']],'as':_0x1b0b1e['as'],'attributes':_0x1b0b1e[_0x1a32('0x1f')],'include':_0x1b0b1e[_0x1a32('0x21')]?_[_0x1a32('0x22')](_0x1b0b1e['include'],function(_0x20d393){return{'model':db[_0x20d393[_0x1a32('0x23')]],'as':_0x20d393['as'],'attributes':_0x20d393[_0x1a32('0x1f')]};}):[]};}):[]};}):[]:[]})[_0x1a32('0xf')](function(_0x29dd8d){logger[_0x1a32('0x17')](_0x1a32('0x24'),_0x5b9f13);logger[_0x1a32('0x12')](_0x1a32('0x24'),_0x5b9f13,JSON[_0x1a32('0x13')](_0x29dd8d));_0x4ef9fd(_0x29dd8d);})[_0x1a32('0x19')](function(_0x3e26e8){logger[_0x1a32('0x14')](_0x1a32('0x24'),_0x3e26e8[_0x1a32('0x16')],_0x5b9f13);_0x59f1bc(_0x1d874e['error'](0x1f4,_0x3e26e8['message']));});});};exports['PauseUser']=function(_0x299826){var _0x35d3ad=this;return new Promise(function(_0x1f1a98,_0x1745bd){var _0xeb42f7;return db['User'][_0x1a32('0x25')]({'where':_0x299826[_0x1a32('0x1c')][_0x1a32('0x1e')]||{},'attributes':['id',_0x1a32('0x26'),_0x1a32('0x27'),_0x1a32('0x28'),'interface']})[_0x1a32('0xf')](function(_0x10e8b2){if(_0x10e8b2){_0xeb42f7=_0x10e8b2;return db[_0x1a32('0x29')][_0x1a32('0x2a')]({'paused':0x1},{'where':{'UserId':_0xeb42f7['id']},'individualHooks':!![]});}})[_0x1a32('0xf')](function(){if(_0xeb42f7){return db['MemberReport']['findAll']({'where':{'membername':_0xeb42f7['name'],'type':'PAUSE','exitAt':null}});}})[_0x1a32('0xf')](function(_0x85bc98){if(_0xeb42f7){if(_0x85bc98&&_0x85bc98['length']){var _0x2569b6=moment()[_0x1a32('0x2b')](_0x1a32('0x2c'));for(var _0x370022=0x0,_0x5bc5bf=_0x85bc98[_0x1a32('0x2d')];_0x370022<_0x5bc5bf;_0x370022++){_0x85bc98[_0x370022][_0x1a32('0x2e')]({'exitAt':_0x2569b6});}}}})[_0x1a32('0xf')](function(){if(_0xeb42f7){var _0x2af005=[];var _0xcf1d21=utils[_0x1a32('0x2f')]();_0xcf1d21[_0x1a32('0x30')](function(_0x2a5f0b){_0x2af005['push']({'channel':_0x2a5f0b,'membername':_0xeb42f7[_0x1a32('0x26')],'interface':_['isNil'](_0xeb42f7['interface'])?util[_0x1a32('0x2b')]('SIP/%s',_0xeb42f7[_0x1a32('0x26')]):_0xeb42f7['interface'],'type':_0x1a32('0x31'),'enterAt':moment()[_0x1a32('0x2b')](_0x1a32('0x2c')),'data1':_0x299826[_0x1a32('0x32')][_0x1a32('0x33')]||_0x1a32('0x34'),'role':_0xeb42f7[_0x1a32('0x27')],'internal':_0xeb42f7[_0x1a32('0x28')],'uniqueid':_0x299826[_0x1a32('0x32')]['uniqueid']||null});});return db[_0x1a32('0x35')][_0x1a32('0x36')](_0x2af005,{'individualHooks':!![]});}})[_0x1a32('0xf')](function(){if(_0xeb42f7){return _0xeb42f7['update']({'voicePause':!![],'mailPause':!![],'chatPause':!![],'faxPause':!![],'smsPause':!![],'openchannelPause':!![],'whatsappPause':!![],'pauseType':_0x299826[_0x1a32('0x32')][_0x1a32('0x33')]||_0x1a32('0x34'),'lastPauseAt':moment()[_0x1a32('0x2b')](_0x1a32('0x2c'))});}})['then'](function(_0x31e568){_0x1f1a98(_0x31e568);})[_0x1a32('0x19')](function(_0x274a63){_0x1745bd(_0x35d3ad[_0x1a32('0x14')](0x1f4,_0x274a63[_0x1a32('0x16')]));});});};exports[_0x1a32('0x37')]=function(_0x10016c){var _0x2f814b=this;return new Promise(function(_0x37048b,_0x508138){var _0x1e3536;return db[_0x1a32('0x38')][_0x1a32('0x39')]({'where':_0x10016c['options'][_0x1a32('0x1e')]||{},'attributes':['id',_0x1a32('0x26')]})['then'](function(_0x3b6097){if(_0x3b6097){_0x1e3536=_0x3b6097;if(_0x10016c[_0x1a32('0x32')][_0x1a32('0x3a')]&&!utils['isValidChannel'](_0x10016c[_0x1a32('0x32')][_0x1a32('0x3a')])){throw new Error('Unknown\x20channel');}switch(_0x10016c[_0x1a32('0x32')]['channel']){case'voice':return db[_0x1a32('0x29')]['update']({'paused':0x0},{'where':{'UserId':_0x1e3536['id']}})['then'](function(){return db[_0x1a32('0x35')][_0x1a32('0x25')]({'where':{'channel':_0x10016c[_0x1a32('0x32')][_0x1a32('0x3a')],'membername':_0x1e3536[_0x1a32('0x26')],'type':_0x1a32('0x31'),'exitAt':null}});})[_0x1a32('0xf')](function(_0x484224){if(_0x484224){return _0x484224['update']({'exitAt':moment()[_0x1a32('0x2b')]('YYYY-MM-DD\x20HH:mm:ss'),'data2':_0x1a32('0x3b')},{'individualHooks':!![]});}return null;})[_0x1a32('0xf')](function(){return _0x1e3536[_0x1a32('0x2a')]({'voicePause':![]});});case _0x1a32('0x3c'):case _0x1a32('0x3d'):case'fax':case _0x1a32('0x3e'):case _0x1a32('0x3f'):case _0x1a32('0x40'):return db['MemberReport']['find']({'where':{'channel':_0x10016c['body'][_0x1a32('0x3a')],'membername':_0x1e3536[_0x1a32('0x26')],'type':_0x1a32('0x31'),'exitAt':null}})[_0x1a32('0xf')](function(_0x2dc62d){return _0x2dc62d[_0x1a32('0x2a')]({'exitAt':moment()['format']('YYYY-MM-DD\x20HH:mm:ss'),'data2':_0x1a32('0x3b')},{'individualHooks':!![]});})[_0x1a32('0xf')](function(){var _0x17be7e={};_[_0x1a32('0x41')](_0x17be7e,util[_0x1a32('0x2b')](_0x1a32('0x42'),_0x10016c[_0x1a32('0x32')]['channel'],_0x1a32('0x43')),![]);return _0x1e3536[_0x1a32('0x2a')](_0x17be7e);});default:return db[_0x1a32('0x29')][_0x1a32('0x2a')]({'paused':0x0},{'where':{'UserId':_0x1e3536['id']}})['then'](function(){return db[_0x1a32('0x35')][_0x1a32('0x1b')]({'where':{'membername':_0x1e3536['name'],'type':_0x1a32('0x31'),'exitAt':null}});})[_0x1a32('0xf')](function(_0x36c0be){var _0x31da99=[];_0x36c0be[_0x1a32('0x30')](function(_0x2ca427){_0x31da99[_0x1a32('0x44')](_0x2ca427[_0x1a32('0x2a')]({'exitAt':moment()[_0x1a32('0x2b')](_0x1a32('0x2c')),'data2':'system'}));});return BPromise[_0x1a32('0x45')](_0x31da99);})[_0x1a32('0xf')](function(){return _0x1e3536['update']({'voicePause':![],'mailPause':![],'chatPause':![],'faxPause':![],'smsPause':![],'openchannelPause':![],'whatsappPause':![]});});}}})[_0x1a32('0xf')](function(_0x6532b1){_0x37048b(_0x6532b1);})['catch'](function(_0x5e1017){_0x508138(_0x2f814b[_0x1a32('0x14')](0x1f4,_0x5e1017[_0x1a32('0x16')]));});});};exports[_0x1a32('0x46')]=function(_0x32b3cb){var _0x3c034a=this;return new Promise(function(_0x3b5084,_0x2e0e18){var _0x552536;return db[_0x1a32('0x38')][_0x1a32('0x39')]({'where':_0x32b3cb['options'][_0x1a32('0x1e')]||{},'attributes':['id',_0x1a32('0x26')]})[_0x1a32('0xf')](function(_0x4679a1){if(_0x4679a1){_0x552536=_0x4679a1;return db[_0x1a32('0x29')][_0x1a32('0x47')]({'where':{'membername':_0x552536[_0x1a32('0x26')]},'individualHooks':!![]});}})[_0x1a32('0xf')](function(){if(_0x552536){return db[_0x1a32('0x35')][_0x1a32('0x1b')]({'where':{'membername':_0x552536[_0x1a32('0x26')],'exitAt':null}});}})[_0x1a32('0xf')](function(_0x594a3e){if(_0x552536){if(_0x594a3e&&_0x594a3e['length']){var _0x29ee6d=[];_0x594a3e[_0x1a32('0x30')](function(_0x267337){_0x29ee6d[_0x1a32('0x44')](_0x267337[_0x1a32('0x2a')]({'exitAt':moment()['format']('YYYY-MM-DD\x20HH:mm:ss')}));});return BPromise[_0x1a32('0x45')](_0x29ee6d);}}})[_0x1a32('0xf')](function(){if(_0x552536){return _0x552536['update']({'online':![],'lastLoginAt':null,'voicePause':![],'mailPause':![],'chatPause':![],'faxPause':![],'smsPause':![],'openchannelPause':![]});}})[_0x1a32('0xf')](function(_0x40cb60){_0x3b5084(_0x40cb60);})[_0x1a32('0x19')](function(_0x5d2de7){_0x2e0e18(_0x3c034a['error'](0x1f4,_0x5d2de7[_0x1a32('0x16')]));});});};exports[_0x1a32('0x48')]=function(_0x1b7a9e){var _0x1375c1=this;return new Promise(function(_0x7f1453,_0x53df34){var _0x5a4015;var _0x241d6b;var _0x125b2;var _0x297a79;return db['User'][_0x1a32('0x39')]({'where':_0x1b7a9e[_0x1a32('0x1c')][_0x1a32('0x1e')]||{},'attributes':['id','name','role','mobile',_0x1a32('0x49'),_0x1a32('0x28'),_0x1a32('0x4a'),'interface']})[_0x1a32('0xf')](function(_0x11b385){if(_0x11b385){_0x5a4015=_0x11b385;_0x297a79=_0x1b7a9e[_0x1a32('0x32')][_0x1a32('0x4b')]?_0x1b7a9e[_0x1a32('0x32')][_0x1a32('0x4b')]:util[_0x1a32('0x2b')](_0x1a32('0x4c'),_0x5a4015[_0x1a32('0x26')]);return db[_0x1a32('0x38')]['count']({'where':{'role':_0x1a32('0x4d'),'online':!![],'id':{'$ne':_0x5a4015['id']}}});}})[_0x1a32('0xf')](function(_0x14c8fd){if(_0x14c8fd){_0x125b2=_0x14c8fd;return require(_0x1a32('0x4e'))[_0x1a32('0x4f')]();}})[_0x1a32('0xf')](function(_0x9892b4){if(_0x9892b4&&_0x9892b4[_0x1a32('0x50')]&&_0x125b2>=_0x9892b4[_0x1a32('0x50')]){throw new Error(_0x1a32('0x51'));}})[_0x1a32('0xf')](function(){if(_0x5a4015){return db[_0x1a32('0x29')][_0x1a32('0x47')]({'where':{'membername':_0x5a4015[_0x1a32('0x26')]},'individualHooks':!![]});}})['then'](function(){if(_0x5a4015){return _0x5a4015[_0x1a32('0x52')]({'raw':!![]});}})[_0x1a32('0xf')](function(_0x51e191){if(_0x5a4015){if(_0x51e191){var _0x48886f=[];_0x241d6b=_0x51e191;if(_0x241d6b[_0x1a32('0x2d')]){for(var _0x2b7ab9=0x0;_0x2b7ab9<_0x241d6b[_0x1a32('0x2d')];_0x2b7ab9++){_0x48886f[_0x1a32('0x44')](db[_0x1a32('0x29')][_0x1a32('0x53')]({'membername':_0x5a4015[_0x1a32('0x26')],'UserId':_0x5a4015['id'],'queue_name':_0x241d6b[_0x2b7ab9][_0x1a32('0x26')],'VoiceQueueId':_0x241d6b[_0x2b7ab9]['id'],'interface':_0x297a79,'paused':_0x5a4015[_0x1a32('0x4a')]||![],'penalty':_0x241d6b[_0x2b7ab9][_0x1a32('0x54')]||0x0}));}return BPromise[_0x1a32('0x45')](_0x48886f);}}}})[_0x1a32('0xf')](function(){if(_0x5a4015){return db[_0x1a32('0x35')][_0x1a32('0x1b')]({'where':{'membername':_0x5a4015[_0x1a32('0x26')],'exitAt':null}});}})[_0x1a32('0xf')](function(_0x468080){if(_0x5a4015){if(_0x468080&&_0x468080[_0x1a32('0x2d')]){var _0x3b6d11=[];_0x468080[_0x1a32('0x30')](function(_0x3e009a){_0x3b6d11[_0x1a32('0x44')](_0x3e009a[_0x1a32('0x2a')]({'exitAt':moment()[_0x1a32('0x2b')]('YYYY-MM-DD\x20HH:mm:ss')}));});return BPromise['all'](_0x3b6d11);}}})[_0x1a32('0xf')](function(_0x4f516e){if(_0x5a4015){var _0xd75ed6=[];var _0x331cdc=[];var _0xe3086=utils[_0x1a32('0x2f')]();var _0x17d6e9={'membername':_0x5a4015[_0x1a32('0x26')],'interface':_0x297a79,'enterAt':moment()[_0x1a32('0x2b')]('YYYY-MM-DD\x20HH:mm:ss'),'role':_0x5a4015[_0x1a32('0x27')],'internal':_0x5a4015[_0x1a32('0x28')]};_0xe3086[_0x1a32('0x30')](function(_0x260813){_0xd75ed6[_0x1a32('0x44')](_[_0x1a32('0x55')]({'channel':_0x260813,'type':_0x1a32('0x56'),'data1':_0x1a32('0x57'),'data2':_0x297a79},_0x17d6e9));if(_0x5a4015[_0x1a32('0x4a')]){_0x331cdc[_0x1a32('0x44')](_[_0x1a32('0x55')]({'channel':_0x260813,'type':'PAUSE','data1':'LOGININPAUSE'},_0x17d6e9));}});return db[_0x1a32('0x35')][_0x1a32('0x36')](_0xd75ed6[_0x1a32('0x58')](_0x331cdc),{'individualHooks':!![]});}})[_0x1a32('0xf')](function(){if(_0x5a4015){return _0x5a4015[_0x1a32('0x2a')]({'online':!![],'lastLoginAt':moment()[_0x1a32('0x2b')](_0x1a32('0x2c')),'voicePause':_0x5a4015[_0x1a32('0x4a')]||![],'mailPause':_0x5a4015['loginInPause']||![],'chatPause':_0x5a4015['loginInPause']||![],'faxPause':_0x5a4015[_0x1a32('0x4a')]||![],'smsPause':_0x5a4015[_0x1a32('0x4a')]||![],'openchannelPause':_0x5a4015[_0x1a32('0x4a')]||![],'pauseType':_0x5a4015['loginInPause']?_0x1a32('0x59'):null,'lastPauseAt':moment()['format'](_0x1a32('0x2c')),'interface':_0x297a79});}})['then'](function(_0x2d7e30){_0x7f1453(_0x2d7e30);})[_0x1a32('0x19')](function(_0x160460){_0x53df34(_0x1375c1[_0x1a32('0x14')](0x1f4,_0x160460[_0x1a32('0x16')]));});});};