Built motion from commit (unavailable).|2.5.9
[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 _0xccde=['LoginUser','mobile','phone','loginInPause','agent','../../config/license/util','getLicense','agents','Maximum\x20login\x20has\x20been\x20reached','getVoiceQueues','upsert','merge','LOGIN','callysquare','LOGININPAUSE','concat','lodash','moment','randomstring','ioredis','../../config/logger','rpc','../../config/environment','jayson/promise','client','redis','defaults','localhost','./user.socket','register','request','then','info','User,\x20%s,\x20%s','debug','User,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','message','result','catch','GetUser','options','raw','where','attributes','limit','map','include','model','ShowUser','User','find','PauseUser','name','role','update','MemberReport','findAll','PAUSE','format','length','updateAttributes','getChannels','forEach','isNil','interface','SIP/%s','YYYY-MM-DD\x20HH:mm:ss','DEFAULT\x20PAUSE','internal','body','uniqueid','bulkCreate','findOne','isValidChannel','channel','Unknown\x20channel','UserVoiceQueueRt','system','mail','chat','fax','sms','openchannel','whatsapp','set','%s%s','push','all','LogoutUser','destroy'];(function(_0x3ab51d,_0x2fa01d){var _0x29a04e=function(_0x7807b0){while(--_0x7807b0){_0x3ab51d['push'](_0x3ab51d['shift']());}};_0x29a04e(++_0x2fa01d);}(_0xccde,0x1e1));var _0xeccd=function(_0x919445,_0x5467dc){_0x919445=_0x919445-0x0;var _0x511b3e=_0xccde[_0x919445];return _0x511b3e;};'use strict';var _=require(_0xeccd('0x0'));var util=require('util');var moment=require(_0xeccd('0x1'));var BPromise=require('bluebird');var rs=require(_0xeccd('0x2'));var fs=require('fs');var Redis=require(_0xeccd('0x3'));var db=require('../../mysqldb')['db'];var utils=require('../../config/utils');var logger=require(_0xeccd('0x4'))(_0xeccd('0x5'));var config=require(_0xeccd('0x6'));var jayson=require(_0xeccd('0x7'));var client=jayson[_0xeccd('0x8')]['http']({'port':0x232a});config[_0xeccd('0x9')]=_[_0xeccd('0xa')](config[_0xeccd('0x9')],{'host':_0xeccd('0xb'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0xeccd('0x9')]));require(_0xeccd('0xc'))[_0xeccd('0xd')](socket);function respondWithRpcPromise(_0x6baeb,_0x50b0b2,_0x58b867){return new BPromise(function(_0x5baa39,_0x5deb54){return client[_0xeccd('0xe')](_0x6baeb,_0x58b867)[_0xeccd('0xf')](function(_0x1a4616){logger[_0xeccd('0x10')](_0xeccd('0x11'),_0x50b0b2,'request\x20sent');logger[_0xeccd('0x12')](_0xeccd('0x13'),_0x50b0b2,_0xeccd('0x14'),JSON[_0xeccd('0x15')](_0x1a4616));if(_0x1a4616[_0xeccd('0x16')]){if(_0x1a4616[_0xeccd('0x16')]['code']===0x1f4){logger['error'](_0xeccd('0x11'),_0x50b0b2,_0x1a4616[_0xeccd('0x16')][_0xeccd('0x17')]);return _0x5deb54(_0x1a4616[_0xeccd('0x16')]['message']);}logger[_0xeccd('0x16')](_0xeccd('0x11'),_0x50b0b2,_0x1a4616['error']['message']);return _0x5baa39(_0x1a4616[_0xeccd('0x16')][_0xeccd('0x17')]);}else{logger[_0xeccd('0x10')](_0xeccd('0x11'),_0x50b0b2,_0xeccd('0x14'));_0x5baa39(_0x1a4616[_0xeccd('0x18')][_0xeccd('0x17')]);}})[_0xeccd('0x19')](function(_0x5ba676){logger[_0xeccd('0x16')](_0xeccd('0x11'),_0x50b0b2,_0x5ba676);_0x5deb54(_0x5ba676);});});}exports[_0xeccd('0x1a')]=function(_0x20a11a){var _0x394179=this;return new Promise(function(_0x2a8bba,_0x508439){return db['User']['findAll']({'raw':_0x20a11a[_0xeccd('0x1b')]?_0x20a11a['options'][_0xeccd('0x1c')]===undefined?!![]:![]:!![],'where':_0x20a11a[_0xeccd('0x1b')]?_0x20a11a['options'][_0xeccd('0x1d')]||null:null,'attributes':_0x20a11a['options']?_0x20a11a[_0xeccd('0x1b')][_0xeccd('0x1e')]||null:null,'limit':_0x20a11a[_0xeccd('0x1b')]?_0x20a11a[_0xeccd('0x1b')][_0xeccd('0x1f')]||null:null,'include':_0x20a11a['options']?_0x20a11a[_0xeccd('0x1b')]['include']?_[_0xeccd('0x20')](_0x20a11a[_0xeccd('0x1b')][_0xeccd('0x21')],function(_0x449883){return{'model':db[_0x449883['model']],'as':_0x449883['as'],'attributes':_0x449883[_0xeccd('0x1e')],'include':_0x449883[_0xeccd('0x21')]?_[_0xeccd('0x20')](_0x449883[_0xeccd('0x21')],function(_0x4fbd3a){return{'model':db[_0x4fbd3a[_0xeccd('0x22')]],'as':_0x4fbd3a['as'],'attributes':_0x4fbd3a[_0xeccd('0x1e')],'include':_0x4fbd3a[_0xeccd('0x21')]?_[_0xeccd('0x20')](_0x4fbd3a[_0xeccd('0x21')],function(_0x1c0a3f){return{'model':db[_0x1c0a3f[_0xeccd('0x22')]],'as':_0x1c0a3f['as'],'attributes':_0x1c0a3f[_0xeccd('0x1e')]};}):[]};}):[]};}):[]:[]})[_0xeccd('0xf')](function(_0x59420e){logger[_0xeccd('0x10')]('GetUser',_0x20a11a);logger[_0xeccd('0x12')](_0xeccd('0x1a'),_0x20a11a,JSON[_0xeccd('0x15')](_0x59420e));_0x2a8bba(_0x59420e);})[_0xeccd('0x19')](function(_0x330f8d){logger[_0xeccd('0x16')](_0xeccd('0x1a'),_0x330f8d[_0xeccd('0x17')],_0x20a11a);_0x508439(_0x394179[_0xeccd('0x16')](0x1f4,_0x330f8d[_0xeccd('0x17')]));});});};exports[_0xeccd('0x23')]=function(_0x354bc5){var _0x207d97=this;return new Promise(function(_0x21d40e,_0x5ef5c6){return db[_0xeccd('0x24')][_0xeccd('0x25')]({'raw':_0x354bc5['options']?_0x354bc5[_0xeccd('0x1b')][_0xeccd('0x1c')]===undefined?!![]:![]:!![],'where':_0x354bc5['options']?_0x354bc5[_0xeccd('0x1b')][_0xeccd('0x1d')]||null:null,'attributes':_0x354bc5[_0xeccd('0x1b')]?_0x354bc5[_0xeccd('0x1b')][_0xeccd('0x1e')]||null:null,'include':_0x354bc5[_0xeccd('0x1b')]?_0x354bc5[_0xeccd('0x1b')][_0xeccd('0x21')]?_[_0xeccd('0x20')](_0x354bc5['options']['include'],function(_0x100ef3){return{'model':db[_0x100ef3[_0xeccd('0x22')]],'as':_0x100ef3['as'],'attributes':_0x100ef3[_0xeccd('0x1e')],'include':_0x100ef3[_0xeccd('0x21')]?_[_0xeccd('0x20')](_0x100ef3[_0xeccd('0x21')],function(_0x3b5e30){return{'model':db[_0x3b5e30[_0xeccd('0x22')]],'as':_0x3b5e30['as'],'attributes':_0x3b5e30[_0xeccd('0x1e')],'include':_0x3b5e30[_0xeccd('0x21')]?_[_0xeccd('0x20')](_0x3b5e30[_0xeccd('0x21')],function(_0x578332){return{'model':db[_0x578332[_0xeccd('0x22')]],'as':_0x578332['as'],'attributes':_0x578332['attributes']};}):[]};}):[]};}):[]:[]})[_0xeccd('0xf')](function(_0x22f1a4){logger[_0xeccd('0x10')]('ShowUser',_0x354bc5);logger[_0xeccd('0x12')](_0xeccd('0x23'),_0x354bc5,JSON['stringify'](_0x22f1a4));_0x21d40e(_0x22f1a4);})['catch'](function(_0x3e5a93){logger[_0xeccd('0x16')](_0xeccd('0x23'),_0x3e5a93['message'],_0x354bc5);_0x5ef5c6(_0x207d97[_0xeccd('0x16')](0x1f4,_0x3e5a93['message']));});});};exports[_0xeccd('0x26')]=function(_0x51e0a2){var _0x29b0c9=this;return new Promise(function(_0xbf48b5,_0x14fddf){var _0x22bf5c;return db['User']['find']({'where':_0x51e0a2[_0xeccd('0x1b')]['where']||{},'attributes':['id',_0xeccd('0x27'),_0xeccd('0x28'),'internal','interface']})[_0xeccd('0xf')](function(_0x15203a){if(_0x15203a){_0x22bf5c=_0x15203a;return db['UserVoiceQueueRt'][_0xeccd('0x29')]({'paused':0x1},{'where':{'UserId':_0x22bf5c['id']},'individualHooks':!![]});}})[_0xeccd('0xf')](function(){if(_0x22bf5c){return db[_0xeccd('0x2a')][_0xeccd('0x2b')]({'where':{'membername':_0x22bf5c[_0xeccd('0x27')],'type':_0xeccd('0x2c'),'exitAt':null}});}})['then'](function(_0x351862){if(_0x22bf5c){if(_0x351862&&_0x351862['length']){var _0x391818=moment()[_0xeccd('0x2d')]('YYYY-MM-DD\x20HH:mm:ss');for(var _0x186dfc=0x0,_0x47cc7a=_0x351862[_0xeccd('0x2e')];_0x186dfc<_0x47cc7a;_0x186dfc++){_0x351862[_0x186dfc][_0xeccd('0x2f')]({'exitAt':_0x391818});}}}})[_0xeccd('0xf')](function(){if(_0x22bf5c){var _0x514e38=[];var _0x1ca85d=utils[_0xeccd('0x30')]();_0x1ca85d[_0xeccd('0x31')](function(_0x441c2c){_0x514e38['push']({'channel':_0x441c2c,'membername':_0x22bf5c['name'],'interface':_[_0xeccd('0x32')](_0x22bf5c[_0xeccd('0x33')])?util[_0xeccd('0x2d')](_0xeccd('0x34'),_0x22bf5c[_0xeccd('0x27')]):_0x22bf5c[_0xeccd('0x33')],'type':_0xeccd('0x2c'),'enterAt':moment()[_0xeccd('0x2d')](_0xeccd('0x35')),'data1':_0x51e0a2['body']['type']||_0xeccd('0x36'),'role':_0x22bf5c[_0xeccd('0x28')],'internal':_0x22bf5c[_0xeccd('0x37')],'uniqueid':_0x51e0a2[_0xeccd('0x38')][_0xeccd('0x39')]||null});});return db[_0xeccd('0x2a')][_0xeccd('0x3a')](_0x514e38,{'individualHooks':!![]});}})[_0xeccd('0xf')](function(){if(_0x22bf5c){return _0x22bf5c['update']({'voicePause':!![],'mailPause':!![],'chatPause':!![],'faxPause':!![],'smsPause':!![],'openchannelPause':!![],'whatsappPause':!![],'pauseType':_0x51e0a2['body']['type']||_0xeccd('0x36'),'lastPauseAt':moment()['format'](_0xeccd('0x35'))});}})[_0xeccd('0xf')](function(_0x5033e9){_0xbf48b5(_0x5033e9);})[_0xeccd('0x19')](function(_0x364964){_0x14fddf(_0x29b0c9[_0xeccd('0x16')](0x1f4,_0x364964[_0xeccd('0x17')]));});});};exports['UnpauseUser']=function(_0x2fef72){var _0x5cdef1=this;return new Promise(function(_0x61657e,_0x20d093){var _0x3cf01d;return db[_0xeccd('0x24')][_0xeccd('0x3b')]({'where':_0x2fef72['options'][_0xeccd('0x1d')]||{},'attributes':['id',_0xeccd('0x27')]})['then'](function(_0x49893c){if(_0x49893c){_0x3cf01d=_0x49893c;if(_0x2fef72[_0xeccd('0x38')]['channel']&&!utils[_0xeccd('0x3c')](_0x2fef72['body'][_0xeccd('0x3d')])){throw new Error(_0xeccd('0x3e'));}switch(_0x2fef72[_0xeccd('0x38')]['channel']){case'voice':return db[_0xeccd('0x3f')]['update']({'paused':0x0},{'where':{'UserId':_0x3cf01d['id']}})[_0xeccd('0xf')](function(){return db['MemberReport']['find']({'where':{'channel':_0x2fef72[_0xeccd('0x38')][_0xeccd('0x3d')],'membername':_0x3cf01d[_0xeccd('0x27')],'type':'PAUSE','exitAt':null}});})[_0xeccd('0xf')](function(_0x528a08){if(_0x528a08){return _0x528a08[_0xeccd('0x29')]({'exitAt':moment()['format'](_0xeccd('0x35')),'data2':_0xeccd('0x40')},{'individualHooks':!![]});}return null;})['then'](function(){return _0x3cf01d[_0xeccd('0x29')]({'voicePause':![]});});case _0xeccd('0x41'):case _0xeccd('0x42'):case _0xeccd('0x43'):case _0xeccd('0x44'):case _0xeccd('0x45'):case _0xeccd('0x46'):return db[_0xeccd('0x2a')][_0xeccd('0x25')]({'where':{'channel':_0x2fef72[_0xeccd('0x38')][_0xeccd('0x3d')],'membername':_0x3cf01d[_0xeccd('0x27')],'type':_0xeccd('0x2c'),'exitAt':null}})['then'](function(_0x121464){return _0x121464[_0xeccd('0x29')]({'exitAt':moment()[_0xeccd('0x2d')](_0xeccd('0x35')),'data2':_0xeccd('0x40')},{'individualHooks':!![]});})['then'](function(){var _0x20bdcc={};_[_0xeccd('0x47')](_0x20bdcc,util['format'](_0xeccd('0x48'),_0x2fef72[_0xeccd('0x38')][_0xeccd('0x3d')],'Pause'),![]);return _0x3cf01d[_0xeccd('0x29')](_0x20bdcc);});default:return db[_0xeccd('0x3f')]['update']({'paused':0x0},{'where':{'UserId':_0x3cf01d['id']}})[_0xeccd('0xf')](function(){return db[_0xeccd('0x2a')][_0xeccd('0x2b')]({'where':{'membername':_0x3cf01d['name'],'type':_0xeccd('0x2c'),'exitAt':null}});})['then'](function(_0x52c23a){var _0x45a86b=[];_0x52c23a[_0xeccd('0x31')](function(_0xb9c1e3){_0x45a86b[_0xeccd('0x49')](_0xb9c1e3['update']({'exitAt':moment()[_0xeccd('0x2d')](_0xeccd('0x35')),'data2':_0xeccd('0x40')}));});return BPromise[_0xeccd('0x4a')](_0x45a86b);})[_0xeccd('0xf')](function(){return _0x3cf01d[_0xeccd('0x29')]({'voicePause':![],'mailPause':![],'chatPause':![],'faxPause':![],'smsPause':![],'openchannelPause':![],'whatsappPause':![]});});}}})[_0xeccd('0xf')](function(_0x4e8822){_0x61657e(_0x4e8822);})[_0xeccd('0x19')](function(_0x1b30ca){_0x20d093(_0x5cdef1[_0xeccd('0x16')](0x1f4,_0x1b30ca[_0xeccd('0x17')]));});});};exports[_0xeccd('0x4b')]=function(_0x112007){var _0x3a63e8=this;return new Promise(function(_0x7e400e,_0x44889d){var _0x549892;return db[_0xeccd('0x24')][_0xeccd('0x3b')]({'where':_0x112007[_0xeccd('0x1b')][_0xeccd('0x1d')]||{},'attributes':['id','name']})['then'](function(_0x15904a){if(_0x15904a){_0x549892=_0x15904a;return db[_0xeccd('0x3f')][_0xeccd('0x4c')]({'where':{'membername':_0x549892[_0xeccd('0x27')]},'individualHooks':!![]});}})['then'](function(){if(_0x549892){return db[_0xeccd('0x2a')][_0xeccd('0x2b')]({'where':{'membername':_0x549892[_0xeccd('0x27')],'exitAt':null}});}})['then'](function(_0x46690b){if(_0x549892){if(_0x46690b&&_0x46690b[_0xeccd('0x2e')]){var _0x1b4e44=[];_0x46690b[_0xeccd('0x31')](function(_0x1b5f60){_0x1b4e44[_0xeccd('0x49')](_0x1b5f60[_0xeccd('0x29')]({'exitAt':moment()[_0xeccd('0x2d')](_0xeccd('0x35'))}));});return BPromise[_0xeccd('0x4a')](_0x1b4e44);}}})['then'](function(){if(_0x549892){return _0x549892['update']({'online':![],'lastLoginAt':null,'voicePause':![],'mailPause':![],'chatPause':![],'faxPause':![],'smsPause':![],'openchannelPause':![]});}})['then'](function(_0x2c3a39){_0x7e400e(_0x2c3a39);})[_0xeccd('0x19')](function(_0x5d9e9d){_0x44889d(_0x3a63e8[_0xeccd('0x16')](0x1f4,_0x5d9e9d[_0xeccd('0x17')]));});});};exports[_0xeccd('0x4d')]=function(_0x25f7d8){var _0x554cbd=this;return new Promise(function(_0x59c288,_0x30c27d){var _0x55e78c;var _0x1dda6c;var _0xb9ff44;var _0x2ff023;return db[_0xeccd('0x24')]['findOne']({'where':_0x25f7d8[_0xeccd('0x1b')][_0xeccd('0x1d')]||{},'attributes':['id','name',_0xeccd('0x28'),_0xeccd('0x4e'),_0xeccd('0x4f'),_0xeccd('0x37'),_0xeccd('0x50'),_0xeccd('0x33')]})[_0xeccd('0xf')](function(_0x511332){if(_0x511332){_0x55e78c=_0x511332;_0x2ff023=_0x25f7d8[_0xeccd('0x38')][_0xeccd('0x33')]?_0x25f7d8[_0xeccd('0x38')]['interface']:util['format']('SIP/%s',_0x55e78c[_0xeccd('0x27')]);return db[_0xeccd('0x24')]['count']({'where':{'role':_0xeccd('0x51'),'online':!![],'id':{'$ne':_0x55e78c['id']}}});}})[_0xeccd('0xf')](function(_0x2c2bf6){if(_0x2c2bf6){_0xb9ff44=_0x2c2bf6;return require(_0xeccd('0x52'))[_0xeccd('0x53')]();}})[_0xeccd('0xf')](function(_0x59318a){if(_0x59318a&&_0x59318a[_0xeccd('0x54')]&&_0xb9ff44>=_0x59318a[_0xeccd('0x54')]){throw new Error(_0xeccd('0x55'));}})['then'](function(){if(_0x55e78c){return db[_0xeccd('0x3f')][_0xeccd('0x4c')]({'where':{'membername':_0x55e78c[_0xeccd('0x27')]},'individualHooks':!![]});}})[_0xeccd('0xf')](function(){if(_0x55e78c){return _0x55e78c[_0xeccd('0x56')]({'raw':!![]});}})[_0xeccd('0xf')](function(_0xe18efd){if(_0x55e78c){if(_0xe18efd){var _0x162419=[];_0x1dda6c=_0xe18efd;if(_0x1dda6c[_0xeccd('0x2e')]){for(var _0x565ce2=0x0;_0x565ce2<_0x1dda6c[_0xeccd('0x2e')];_0x565ce2++){_0x162419['push'](db[_0xeccd('0x3f')][_0xeccd('0x57')]({'membername':_0x55e78c['name'],'UserId':_0x55e78c['id'],'queue_name':_0x1dda6c[_0x565ce2]['name'],'VoiceQueueId':_0x1dda6c[_0x565ce2]['id'],'interface':_0x2ff023,'paused':_0x55e78c[_0xeccd('0x50')]||![],'penalty':_0x1dda6c[_0x565ce2]['UserVoiceQueue.penalty']||0x0}));}return BPromise['all'](_0x162419);}}}})[_0xeccd('0xf')](function(){if(_0x55e78c){return db[_0xeccd('0x2a')]['findAll']({'where':{'membername':_0x55e78c[_0xeccd('0x27')],'exitAt':null}});}})['then'](function(_0x2a430c){if(_0x55e78c){if(_0x2a430c&&_0x2a430c['length']){var _0x3e0a55=[];_0x2a430c[_0xeccd('0x31')](function(_0x23b9d3){_0x3e0a55[_0xeccd('0x49')](_0x23b9d3['update']({'exitAt':moment()[_0xeccd('0x2d')](_0xeccd('0x35'))}));});return BPromise[_0xeccd('0x4a')](_0x3e0a55);}}})[_0xeccd('0xf')](function(_0xfdf1ac){if(_0x55e78c){var _0xdfa01f=[];var _0x4e8404=[];var _0xd9335=utils['getChannels']();var _0x90810b={'membername':_0x55e78c[_0xeccd('0x27')],'interface':_0x2ff023,'enterAt':moment()['format']('YYYY-MM-DD\x20HH:mm:ss'),'role':_0x55e78c[_0xeccd('0x28')],'internal':_0x55e78c[_0xeccd('0x37')]};_0xd9335['forEach'](function(_0x3afe85){_0xdfa01f[_0xeccd('0x49')](_[_0xeccd('0x58')]({'channel':_0x3afe85,'type':_0xeccd('0x59'),'data1':_0xeccd('0x5a'),'data2':_0x2ff023},_0x90810b));if(_0x55e78c['loginInPause']){_0x4e8404[_0xeccd('0x49')](_[_0xeccd('0x58')]({'channel':_0x3afe85,'type':_0xeccd('0x2c'),'data1':_0xeccd('0x5b')},_0x90810b));}});return db[_0xeccd('0x2a')]['bulkCreate'](_0xdfa01f[_0xeccd('0x5c')](_0x4e8404),{'individualHooks':!![]});}})[_0xeccd('0xf')](function(){if(_0x55e78c){return _0x55e78c[_0xeccd('0x29')]({'online':!![],'lastLoginAt':moment()['format'](_0xeccd('0x35')),'voicePause':_0x55e78c[_0xeccd('0x50')]||![],'mailPause':_0x55e78c[_0xeccd('0x50')]||![],'chatPause':_0x55e78c[_0xeccd('0x50')]||![],'faxPause':_0x55e78c[_0xeccd('0x50')]||![],'smsPause':_0x55e78c['loginInPause']||![],'openchannelPause':_0x55e78c[_0xeccd('0x50')]||![],'pauseType':_0x55e78c[_0xeccd('0x50')]?_0xeccd('0x5b'):null,'lastPauseAt':moment()[_0xeccd('0x2d')]('YYYY-MM-DD\x20HH:mm:ss'),'interface':_0x2ff023});}})[_0xeccd('0xf')](function(_0x6d0e91){_0x59c288(_0x6d0e91);})['catch'](function(_0x1f334c){_0x30c27d(_0x554cbd[_0xeccd('0x16')](0x1f4,_0x1f334c[_0xeccd('0x17')]));});});};