7f26bafefb5917e8d107ba8d0f792cd41bead508
[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 _0xd597=['PauseUser','name','role','internal','UserVoiceQueueRt','update','MemberReport','findAll','PAUSE','format','YYYY-MM-DD\x20HH:mm:ss','length','updateAttributes','getChannels','push','isNil','interface','SIP/%s','body','bulkCreate','type','DEFAULT\x20PAUSE','UnpauseUser','findOne','channel','Unknown\x20channel','find','system','mail','chat','sms','set','forEach','all','LogoutUser','destroy','LoginUser','mobile','phone','loginInPause','count','agent','../../config/license/util','getLicense','agents','Maximum\x20login\x20has\x20been\x20reached','getVoiceQueues','upsert','UserVoiceQueue.penalty','merge','LOGIN','LOGININPAUSE','concat','lodash','util','moment','randomstring','../../config/logger','rpc','../../config/environment','client','http','defaults','redis','localhost','socket.io-emitter','./user.socket','request','then','info','User,\x20%s,\x20%s','request\x20sent','debug','User,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','User','options','raw','where','limit','map','include','model','attributes','GetUser','ShowUser'];(function(_0x22cf5c,_0xdfa91d){var _0x41d060=function(_0x43eff1){while(--_0x43eff1){_0x22cf5c['push'](_0x22cf5c['shift']());}};_0x41d060(++_0xdfa91d);}(_0xd597,0x1a1));var _0x7d59=function(_0x3f588a,_0x27e3b5){_0x3f588a=_0x3f588a-0x0;var _0x407b6d=_0xd597[_0x3f588a];return _0x407b6d;};'use strict';var _=require(_0x7d59('0x0'));var util=require(_0x7d59('0x1'));var moment=require(_0x7d59('0x2'));var BPromise=require('bluebird');var rs=require(_0x7d59('0x3'));var fs=require('fs');var Redis=require('ioredis');var db=require('../../mysqldb')['db'];var utils=require('../../config/utils');var logger=require(_0x7d59('0x4'))(_0x7d59('0x5'));var config=require(_0x7d59('0x6'));var jayson=require('jayson/promise');var client=jayson[_0x7d59('0x7')][_0x7d59('0x8')]({'port':0x232a});config['redis']=_[_0x7d59('0x9')](config[_0x7d59('0xa')],{'host':_0x7d59('0xb'),'port':0x18eb});var socket=require(_0x7d59('0xc'))(new Redis(config[_0x7d59('0xa')]));require(_0x7d59('0xd'))['register'](socket);function respondWithRpcPromise(_0x544c06,_0x172e29,_0x430d8a){return new BPromise(function(_0x5ea2fc,_0xa26e6e){return client[_0x7d59('0xe')](_0x544c06,_0x430d8a)[_0x7d59('0xf')](function(_0x46693e){logger[_0x7d59('0x10')](_0x7d59('0x11'),_0x172e29,_0x7d59('0x12'));logger[_0x7d59('0x13')](_0x7d59('0x14'),_0x172e29,'request\x20sent',JSON[_0x7d59('0x15')](_0x46693e));if(_0x46693e[_0x7d59('0x16')]){if(_0x46693e[_0x7d59('0x16')][_0x7d59('0x17')]===0x1f4){logger[_0x7d59('0x16')](_0x7d59('0x11'),_0x172e29,_0x46693e['error'][_0x7d59('0x18')]);return _0xa26e6e(_0x46693e[_0x7d59('0x16')][_0x7d59('0x18')]);}logger[_0x7d59('0x16')](_0x7d59('0x11'),_0x172e29,_0x46693e[_0x7d59('0x16')][_0x7d59('0x18')]);return _0x5ea2fc(_0x46693e['error'][_0x7d59('0x18')]);}else{logger[_0x7d59('0x10')](_0x7d59('0x11'),_0x172e29,'request\x20sent');_0x5ea2fc(_0x46693e[_0x7d59('0x19')][_0x7d59('0x18')]);}})[_0x7d59('0x1a')](function(_0x11217f){logger[_0x7d59('0x16')](_0x7d59('0x11'),_0x172e29,_0x11217f);_0xa26e6e(_0x11217f);});});}exports['GetUser']=function(_0x160ee0){var _0x5ca798=this;return new Promise(function(_0x2dbf4f,_0x3ee3be){return db[_0x7d59('0x1b')]['findAll']({'raw':_0x160ee0[_0x7d59('0x1c')]?_0x160ee0['options'][_0x7d59('0x1d')]===undefined?!![]:![]:!![],'where':_0x160ee0[_0x7d59('0x1c')]?_0x160ee0[_0x7d59('0x1c')][_0x7d59('0x1e')]||null:null,'attributes':_0x160ee0[_0x7d59('0x1c')]?_0x160ee0['options']['attributes']||null:null,'limit':_0x160ee0[_0x7d59('0x1c')]?_0x160ee0[_0x7d59('0x1c')][_0x7d59('0x1f')]||null:null,'include':_0x160ee0['options']?_0x160ee0['options']['include']?_[_0x7d59('0x20')](_0x160ee0['options'][_0x7d59('0x21')],function(_0x3298dd){return{'model':db[_0x3298dd[_0x7d59('0x22')]],'as':_0x3298dd['as'],'attributes':_0x3298dd['attributes'],'include':_0x3298dd[_0x7d59('0x21')]?_[_0x7d59('0x20')](_0x3298dd[_0x7d59('0x21')],function(_0x144e28){return{'model':db[_0x144e28[_0x7d59('0x22')]],'as':_0x144e28['as'],'attributes':_0x144e28[_0x7d59('0x23')],'include':_0x144e28[_0x7d59('0x21')]?_['map'](_0x144e28[_0x7d59('0x21')],function(_0x561e1b){return{'model':db[_0x561e1b['model']],'as':_0x561e1b['as'],'attributes':_0x561e1b[_0x7d59('0x23')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x4766f4){logger['info'](_0x7d59('0x24'),_0x160ee0);logger['debug'](_0x7d59('0x24'),_0x160ee0,JSON[_0x7d59('0x15')](_0x4766f4));_0x2dbf4f(_0x4766f4);})[_0x7d59('0x1a')](function(_0x3a4371){logger['error'](_0x7d59('0x24'),_0x3a4371[_0x7d59('0x18')],_0x160ee0);_0x3ee3be(_0x5ca798['error'](0x1f4,_0x3a4371[_0x7d59('0x18')]));});});};exports[_0x7d59('0x25')]=function(_0x36420c){var _0x136e30=this;return new Promise(function(_0x354ba0,_0x237cbd){return db[_0x7d59('0x1b')]['find']({'raw':_0x36420c['options']?_0x36420c[_0x7d59('0x1c')]['raw']===undefined?!![]:![]:!![],'where':_0x36420c[_0x7d59('0x1c')]?_0x36420c[_0x7d59('0x1c')][_0x7d59('0x1e')]||null:null,'attributes':_0x36420c[_0x7d59('0x1c')]?_0x36420c['options'][_0x7d59('0x23')]||null:null,'include':_0x36420c['options']?_0x36420c[_0x7d59('0x1c')]['include']?_[_0x7d59('0x20')](_0x36420c[_0x7d59('0x1c')][_0x7d59('0x21')],function(_0x4899ad){return{'model':db[_0x4899ad[_0x7d59('0x22')]],'as':_0x4899ad['as'],'attributes':_0x4899ad[_0x7d59('0x23')],'include':_0x4899ad[_0x7d59('0x21')]?_[_0x7d59('0x20')](_0x4899ad[_0x7d59('0x21')],function(_0x410884){return{'model':db[_0x410884['model']],'as':_0x410884['as'],'attributes':_0x410884['attributes'],'include':_0x410884[_0x7d59('0x21')]?_[_0x7d59('0x20')](_0x410884[_0x7d59('0x21')],function(_0x17520b){return{'model':db[_0x17520b[_0x7d59('0x22')]],'as':_0x17520b['as'],'attributes':_0x17520b[_0x7d59('0x23')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x2fb5d1){logger['info'](_0x7d59('0x25'),_0x36420c);logger[_0x7d59('0x13')]('ShowUser',_0x36420c,JSON['stringify'](_0x2fb5d1));_0x354ba0(_0x2fb5d1);})[_0x7d59('0x1a')](function(_0x1845c5){logger[_0x7d59('0x16')]('ShowUser',_0x1845c5['message'],_0x36420c);_0x237cbd(_0x136e30['error'](0x1f4,_0x1845c5[_0x7d59('0x18')]));});});};exports[_0x7d59('0x26')]=function(_0x2ade3d){var _0x59b720=this;return new Promise(function(_0x329f74,_0x58d545){var _0x3a2a49;return db[_0x7d59('0x1b')]['find']({'where':_0x2ade3d[_0x7d59('0x1c')][_0x7d59('0x1e')]||{},'attributes':['id',_0x7d59('0x27'),_0x7d59('0x28'),_0x7d59('0x29'),'interface']})[_0x7d59('0xf')](function(_0x3a3d06){if(_0x3a3d06){_0x3a2a49=_0x3a3d06;return db[_0x7d59('0x2a')][_0x7d59('0x2b')]({'paused':0x1},{'where':{'UserId':_0x3a2a49['id']},'individualHooks':!![]});}})[_0x7d59('0xf')](function(){if(_0x3a2a49){return db[_0x7d59('0x2c')][_0x7d59('0x2d')]({'where':{'membername':_0x3a2a49['name'],'type':_0x7d59('0x2e'),'exitAt':null}});}})[_0x7d59('0xf')](function(_0x1b9510){if(_0x3a2a49){if(_0x1b9510&&_0x1b9510['length']){var _0x5795ae=moment()[_0x7d59('0x2f')](_0x7d59('0x30'));for(var _0x450898=0x0,_0x145e14=_0x1b9510[_0x7d59('0x31')];_0x450898<_0x145e14;_0x450898++){_0x1b9510[_0x450898][_0x7d59('0x32')]({'exitAt':_0x5795ae});}}}})[_0x7d59('0xf')](function(){if(_0x3a2a49){var _0xe2e456=[];var _0x4fabe5=utils[_0x7d59('0x33')]();_0x4fabe5['forEach'](function(_0x720bbb){_0xe2e456[_0x7d59('0x34')]({'channel':_0x720bbb,'membername':_0x3a2a49[_0x7d59('0x27')],'interface':_[_0x7d59('0x35')](_0x3a2a49[_0x7d59('0x36')])?util['format'](_0x7d59('0x37'),_0x3a2a49[_0x7d59('0x27')]):_0x3a2a49['interface'],'type':_0x7d59('0x2e'),'enterAt':moment()[_0x7d59('0x2f')](_0x7d59('0x30')),'data1':_0x2ade3d['body']['type']||'DEFAULT\x20PAUSE','role':_0x3a2a49[_0x7d59('0x28')],'internal':_0x3a2a49[_0x7d59('0x29')],'uniqueid':_0x2ade3d[_0x7d59('0x38')]['uniqueid']||null});});return db[_0x7d59('0x2c')][_0x7d59('0x39')](_0xe2e456,{'individualHooks':!![]});}})[_0x7d59('0xf')](function(){if(_0x3a2a49){return _0x3a2a49['update']({'voicePause':!![],'mailPause':!![],'chatPause':!![],'faxPause':!![],'smsPause':!![],'openchannelPause':!![],'whatsappPause':!![],'pauseType':_0x2ade3d[_0x7d59('0x38')][_0x7d59('0x3a')]||_0x7d59('0x3b'),'lastPauseAt':moment()[_0x7d59('0x2f')](_0x7d59('0x30'))});}})['then'](function(_0x15b709){_0x329f74(_0x15b709);})[_0x7d59('0x1a')](function(_0x4c351e){_0x58d545(_0x59b720[_0x7d59('0x16')](0x1f4,_0x4c351e['message']));});});};exports[_0x7d59('0x3c')]=function(_0x2cc543){var _0x14868f=this;return new Promise(function(_0x32b7f1,_0x31630a){var _0x39f0d9;return db[_0x7d59('0x1b')][_0x7d59('0x3d')]({'where':_0x2cc543['options']['where']||{},'attributes':['id','name']})[_0x7d59('0xf')](function(_0x36d0da){if(_0x36d0da){_0x39f0d9=_0x36d0da;if(_0x2cc543[_0x7d59('0x38')][_0x7d59('0x3e')]&&!utils['isValidChannel'](_0x2cc543[_0x7d59('0x38')][_0x7d59('0x3e')])){throw new Error(_0x7d59('0x3f'));}switch(_0x2cc543[_0x7d59('0x38')][_0x7d59('0x3e')]){case'voice':return db[_0x7d59('0x2a')][_0x7d59('0x2b')]({'paused':0x0},{'where':{'UserId':_0x39f0d9['id']}})['then'](function(){return db['MemberReport'][_0x7d59('0x40')]({'where':{'channel':_0x2cc543[_0x7d59('0x38')]['channel'],'membername':_0x39f0d9[_0x7d59('0x27')],'type':_0x7d59('0x2e'),'exitAt':null}});})[_0x7d59('0xf')](function(_0x2ebbe2){if(_0x2ebbe2){return _0x2ebbe2[_0x7d59('0x2b')]({'exitAt':moment()['format'](_0x7d59('0x30')),'data2':_0x7d59('0x41')},{'individualHooks':!![]});}return null;})[_0x7d59('0xf')](function(){return _0x39f0d9[_0x7d59('0x2b')]({'voicePause':![]});});case _0x7d59('0x42'):case _0x7d59('0x43'):case'fax':case _0x7d59('0x44'):case'openchannel':case'whatsapp':return db[_0x7d59('0x2c')][_0x7d59('0x40')]({'where':{'channel':_0x2cc543['body'][_0x7d59('0x3e')],'membername':_0x39f0d9[_0x7d59('0x27')],'type':_0x7d59('0x2e'),'exitAt':null}})[_0x7d59('0xf')](function(_0x2163c3){return _0x2163c3[_0x7d59('0x2b')]({'exitAt':moment()['format'](_0x7d59('0x30')),'data2':'system'},{'individualHooks':!![]});})[_0x7d59('0xf')](function(){var _0xe92510={};_[_0x7d59('0x45')](_0xe92510,util['format']('%s%s',_0x2cc543[_0x7d59('0x38')][_0x7d59('0x3e')],'Pause'),![]);return _0x39f0d9[_0x7d59('0x2b')](_0xe92510);});default:return db[_0x7d59('0x2a')][_0x7d59('0x2b')]({'paused':0x0},{'where':{'UserId':_0x39f0d9['id']}})['then'](function(){return db[_0x7d59('0x2c')]['findAll']({'where':{'membername':_0x39f0d9[_0x7d59('0x27')],'type':_0x7d59('0x2e'),'exitAt':null}});})[_0x7d59('0xf')](function(_0x1c8268){var _0x4dfeb9=[];_0x1c8268[_0x7d59('0x46')](function(_0xa454b5){_0x4dfeb9[_0x7d59('0x34')](_0xa454b5[_0x7d59('0x2b')]({'exitAt':moment()[_0x7d59('0x2f')](_0x7d59('0x30')),'data2':'system'}));});return BPromise[_0x7d59('0x47')](_0x4dfeb9);})[_0x7d59('0xf')](function(){return _0x39f0d9[_0x7d59('0x2b')]({'voicePause':![],'mailPause':![],'chatPause':![],'faxPause':![],'smsPause':![],'openchannelPause':![],'whatsappPause':![]});});}}})[_0x7d59('0xf')](function(_0xb1ca00){_0x32b7f1(_0xb1ca00);})[_0x7d59('0x1a')](function(_0x3daaa5){_0x31630a(_0x14868f[_0x7d59('0x16')](0x1f4,_0x3daaa5[_0x7d59('0x18')]));});});};exports[_0x7d59('0x48')]=function(_0x2f2ad3){var _0x1e1709=this;return new Promise(function(_0x2cd8d7,_0x5473ac){var _0x2ae34d;return db[_0x7d59('0x1b')][_0x7d59('0x3d')]({'where':_0x2f2ad3[_0x7d59('0x1c')]['where']||{},'attributes':['id',_0x7d59('0x27')]})[_0x7d59('0xf')](function(_0x55ea12){if(_0x55ea12){_0x2ae34d=_0x55ea12;return db[_0x7d59('0x2a')][_0x7d59('0x49')]({'where':{'membername':_0x2ae34d[_0x7d59('0x27')]},'individualHooks':!![]});}})[_0x7d59('0xf')](function(){if(_0x2ae34d){return db['MemberReport']['findAll']({'where':{'membername':_0x2ae34d[_0x7d59('0x27')],'exitAt':null}});}})['then'](function(_0x864b11){if(_0x2ae34d){if(_0x864b11&&_0x864b11[_0x7d59('0x31')]){var _0x92ef45=[];_0x864b11['forEach'](function(_0x5890ef){_0x92ef45[_0x7d59('0x34')](_0x5890ef[_0x7d59('0x2b')]({'exitAt':moment()[_0x7d59('0x2f')]('YYYY-MM-DD\x20HH:mm:ss')}));});return BPromise[_0x7d59('0x47')](_0x92ef45);}}})[_0x7d59('0xf')](function(){if(_0x2ae34d){return _0x2ae34d[_0x7d59('0x2b')]({'online':![],'voicePause':![],'mailPause':![],'chatPause':![],'faxPause':![],'smsPause':![],'openchannelPause':![]});}})[_0x7d59('0xf')](function(_0x259170){_0x2cd8d7(_0x259170);})[_0x7d59('0x1a')](function(_0x492009){_0x5473ac(_0x1e1709[_0x7d59('0x16')](0x1f4,_0x492009[_0x7d59('0x18')]));});});};exports[_0x7d59('0x4a')]=function(_0x55cb72){var _0x4ce4c5=this;return new Promise(function(_0xae9108,_0x8ee759){var _0x566127;var _0x48a309;var _0x3e4da0;var _0x5ef0c7;return db[_0x7d59('0x1b')][_0x7d59('0x3d')]({'where':_0x55cb72[_0x7d59('0x1c')][_0x7d59('0x1e')]||{},'attributes':['id',_0x7d59('0x27'),_0x7d59('0x28'),_0x7d59('0x4b'),_0x7d59('0x4c'),'internal',_0x7d59('0x4d'),_0x7d59('0x36')]})[_0x7d59('0xf')](function(_0x1aa30f){if(_0x1aa30f){_0x566127=_0x1aa30f;_0x5ef0c7=_0x55cb72[_0x7d59('0x38')]['interface']?_0x55cb72[_0x7d59('0x38')][_0x7d59('0x36')]:util['format'](_0x7d59('0x37'),_0x566127[_0x7d59('0x27')]);return db[_0x7d59('0x1b')][_0x7d59('0x4e')]({'where':{'role':_0x7d59('0x4f'),'online':!![],'id':{'$ne':_0x566127['id']}}});}})[_0x7d59('0xf')](function(_0x271012){if(_0x271012){_0x3e4da0=_0x271012;return require(_0x7d59('0x50'))[_0x7d59('0x51')]();}})['then'](function(_0x4526d1){if(_0x4526d1&&_0x4526d1[_0x7d59('0x52')]&&_0x3e4da0>=_0x4526d1[_0x7d59('0x52')]){throw new Error(_0x7d59('0x53'));}})[_0x7d59('0xf')](function(){if(_0x566127){return db[_0x7d59('0x2a')]['destroy']({'where':{'membername':_0x566127[_0x7d59('0x27')]},'individualHooks':!![]});}})['then'](function(){if(_0x566127){return _0x566127[_0x7d59('0x54')]({'raw':!![]});}})[_0x7d59('0xf')](function(_0xd0ab9){if(_0x566127){if(_0xd0ab9){var _0x32e11a=[];_0x48a309=_0xd0ab9;if(_0x48a309[_0x7d59('0x31')]){for(var _0x45b370=0x0;_0x45b370<_0x48a309[_0x7d59('0x31')];_0x45b370++){_0x32e11a[_0x7d59('0x34')](db['UserVoiceQueueRt'][_0x7d59('0x55')]({'membername':_0x566127['name'],'UserId':_0x566127['id'],'queue_name':_0x48a309[_0x45b370][_0x7d59('0x27')],'VoiceQueueId':_0x48a309[_0x45b370]['id'],'interface':_0x5ef0c7,'paused':_0x566127[_0x7d59('0x4d')]||![],'penalty':_0x48a309[_0x45b370][_0x7d59('0x56')]||0x0}));}return BPromise[_0x7d59('0x47')](_0x32e11a);}}}})[_0x7d59('0xf')](function(){if(_0x566127){return db[_0x7d59('0x2c')][_0x7d59('0x2d')]({'where':{'membername':_0x566127[_0x7d59('0x27')],'exitAt':null}});}})[_0x7d59('0xf')](function(_0x4071ba){if(_0x566127){if(_0x4071ba&&_0x4071ba[_0x7d59('0x31')]){var _0x1a28a8=[];_0x4071ba[_0x7d59('0x46')](function(_0x5419d3){_0x1a28a8['push'](_0x5419d3[_0x7d59('0x2b')]({'exitAt':moment()['format']('YYYY-MM-DD\x20HH:mm:ss')}));});return BPromise[_0x7d59('0x47')](_0x1a28a8);}}})[_0x7d59('0xf')](function(_0x3453d7){if(_0x566127){var _0x37d4c5=[];var _0x153ba5=[];var _0x1a864a=utils['getChannels']();var _0x573189={'membername':_0x566127[_0x7d59('0x27')],'interface':_0x5ef0c7,'enterAt':moment()[_0x7d59('0x2f')]('YYYY-MM-DD\x20HH:mm:ss'),'role':_0x566127['role'],'internal':_0x566127[_0x7d59('0x29')]};_0x1a864a[_0x7d59('0x46')](function(_0x51bed0){_0x37d4c5[_0x7d59('0x34')](_[_0x7d59('0x57')]({'channel':_0x51bed0,'type':_0x7d59('0x58'),'data1':'callysquare','data2':_0x5ef0c7},_0x573189));if(_0x566127[_0x7d59('0x4d')]){_0x153ba5['push'](_[_0x7d59('0x57')]({'channel':_0x51bed0,'type':_0x7d59('0x2e'),'data1':_0x7d59('0x59')},_0x573189));}});return db[_0x7d59('0x2c')][_0x7d59('0x39')](_0x37d4c5[_0x7d59('0x5a')](_0x153ba5),{'individualHooks':!![]});}})[_0x7d59('0xf')](function(){if(_0x566127){return _0x566127[_0x7d59('0x2b')]({'online':!![],'lastLoginAt':moment()['format'](_0x7d59('0x30')),'voicePause':_0x566127['loginInPause']||![],'mailPause':_0x566127[_0x7d59('0x4d')]||![],'chatPause':_0x566127[_0x7d59('0x4d')]||![],'faxPause':_0x566127[_0x7d59('0x4d')]||![],'smsPause':_0x566127['loginInPause']||![],'openchannelPause':_0x566127[_0x7d59('0x4d')]||![],'pauseType':_0x566127[_0x7d59('0x4d')]?'LOGININPAUSE':null,'lastPauseAt':moment()[_0x7d59('0x2f')]('YYYY-MM-DD\x20HH:mm:ss'),'interface':_0x5ef0c7});}})[_0x7d59('0xf')](function(_0x44b49a){_0xae9108(_0x44b49a);})[_0x7d59('0x1a')](function(_0x43862a){_0x8ee759(_0x4ce4c5['error'](0x1f4,_0x43862a[_0x7d59('0x18')]));});});};