Built motion from commit (unavailable).|2.5.8
[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 _0x72d7=['whatsapp','set','%s%s','LogoutUser','destroy','LoginUser','mobile','phone','loginInPause','count','agent','../../config/license/util','getLicense','agents','Maximum\x20login\x20has\x20been\x20reached','getVoiceQueues','upsert','all','merge','LOGIN','callysquare','LOGININPAUSE','concat','lodash','util','moment','bluebird','randomstring','ioredis','../../config/utils','../../config/environment','jayson/promise','client','redis','defaults','localhost','socket.io-emitter','./user.socket','request','then','info','User,\x20%s,\x20%s','request\x20sent','debug','stringify','error','code','message','result','catch','GetUser','options','raw','where','limit','include','map','model','attributes','ShowUser','find','name','role','interface','UserVoiceQueueRt','findAll','PAUSE','length','format','YYYY-MM-DD\x20HH:mm:ss','updateAttributes','getChannels','forEach','push','isNil','SIP/%s','body','type','DEFAULT\x20PAUSE','internal','uniqueid','MemberReport','bulkCreate','update','UnpauseUser','User','findOne','channel','isValidChannel','Unknown\x20channel','voice','system','mail','chat','fax','sms','openchannel'];(function(_0x3156bd,_0x503a0f){var _0x289d9f=function(_0x163fbf){while(--_0x163fbf){_0x3156bd['push'](_0x3156bd['shift']());}};_0x289d9f(++_0x503a0f);}(_0x72d7,0x19b));var _0x772d=function(_0x47e7cb,_0x4c1b8d){_0x47e7cb=_0x47e7cb-0x0;var _0x2a8874=_0x72d7[_0x47e7cb];return _0x2a8874;};'use strict';var _=require(_0x772d('0x0'));var util=require(_0x772d('0x1'));var moment=require(_0x772d('0x2'));var BPromise=require(_0x772d('0x3'));var rs=require(_0x772d('0x4'));var fs=require('fs');var Redis=require(_0x772d('0x5'));var db=require('../../mysqldb')['db'];var utils=require(_0x772d('0x6'));var logger=require('../../config/logger')('rpc');var config=require(_0x772d('0x7'));var jayson=require(_0x772d('0x8'));var client=jayson[_0x772d('0x9')]['http']({'port':0x232a});config[_0x772d('0xa')]=_[_0x772d('0xb')](config[_0x772d('0xa')],{'host':_0x772d('0xc'),'port':0x18eb});var socket=require(_0x772d('0xd'))(new Redis(config[_0x772d('0xa')]));require(_0x772d('0xe'))['register'](socket);function respondWithRpcPromise(_0x10563f,_0x4bd553,_0x5a5ce7){return new BPromise(function(_0x48bf79,_0x5b529){return client[_0x772d('0xf')](_0x10563f,_0x5a5ce7)[_0x772d('0x10')](function(_0x387060){logger[_0x772d('0x11')](_0x772d('0x12'),_0x4bd553,_0x772d('0x13'));logger[_0x772d('0x14')]('User,\x20%s,\x20%s,\x20%s',_0x4bd553,_0x772d('0x13'),JSON[_0x772d('0x15')](_0x387060));if(_0x387060[_0x772d('0x16')]){if(_0x387060[_0x772d('0x16')][_0x772d('0x17')]===0x1f4){logger['error'](_0x772d('0x12'),_0x4bd553,_0x387060['error']['message']);return _0x5b529(_0x387060[_0x772d('0x16')][_0x772d('0x18')]);}logger['error'](_0x772d('0x12'),_0x4bd553,_0x387060[_0x772d('0x16')][_0x772d('0x18')]);return _0x48bf79(_0x387060['error'][_0x772d('0x18')]);}else{logger[_0x772d('0x11')](_0x772d('0x12'),_0x4bd553,'request\x20sent');_0x48bf79(_0x387060[_0x772d('0x19')][_0x772d('0x18')]);}})[_0x772d('0x1a')](function(_0x443b83){logger['error']('User,\x20%s,\x20%s',_0x4bd553,_0x443b83);_0x5b529(_0x443b83);});});}exports[_0x772d('0x1b')]=function(_0x2f0a07){var _0x27bdba=this;return new Promise(function(_0x375497,_0x3e8ece){return db['User']['findAll']({'raw':_0x2f0a07[_0x772d('0x1c')]?_0x2f0a07['options'][_0x772d('0x1d')]===undefined?!![]:![]:!![],'where':_0x2f0a07['options']?_0x2f0a07['options'][_0x772d('0x1e')]||null:null,'attributes':_0x2f0a07[_0x772d('0x1c')]?_0x2f0a07[_0x772d('0x1c')]['attributes']||null:null,'limit':_0x2f0a07[_0x772d('0x1c')]?_0x2f0a07[_0x772d('0x1c')][_0x772d('0x1f')]||null:null,'include':_0x2f0a07[_0x772d('0x1c')]?_0x2f0a07[_0x772d('0x1c')][_0x772d('0x20')]?_[_0x772d('0x21')](_0x2f0a07[_0x772d('0x1c')]['include'],function(_0x34b647){return{'model':db[_0x34b647[_0x772d('0x22')]],'as':_0x34b647['as'],'attributes':_0x34b647[_0x772d('0x23')],'include':_0x34b647[_0x772d('0x20')]?_[_0x772d('0x21')](_0x34b647[_0x772d('0x20')],function(_0x31bfdb){return{'model':db[_0x31bfdb['model']],'as':_0x31bfdb['as'],'attributes':_0x31bfdb[_0x772d('0x23')],'include':_0x31bfdb[_0x772d('0x20')]?_[_0x772d('0x21')](_0x31bfdb['include'],function(_0x59a04b){return{'model':db[_0x59a04b[_0x772d('0x22')]],'as':_0x59a04b['as'],'attributes':_0x59a04b[_0x772d('0x23')]};}):[]};}):[]};}):[]:[]})[_0x772d('0x10')](function(_0x2c1537){logger[_0x772d('0x11')](_0x772d('0x1b'),_0x2f0a07);logger[_0x772d('0x14')]('GetUser',_0x2f0a07,JSON[_0x772d('0x15')](_0x2c1537));_0x375497(_0x2c1537);})['catch'](function(_0x44ab4f){logger[_0x772d('0x16')](_0x772d('0x1b'),_0x44ab4f[_0x772d('0x18')],_0x2f0a07);_0x3e8ece(_0x27bdba[_0x772d('0x16')](0x1f4,_0x44ab4f[_0x772d('0x18')]));});});};exports[_0x772d('0x24')]=function(_0x205aaa){var _0x339fb4=this;return new Promise(function(_0x396a3d,_0x1c2ce0){return db['User'][_0x772d('0x25')]({'raw':_0x205aaa['options']?_0x205aaa[_0x772d('0x1c')][_0x772d('0x1d')]===undefined?!![]:![]:!![],'where':_0x205aaa[_0x772d('0x1c')]?_0x205aaa[_0x772d('0x1c')][_0x772d('0x1e')]||null:null,'attributes':_0x205aaa['options']?_0x205aaa[_0x772d('0x1c')]['attributes']||null:null,'include':_0x205aaa['options']?_0x205aaa[_0x772d('0x1c')][_0x772d('0x20')]?_[_0x772d('0x21')](_0x205aaa['options']['include'],function(_0xd41e50){return{'model':db[_0xd41e50[_0x772d('0x22')]],'as':_0xd41e50['as'],'attributes':_0xd41e50[_0x772d('0x23')],'include':_0xd41e50[_0x772d('0x20')]?_[_0x772d('0x21')](_0xd41e50[_0x772d('0x20')],function(_0x1c615e){return{'model':db[_0x1c615e[_0x772d('0x22')]],'as':_0x1c615e['as'],'attributes':_0x1c615e[_0x772d('0x23')],'include':_0x1c615e[_0x772d('0x20')]?_[_0x772d('0x21')](_0x1c615e[_0x772d('0x20')],function(_0xb2311e){return{'model':db[_0xb2311e[_0x772d('0x22')]],'as':_0xb2311e['as'],'attributes':_0xb2311e['attributes']};}):[]};}):[]};}):[]:[]})['then'](function(_0x437012){logger['info'](_0x772d('0x24'),_0x205aaa);logger[_0x772d('0x14')]('ShowUser',_0x205aaa,JSON[_0x772d('0x15')](_0x437012));_0x396a3d(_0x437012);})[_0x772d('0x1a')](function(_0x50fbed){logger[_0x772d('0x16')](_0x772d('0x24'),_0x50fbed[_0x772d('0x18')],_0x205aaa);_0x1c2ce0(_0x339fb4[_0x772d('0x16')](0x1f4,_0x50fbed[_0x772d('0x18')]));});});};exports['PauseUser']=function(_0x5ab75c){var _0x46b03b=this;return new Promise(function(_0x27144d,_0x2279c5){var _0x5c5784;return db['User'][_0x772d('0x25')]({'where':_0x5ab75c[_0x772d('0x1c')][_0x772d('0x1e')]||{},'attributes':['id',_0x772d('0x26'),_0x772d('0x27'),'internal',_0x772d('0x28')]})[_0x772d('0x10')](function(_0x1ef9e6){if(_0x1ef9e6){_0x5c5784=_0x1ef9e6;return db[_0x772d('0x29')]['update']({'paused':0x1},{'where':{'UserId':_0x5c5784['id']},'individualHooks':!![]});}})['then'](function(){if(_0x5c5784){return db['MemberReport'][_0x772d('0x2a')]({'where':{'membername':_0x5c5784[_0x772d('0x26')],'type':_0x772d('0x2b'),'exitAt':null}});}})[_0x772d('0x10')](function(_0x152f88){if(_0x5c5784){if(_0x152f88&&_0x152f88[_0x772d('0x2c')]){var _0x5e51ae=moment()[_0x772d('0x2d')](_0x772d('0x2e'));for(var _0x6b8a09=0x0,_0x1f7c82=_0x152f88[_0x772d('0x2c')];_0x6b8a09<_0x1f7c82;_0x6b8a09++){_0x152f88[_0x6b8a09][_0x772d('0x2f')]({'exitAt':_0x5e51ae});}}}})[_0x772d('0x10')](function(){if(_0x5c5784){var _0x3af664=[];var _0x3d6066=utils[_0x772d('0x30')]();_0x3d6066[_0x772d('0x31')](function(_0x5b79c2){_0x3af664[_0x772d('0x32')]({'channel':_0x5b79c2,'membername':_0x5c5784[_0x772d('0x26')],'interface':_[_0x772d('0x33')](_0x5c5784[_0x772d('0x28')])?util['format'](_0x772d('0x34'),_0x5c5784[_0x772d('0x26')]):_0x5c5784[_0x772d('0x28')],'type':_0x772d('0x2b'),'enterAt':moment()[_0x772d('0x2d')]('YYYY-MM-DD\x20HH:mm:ss'),'data1':_0x5ab75c[_0x772d('0x35')][_0x772d('0x36')]||_0x772d('0x37'),'role':_0x5c5784[_0x772d('0x27')],'internal':_0x5c5784[_0x772d('0x38')],'uniqueid':_0x5ab75c[_0x772d('0x35')][_0x772d('0x39')]||null});});return db[_0x772d('0x3a')][_0x772d('0x3b')](_0x3af664,{'individualHooks':!![]});}})[_0x772d('0x10')](function(){if(_0x5c5784){return _0x5c5784[_0x772d('0x3c')]({'voicePause':!![],'mailPause':!![],'chatPause':!![],'faxPause':!![],'smsPause':!![],'openchannelPause':!![],'whatsappPause':!![],'pauseType':_0x5ab75c[_0x772d('0x35')][_0x772d('0x36')]||_0x772d('0x37'),'lastPauseAt':moment()['format'](_0x772d('0x2e'))});}})[_0x772d('0x10')](function(_0x4d2f50){_0x27144d(_0x4d2f50);})[_0x772d('0x1a')](function(_0x2386af){_0x2279c5(_0x46b03b[_0x772d('0x16')](0x1f4,_0x2386af[_0x772d('0x18')]));});});};exports[_0x772d('0x3d')]=function(_0x5696c8){var _0x30dee8=this;return new Promise(function(_0xc7bf14,_0x5e5244){var _0x11853b;return db[_0x772d('0x3e')][_0x772d('0x3f')]({'where':_0x5696c8[_0x772d('0x1c')]['where']||{},'attributes':['id',_0x772d('0x26')]})[_0x772d('0x10')](function(_0x30dd3e){if(_0x30dd3e){_0x11853b=_0x30dd3e;if(_0x5696c8['body'][_0x772d('0x40')]&&!utils[_0x772d('0x41')](_0x5696c8[_0x772d('0x35')]['channel'])){throw new Error(_0x772d('0x42'));}switch(_0x5696c8['body'][_0x772d('0x40')]){case _0x772d('0x43'):return db[_0x772d('0x29')]['update']({'paused':0x0},{'where':{'UserId':_0x11853b['id']}})[_0x772d('0x10')](function(){return db[_0x772d('0x3a')][_0x772d('0x25')]({'where':{'channel':_0x5696c8[_0x772d('0x35')][_0x772d('0x40')],'membername':_0x11853b[_0x772d('0x26')],'type':_0x772d('0x2b'),'exitAt':null}});})[_0x772d('0x10')](function(_0x2e60d0){if(_0x2e60d0){return _0x2e60d0[_0x772d('0x3c')]({'exitAt':moment()[_0x772d('0x2d')](_0x772d('0x2e')),'data2':_0x772d('0x44')},{'individualHooks':!![]});}return null;})[_0x772d('0x10')](function(){return _0x11853b['update']({'voicePause':![]});});case _0x772d('0x45'):case _0x772d('0x46'):case _0x772d('0x47'):case _0x772d('0x48'):case _0x772d('0x49'):case _0x772d('0x4a'):return db[_0x772d('0x3a')][_0x772d('0x25')]({'where':{'channel':_0x5696c8[_0x772d('0x35')][_0x772d('0x40')],'membername':_0x11853b[_0x772d('0x26')],'type':_0x772d('0x2b'),'exitAt':null}})['then'](function(_0x3ef800){return _0x3ef800[_0x772d('0x3c')]({'exitAt':moment()[_0x772d('0x2d')](_0x772d('0x2e')),'data2':_0x772d('0x44')},{'individualHooks':!![]});})[_0x772d('0x10')](function(){var _0x5506fa={};_[_0x772d('0x4b')](_0x5506fa,util['format'](_0x772d('0x4c'),_0x5696c8[_0x772d('0x35')][_0x772d('0x40')],'Pause'),![]);return _0x11853b[_0x772d('0x3c')](_0x5506fa);});default:return db[_0x772d('0x29')][_0x772d('0x3c')]({'paused':0x0},{'where':{'UserId':_0x11853b['id']}})[_0x772d('0x10')](function(){return db[_0x772d('0x3a')][_0x772d('0x2a')]({'where':{'membername':_0x11853b[_0x772d('0x26')],'type':_0x772d('0x2b'),'exitAt':null}});})[_0x772d('0x10')](function(_0x581286){var _0x587e70=[];_0x581286[_0x772d('0x31')](function(_0xc1401b){_0x587e70[_0x772d('0x32')](_0xc1401b[_0x772d('0x3c')]({'exitAt':moment()[_0x772d('0x2d')](_0x772d('0x2e')),'data2':_0x772d('0x44')}));});return BPromise['all'](_0x587e70);})[_0x772d('0x10')](function(){return _0x11853b[_0x772d('0x3c')]({'voicePause':![],'mailPause':![],'chatPause':![],'faxPause':![],'smsPause':![],'openchannelPause':![],'whatsappPause':![]});});}}})[_0x772d('0x10')](function(_0x321c47){_0xc7bf14(_0x321c47);})[_0x772d('0x1a')](function(_0x16a7ca){_0x5e5244(_0x30dee8[_0x772d('0x16')](0x1f4,_0x16a7ca[_0x772d('0x18')]));});});};exports[_0x772d('0x4d')]=function(_0x162004){var _0x19fac0=this;return new Promise(function(_0x74f09e,_0x3f052a){var _0x54c11f;return db['User'][_0x772d('0x3f')]({'where':_0x162004['options'][_0x772d('0x1e')]||{},'attributes':['id',_0x772d('0x26')]})[_0x772d('0x10')](function(_0x446970){if(_0x446970){_0x54c11f=_0x446970;return db[_0x772d('0x29')][_0x772d('0x4e')]({'where':{'membername':_0x54c11f[_0x772d('0x26')]},'individualHooks':!![]});}})[_0x772d('0x10')](function(){if(_0x54c11f){return db[_0x772d('0x3a')][_0x772d('0x2a')]({'where':{'membername':_0x54c11f['name'],'exitAt':null}});}})[_0x772d('0x10')](function(_0x4732cc){if(_0x54c11f){if(_0x4732cc&&_0x4732cc[_0x772d('0x2c')]){var _0x44b9ad=[];_0x4732cc['forEach'](function(_0x455bf2){_0x44b9ad['push'](_0x455bf2[_0x772d('0x3c')]({'exitAt':moment()['format'](_0x772d('0x2e'))}));});return BPromise['all'](_0x44b9ad);}}})[_0x772d('0x10')](function(){if(_0x54c11f){return _0x54c11f[_0x772d('0x3c')]({'online':![],'lastLoginAt':null,'voicePause':![],'mailPause':![],'chatPause':![],'faxPause':![],'smsPause':![],'openchannelPause':![]});}})['then'](function(_0x34e647){_0x74f09e(_0x34e647);})[_0x772d('0x1a')](function(_0x39e87d){_0x3f052a(_0x19fac0[_0x772d('0x16')](0x1f4,_0x39e87d['message']));});});};exports[_0x772d('0x4f')]=function(_0x13ec47){var _0x2e1334=this;return new Promise(function(_0x176cb6,_0x3c6bc5){var _0x427393;var _0x21d8df;var _0x5cc4f0;var _0x4b0f03;return db['User'][_0x772d('0x3f')]({'where':_0x13ec47[_0x772d('0x1c')][_0x772d('0x1e')]||{},'attributes':['id',_0x772d('0x26'),'role',_0x772d('0x50'),_0x772d('0x51'),_0x772d('0x38'),_0x772d('0x52'),_0x772d('0x28')]})[_0x772d('0x10')](function(_0x56d954){if(_0x56d954){_0x427393=_0x56d954;_0x4b0f03=_0x13ec47[_0x772d('0x35')][_0x772d('0x28')]?_0x13ec47[_0x772d('0x35')]['interface']:util[_0x772d('0x2d')](_0x772d('0x34'),_0x427393[_0x772d('0x26')]);return db[_0x772d('0x3e')][_0x772d('0x53')]({'where':{'role':_0x772d('0x54'),'online':!![],'id':{'$ne':_0x427393['id']}}});}})[_0x772d('0x10')](function(_0x33fc7f){if(_0x33fc7f){_0x5cc4f0=_0x33fc7f;return require(_0x772d('0x55'))[_0x772d('0x56')]();}})[_0x772d('0x10')](function(_0x48339c){if(_0x48339c&&_0x48339c['agents']&&_0x5cc4f0>=_0x48339c[_0x772d('0x57')]){throw new Error(_0x772d('0x58'));}})[_0x772d('0x10')](function(){if(_0x427393){return db['UserVoiceQueueRt'][_0x772d('0x4e')]({'where':{'membername':_0x427393[_0x772d('0x26')]},'individualHooks':!![]});}})['then'](function(){if(_0x427393){return _0x427393[_0x772d('0x59')]({'raw':!![]});}})[_0x772d('0x10')](function(_0x431b47){if(_0x427393){if(_0x431b47){var _0x38f985=[];_0x21d8df=_0x431b47;if(_0x21d8df['length']){for(var _0x1e19f7=0x0;_0x1e19f7<_0x21d8df[_0x772d('0x2c')];_0x1e19f7++){_0x38f985[_0x772d('0x32')](db[_0x772d('0x29')][_0x772d('0x5a')]({'membername':_0x427393[_0x772d('0x26')],'UserId':_0x427393['id'],'queue_name':_0x21d8df[_0x1e19f7]['name'],'VoiceQueueId':_0x21d8df[_0x1e19f7]['id'],'interface':_0x4b0f03,'paused':_0x427393[_0x772d('0x52')]||![],'penalty':_0x21d8df[_0x1e19f7]['UserVoiceQueue.penalty']||0x0}));}return BPromise[_0x772d('0x5b')](_0x38f985);}}}})[_0x772d('0x10')](function(){if(_0x427393){return db[_0x772d('0x3a')][_0x772d('0x2a')]({'where':{'membername':_0x427393[_0x772d('0x26')],'exitAt':null}});}})[_0x772d('0x10')](function(_0x173361){if(_0x427393){if(_0x173361&&_0x173361[_0x772d('0x2c')]){var _0xce3bf1=[];_0x173361['forEach'](function(_0x370351){_0xce3bf1[_0x772d('0x32')](_0x370351[_0x772d('0x3c')]({'exitAt':moment()[_0x772d('0x2d')](_0x772d('0x2e'))}));});return BPromise[_0x772d('0x5b')](_0xce3bf1);}}})['then'](function(_0x54b0d2){if(_0x427393){var _0x1591ed=[];var _0x39282=[];var _0x5582ee=utils[_0x772d('0x30')]();var _0x3a17d4={'membername':_0x427393['name'],'interface':_0x4b0f03,'enterAt':moment()[_0x772d('0x2d')]('YYYY-MM-DD\x20HH:mm:ss'),'role':_0x427393[_0x772d('0x27')],'internal':_0x427393[_0x772d('0x38')]};_0x5582ee[_0x772d('0x31')](function(_0x54dbb2){_0x1591ed[_0x772d('0x32')](_[_0x772d('0x5c')]({'channel':_0x54dbb2,'type':_0x772d('0x5d'),'data1':_0x772d('0x5e'),'data2':_0x4b0f03},_0x3a17d4));if(_0x427393[_0x772d('0x52')]){_0x39282['push'](_[_0x772d('0x5c')]({'channel':_0x54dbb2,'type':'PAUSE','data1':_0x772d('0x5f')},_0x3a17d4));}});return db[_0x772d('0x3a')]['bulkCreate'](_0x1591ed[_0x772d('0x60')](_0x39282),{'individualHooks':!![]});}})[_0x772d('0x10')](function(){if(_0x427393){return _0x427393[_0x772d('0x3c')]({'online':!![],'lastLoginAt':moment()[_0x772d('0x2d')](_0x772d('0x2e')),'voicePause':_0x427393[_0x772d('0x52')]||![],'mailPause':_0x427393[_0x772d('0x52')]||![],'chatPause':_0x427393[_0x772d('0x52')]||![],'faxPause':_0x427393[_0x772d('0x52')]||![],'smsPause':_0x427393[_0x772d('0x52')]||![],'openchannelPause':_0x427393['loginInPause']||![],'pauseType':_0x427393[_0x772d('0x52')]?_0x772d('0x5f'):null,'lastPauseAt':moment()[_0x772d('0x2d')](_0x772d('0x2e')),'interface':_0x4b0f03});}})['then'](function(_0x2095b9){_0x176cb6(_0x2095b9);})['catch'](function(_0xe5ff1){_0x3c6bc5(_0x2e1334[_0x772d('0x16')](0x1f4,_0xe5ff1[_0x772d('0x18')]));});});};