Built motion from commit (unavailable).|2.5.10
[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 _0xda2d=['message','User,\x20%s,\x20%s','result','catch','GetUser','User','options','raw','limit','map','include','model','attributes','debug','where','ShowUser','PauseUser','name','internal','interface','update','MemberReport','PAUSE','length','format','YYYY-MM-DD\x20HH:mm:ss','updateAttributes','getChannels','forEach','push','isNil','SIP/%s','type','DEFAULT\x20PAUSE','role','body','uniqueid','UnpauseUser','findOne','channel','Unknown\x20channel','UserVoiceQueueRt','find','system','chat','fax','sms','openchannel','whatsapp','set','%s%s','Pause','findAll','all','LogoutUser','destroy','mobile','loginInPause','count','agent','agents','Maximum\x20login\x20has\x20been\x20reached','getVoiceQueues','upsert','UserVoiceQueue.penalty','merge','LOGIN','callysquare','LOGININPAUSE','concat','util','moment','bluebird','randomstring','ioredis','rpc','../../config/environment','jayson/promise','client','http','redis','defaults','localhost','socket.io-emitter','./user.socket','register','request','then','info','User,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code'];(function(_0x16f59a,_0x1f0c24){var _0x5c4268=function(_0x4f3808){while(--_0x4f3808){_0x16f59a['push'](_0x16f59a['shift']());}};_0x5c4268(++_0x1f0c24);}(_0xda2d,0x102));var _0xdda2=function(_0x138032,_0x267c72){_0x138032=_0x138032-0x0;var _0x548b70=_0xda2d[_0x138032];return _0x548b70;};'use strict';var _=require('lodash');var util=require(_0xdda2('0x0'));var moment=require(_0xdda2('0x1'));var BPromise=require(_0xdda2('0x2'));var rs=require(_0xdda2('0x3'));var fs=require('fs');var Redis=require(_0xdda2('0x4'));var db=require('../../mysqldb')['db'];var utils=require('../../config/utils');var logger=require('../../config/logger')(_0xdda2('0x5'));var config=require(_0xdda2('0x6'));var jayson=require(_0xdda2('0x7'));var client=jayson[_0xdda2('0x8')][_0xdda2('0x9')]({'port':0x232a});config[_0xdda2('0xa')]=_[_0xdda2('0xb')](config[_0xdda2('0xa')],{'host':_0xdda2('0xc'),'port':0x18eb});var socket=require(_0xdda2('0xd'))(new Redis(config['redis']));require(_0xdda2('0xe'))[_0xdda2('0xf')](socket);function respondWithRpcPromise(_0x4df6b8,_0x1c11b2,_0x2f3454){return new BPromise(function(_0x42d990,_0x346119){return client[_0xdda2('0x10')](_0x4df6b8,_0x2f3454)[_0xdda2('0x11')](function(_0x26fe81){logger[_0xdda2('0x12')]('User,\x20%s,\x20%s',_0x1c11b2,'request\x20sent');logger['debug'](_0xdda2('0x13'),_0x1c11b2,_0xdda2('0x14'),JSON[_0xdda2('0x15')](_0x26fe81));if(_0x26fe81[_0xdda2('0x16')]){if(_0x26fe81[_0xdda2('0x16')][_0xdda2('0x17')]===0x1f4){logger[_0xdda2('0x16')]('User,\x20%s,\x20%s',_0x1c11b2,_0x26fe81[_0xdda2('0x16')]['message']);return _0x346119(_0x26fe81[_0xdda2('0x16')][_0xdda2('0x18')]);}logger[_0xdda2('0x16')](_0xdda2('0x19'),_0x1c11b2,_0x26fe81[_0xdda2('0x16')]['message']);return _0x42d990(_0x26fe81['error'][_0xdda2('0x18')]);}else{logger['info'](_0xdda2('0x19'),_0x1c11b2,_0xdda2('0x14'));_0x42d990(_0x26fe81[_0xdda2('0x1a')][_0xdda2('0x18')]);}})[_0xdda2('0x1b')](function(_0x17015f){logger[_0xdda2('0x16')](_0xdda2('0x19'),_0x1c11b2,_0x17015f);_0x346119(_0x17015f);});});}exports[_0xdda2('0x1c')]=function(_0x337b0b){var _0x312ef1=this;return new Promise(function(_0x6fdede,_0x4eed30){return db[_0xdda2('0x1d')]['findAll']({'raw':_0x337b0b[_0xdda2('0x1e')]?_0x337b0b[_0xdda2('0x1e')][_0xdda2('0x1f')]===undefined?!![]:![]:!![],'where':_0x337b0b['options']?_0x337b0b[_0xdda2('0x1e')]['where']||null:null,'attributes':_0x337b0b[_0xdda2('0x1e')]?_0x337b0b[_0xdda2('0x1e')]['attributes']||null:null,'limit':_0x337b0b[_0xdda2('0x1e')]?_0x337b0b[_0xdda2('0x1e')][_0xdda2('0x20')]||null:null,'include':_0x337b0b[_0xdda2('0x1e')]?_0x337b0b[_0xdda2('0x1e')]['include']?_[_0xdda2('0x21')](_0x337b0b[_0xdda2('0x1e')][_0xdda2('0x22')],function(_0x31d48b){return{'model':db[_0x31d48b['model']],'as':_0x31d48b['as'],'attributes':_0x31d48b['attributes'],'include':_0x31d48b[_0xdda2('0x22')]?_[_0xdda2('0x21')](_0x31d48b[_0xdda2('0x22')],function(_0x5e9e74){return{'model':db[_0x5e9e74[_0xdda2('0x23')]],'as':_0x5e9e74['as'],'attributes':_0x5e9e74[_0xdda2('0x24')],'include':_0x5e9e74[_0xdda2('0x22')]?_[_0xdda2('0x21')](_0x5e9e74[_0xdda2('0x22')],function(_0x91b41a){return{'model':db[_0x91b41a['model']],'as':_0x91b41a['as'],'attributes':_0x91b41a[_0xdda2('0x24')]};}):[]};}):[]};}):[]:[]})[_0xdda2('0x11')](function(_0x53acb5){logger[_0xdda2('0x12')](_0xdda2('0x1c'),_0x337b0b);logger[_0xdda2('0x25')](_0xdda2('0x1c'),_0x337b0b,JSON['stringify'](_0x53acb5));_0x6fdede(_0x53acb5);})[_0xdda2('0x1b')](function(_0x5e107f){logger['error'](_0xdda2('0x1c'),_0x5e107f['message'],_0x337b0b);_0x4eed30(_0x312ef1[_0xdda2('0x16')](0x1f4,_0x5e107f['message']));});});};exports['ShowUser']=function(_0x510b7b){var _0x239c25=this;return new Promise(function(_0x5bfc17,_0x1b13f4){return db['User']['find']({'raw':_0x510b7b['options']?_0x510b7b[_0xdda2('0x1e')][_0xdda2('0x1f')]===undefined?!![]:![]:!![],'where':_0x510b7b[_0xdda2('0x1e')]?_0x510b7b[_0xdda2('0x1e')][_0xdda2('0x26')]||null:null,'attributes':_0x510b7b[_0xdda2('0x1e')]?_0x510b7b[_0xdda2('0x1e')][_0xdda2('0x24')]||null:null,'include':_0x510b7b[_0xdda2('0x1e')]?_0x510b7b[_0xdda2('0x1e')]['include']?_[_0xdda2('0x21')](_0x510b7b[_0xdda2('0x1e')][_0xdda2('0x22')],function(_0x3d510c){return{'model':db[_0x3d510c[_0xdda2('0x23')]],'as':_0x3d510c['as'],'attributes':_0x3d510c[_0xdda2('0x24')],'include':_0x3d510c[_0xdda2('0x22')]?_['map'](_0x3d510c['include'],function(_0xa03f5){return{'model':db[_0xa03f5[_0xdda2('0x23')]],'as':_0xa03f5['as'],'attributes':_0xa03f5[_0xdda2('0x24')],'include':_0xa03f5['include']?_['map'](_0xa03f5[_0xdda2('0x22')],function(_0x35a0f6){return{'model':db[_0x35a0f6[_0xdda2('0x23')]],'as':_0x35a0f6['as'],'attributes':_0x35a0f6[_0xdda2('0x24')]};}):[]};}):[]};}):[]:[]})[_0xdda2('0x11')](function(_0x5ab419){logger[_0xdda2('0x12')](_0xdda2('0x27'),_0x510b7b);logger['debug']('ShowUser',_0x510b7b,JSON[_0xdda2('0x15')](_0x5ab419));_0x5bfc17(_0x5ab419);})[_0xdda2('0x1b')](function(_0x33fe97){logger[_0xdda2('0x16')](_0xdda2('0x27'),_0x33fe97['message'],_0x510b7b);_0x1b13f4(_0x239c25[_0xdda2('0x16')](0x1f4,_0x33fe97[_0xdda2('0x18')]));});});};exports[_0xdda2('0x28')]=function(_0x1a7262){var _0x50c4ae=this;return new Promise(function(_0x4dc38f,_0x203972){var _0x2e0524;return db[_0xdda2('0x1d')]['find']({'where':_0x1a7262[_0xdda2('0x1e')]['where']||{},'attributes':['id',_0xdda2('0x29'),'role',_0xdda2('0x2a'),_0xdda2('0x2b')]})[_0xdda2('0x11')](function(_0x2eec64){if(_0x2eec64){_0x2e0524=_0x2eec64;return db['UserVoiceQueueRt'][_0xdda2('0x2c')]({'paused':0x1},{'where':{'UserId':_0x2e0524['id']},'individualHooks':!![]});}})['then'](function(){if(_0x2e0524){return db[_0xdda2('0x2d')]['findAll']({'where':{'membername':_0x2e0524[_0xdda2('0x29')],'type':_0xdda2('0x2e'),'exitAt':null}});}})[_0xdda2('0x11')](function(_0x12d49d){if(_0x2e0524){if(_0x12d49d&&_0x12d49d[_0xdda2('0x2f')]){var _0x5acbb8=moment()[_0xdda2('0x30')](_0xdda2('0x31'));for(var _0x54735b=0x0,_0x2caced=_0x12d49d['length'];_0x54735b<_0x2caced;_0x54735b++){_0x12d49d[_0x54735b][_0xdda2('0x32')]({'exitAt':_0x5acbb8});}}}})[_0xdda2('0x11')](function(){if(_0x2e0524){var _0x1741a0=[];var _0x355b6a=utils[_0xdda2('0x33')]();_0x355b6a[_0xdda2('0x34')](function(_0x550351){_0x1741a0[_0xdda2('0x35')]({'channel':_0x550351,'membername':_0x2e0524[_0xdda2('0x29')],'interface':_[_0xdda2('0x36')](_0x2e0524[_0xdda2('0x2b')])?util[_0xdda2('0x30')](_0xdda2('0x37'),_0x2e0524['name']):_0x2e0524['interface'],'type':'PAUSE','enterAt':moment()[_0xdda2('0x30')](_0xdda2('0x31')),'data1':_0x1a7262['body'][_0xdda2('0x38')]||_0xdda2('0x39'),'role':_0x2e0524[_0xdda2('0x3a')],'internal':_0x2e0524['internal'],'uniqueid':_0x1a7262[_0xdda2('0x3b')][_0xdda2('0x3c')]||null});});return db['MemberReport']['bulkCreate'](_0x1741a0,{'individualHooks':!![]});}})[_0xdda2('0x11')](function(){if(_0x2e0524){return _0x2e0524['update']({'voicePause':!![],'mailPause':!![],'chatPause':!![],'faxPause':!![],'smsPause':!![],'openchannelPause':!![],'whatsappPause':!![],'pauseType':_0x1a7262[_0xdda2('0x3b')]['type']||_0xdda2('0x39'),'lastPauseAt':moment()[_0xdda2('0x30')]('YYYY-MM-DD\x20HH:mm:ss')});}})['then'](function(_0x3506ff){_0x4dc38f(_0x3506ff);})[_0xdda2('0x1b')](function(_0x375741){_0x203972(_0x50c4ae[_0xdda2('0x16')](0x1f4,_0x375741['message']));});});};exports[_0xdda2('0x3d')]=function(_0x3bba94){var _0x3d2cb0=this;return new Promise(function(_0x1dcada,_0x389278){var _0x55528b;return db[_0xdda2('0x1d')][_0xdda2('0x3e')]({'where':_0x3bba94['options'][_0xdda2('0x26')]||{},'attributes':['id',_0xdda2('0x29')]})[_0xdda2('0x11')](function(_0x2c2a4a){if(_0x2c2a4a){_0x55528b=_0x2c2a4a;if(_0x3bba94[_0xdda2('0x3b')][_0xdda2('0x3f')]&&!utils['isValidChannel'](_0x3bba94[_0xdda2('0x3b')]['channel'])){throw new Error(_0xdda2('0x40'));}switch(_0x3bba94['body'][_0xdda2('0x3f')]){case'voice':return db[_0xdda2('0x41')][_0xdda2('0x2c')]({'paused':0x0},{'where':{'UserId':_0x55528b['id']}})[_0xdda2('0x11')](function(){return db[_0xdda2('0x2d')][_0xdda2('0x42')]({'where':{'channel':_0x3bba94[_0xdda2('0x3b')][_0xdda2('0x3f')],'membername':_0x55528b[_0xdda2('0x29')],'type':'PAUSE','exitAt':null}});})[_0xdda2('0x11')](function(_0x206515){if(_0x206515){return _0x206515[_0xdda2('0x2c')]({'exitAt':moment()['format'](_0xdda2('0x31')),'data2':_0xdda2('0x43')},{'individualHooks':!![]});}return null;})['then'](function(){return _0x55528b[_0xdda2('0x2c')]({'voicePause':![]});});case'mail':case _0xdda2('0x44'):case _0xdda2('0x45'):case _0xdda2('0x46'):case _0xdda2('0x47'):case _0xdda2('0x48'):return db['MemberReport']['find']({'where':{'channel':_0x3bba94['body'][_0xdda2('0x3f')],'membername':_0x55528b[_0xdda2('0x29')],'type':'PAUSE','exitAt':null}})[_0xdda2('0x11')](function(_0x126977){return _0x126977[_0xdda2('0x2c')]({'exitAt':moment()['format'](_0xdda2('0x31')),'data2':_0xdda2('0x43')},{'individualHooks':!![]});})[_0xdda2('0x11')](function(){var _0x58ae15={};_[_0xdda2('0x49')](_0x58ae15,util[_0xdda2('0x30')](_0xdda2('0x4a'),_0x3bba94[_0xdda2('0x3b')]['channel'],_0xdda2('0x4b')),![]);return _0x55528b['update'](_0x58ae15);});default:return db['UserVoiceQueueRt']['update']({'paused':0x0},{'where':{'UserId':_0x55528b['id']}})[_0xdda2('0x11')](function(){return db[_0xdda2('0x2d')][_0xdda2('0x4c')]({'where':{'membername':_0x55528b[_0xdda2('0x29')],'type':_0xdda2('0x2e'),'exitAt':null}});})[_0xdda2('0x11')](function(_0x29a739){var _0x3ac33a=[];_0x29a739[_0xdda2('0x34')](function(_0x138c2f){_0x3ac33a[_0xdda2('0x35')](_0x138c2f['update']({'exitAt':moment()[_0xdda2('0x30')](_0xdda2('0x31')),'data2':_0xdda2('0x43')}));});return BPromise[_0xdda2('0x4d')](_0x3ac33a);})[_0xdda2('0x11')](function(){return _0x55528b[_0xdda2('0x2c')]({'voicePause':![],'mailPause':![],'chatPause':![],'faxPause':![],'smsPause':![],'openchannelPause':![],'whatsappPause':![]});});}}})[_0xdda2('0x11')](function(_0x57fb41){_0x1dcada(_0x57fb41);})[_0xdda2('0x1b')](function(_0x2afcae){_0x389278(_0x3d2cb0[_0xdda2('0x16')](0x1f4,_0x2afcae[_0xdda2('0x18')]));});});};exports[_0xdda2('0x4e')]=function(_0x5c9b02){var _0x37d2cb=this;return new Promise(function(_0x145d45,_0xbc441a){var _0x2c442e;return db[_0xdda2('0x1d')]['findOne']({'where':_0x5c9b02[_0xdda2('0x1e')][_0xdda2('0x26')]||{},'attributes':['id',_0xdda2('0x29')]})[_0xdda2('0x11')](function(_0x1ac15a){if(_0x1ac15a){_0x2c442e=_0x1ac15a;return db['UserVoiceQueueRt'][_0xdda2('0x4f')]({'where':{'membername':_0x2c442e[_0xdda2('0x29')]},'individualHooks':!![]});}})[_0xdda2('0x11')](function(){if(_0x2c442e){return db['MemberReport'][_0xdda2('0x4c')]({'where':{'membername':_0x2c442e['name'],'exitAt':null}});}})[_0xdda2('0x11')](function(_0x41b681){if(_0x2c442e){if(_0x41b681&&_0x41b681[_0xdda2('0x2f')]){var _0x5c351c=[];_0x41b681[_0xdda2('0x34')](function(_0xc60963){_0x5c351c['push'](_0xc60963[_0xdda2('0x2c')]({'exitAt':moment()['format'](_0xdda2('0x31'))}));});return BPromise[_0xdda2('0x4d')](_0x5c351c);}}})[_0xdda2('0x11')](function(){if(_0x2c442e){return _0x2c442e[_0xdda2('0x2c')]({'online':![],'lastLoginAt':null,'voicePause':![],'mailPause':![],'chatPause':![],'faxPause':![],'smsPause':![],'openchannelPause':![]});}})[_0xdda2('0x11')](function(_0x4a061a){_0x145d45(_0x4a061a);})['catch'](function(_0x42fe90){_0xbc441a(_0x37d2cb[_0xdda2('0x16')](0x1f4,_0x42fe90['message']));});});};exports['LoginUser']=function(_0x439eb0){var _0x501336=this;return new Promise(function(_0x12a052,_0x1a33ba){var _0x4910a6;var _0x263f6d;var _0x156c00;var _0xdcd08c;return db[_0xdda2('0x1d')][_0xdda2('0x3e')]({'where':_0x439eb0[_0xdda2('0x1e')]['where']||{},'attributes':['id',_0xdda2('0x29'),_0xdda2('0x3a'),_0xdda2('0x50'),'phone',_0xdda2('0x2a'),_0xdda2('0x51'),'interface']})['then'](function(_0x375921){if(_0x375921){_0x4910a6=_0x375921;_0xdcd08c=_0x439eb0[_0xdda2('0x3b')][_0xdda2('0x2b')]?_0x439eb0['body']['interface']:util[_0xdda2('0x30')]('SIP/%s',_0x4910a6[_0xdda2('0x29')]);return db[_0xdda2('0x1d')][_0xdda2('0x52')]({'where':{'role':_0xdda2('0x53'),'online':!![],'id':{'$ne':_0x4910a6['id']}}});}})[_0xdda2('0x11')](function(_0x29006f){if(_0x29006f){_0x156c00=_0x29006f;return require('../../config/license/util')['getLicense']();}})[_0xdda2('0x11')](function(_0x4eabc4){if(_0x4eabc4&&_0x4eabc4[_0xdda2('0x54')]&&_0x156c00>=_0x4eabc4[_0xdda2('0x54')]){throw new Error(_0xdda2('0x55'));}})[_0xdda2('0x11')](function(){if(_0x4910a6){return db[_0xdda2('0x41')][_0xdda2('0x4f')]({'where':{'membername':_0x4910a6[_0xdda2('0x29')]},'individualHooks':!![]});}})[_0xdda2('0x11')](function(){if(_0x4910a6){return _0x4910a6[_0xdda2('0x56')]({'raw':!![]});}})['then'](function(_0x152b1c){if(_0x4910a6){if(_0x152b1c){var _0x40d931=[];_0x263f6d=_0x152b1c;if(_0x263f6d[_0xdda2('0x2f')]){for(var _0x165749=0x0;_0x165749<_0x263f6d['length'];_0x165749++){_0x40d931[_0xdda2('0x35')](db[_0xdda2('0x41')][_0xdda2('0x57')]({'membername':_0x4910a6[_0xdda2('0x29')],'UserId':_0x4910a6['id'],'queue_name':_0x263f6d[_0x165749]['name'],'VoiceQueueId':_0x263f6d[_0x165749]['id'],'interface':_0xdcd08c,'paused':_0x4910a6['loginInPause']||![],'penalty':_0x263f6d[_0x165749][_0xdda2('0x58')]||0x0}));}return BPromise[_0xdda2('0x4d')](_0x40d931);}}}})[_0xdda2('0x11')](function(){if(_0x4910a6){return db[_0xdda2('0x2d')]['findAll']({'where':{'membername':_0x4910a6[_0xdda2('0x29')],'exitAt':null}});}})[_0xdda2('0x11')](function(_0x17656d){if(_0x4910a6){if(_0x17656d&&_0x17656d[_0xdda2('0x2f')]){var _0x2dda16=[];_0x17656d[_0xdda2('0x34')](function(_0x27288a){_0x2dda16[_0xdda2('0x35')](_0x27288a[_0xdda2('0x2c')]({'exitAt':moment()[_0xdda2('0x30')](_0xdda2('0x31'))}));});return BPromise[_0xdda2('0x4d')](_0x2dda16);}}})[_0xdda2('0x11')](function(_0x3ac576){if(_0x4910a6){var _0x2411e8=[];var _0x4b9481=[];var _0x221f72=utils[_0xdda2('0x33')]();var _0x58fcea={'membername':_0x4910a6['name'],'interface':_0xdcd08c,'enterAt':moment()[_0xdda2('0x30')](_0xdda2('0x31')),'role':_0x4910a6[_0xdda2('0x3a')],'internal':_0x4910a6[_0xdda2('0x2a')]};_0x221f72[_0xdda2('0x34')](function(_0x20e8ee){_0x2411e8['push'](_[_0xdda2('0x59')]({'channel':_0x20e8ee,'type':_0xdda2('0x5a'),'data1':_0xdda2('0x5b'),'data2':_0xdcd08c},_0x58fcea));if(_0x4910a6[_0xdda2('0x51')]){_0x4b9481['push'](_[_0xdda2('0x59')]({'channel':_0x20e8ee,'type':'PAUSE','data1':_0xdda2('0x5c')},_0x58fcea));}});return db[_0xdda2('0x2d')]['bulkCreate'](_0x2411e8[_0xdda2('0x5d')](_0x4b9481),{'individualHooks':!![]});}})[_0xdda2('0x11')](function(){if(_0x4910a6){return _0x4910a6[_0xdda2('0x2c')]({'online':!![],'lastLoginAt':moment()[_0xdda2('0x30')](_0xdda2('0x31')),'voicePause':_0x4910a6[_0xdda2('0x51')]||![],'mailPause':_0x4910a6[_0xdda2('0x51')]||![],'chatPause':_0x4910a6[_0xdda2('0x51')]||![],'faxPause':_0x4910a6[_0xdda2('0x51')]||![],'smsPause':_0x4910a6[_0xdda2('0x51')]||![],'openchannelPause':_0x4910a6[_0xdda2('0x51')]||![],'pauseType':_0x4910a6['loginInPause']?_0xdda2('0x5c'):null,'lastPauseAt':moment()[_0xdda2('0x30')](_0xdda2('0x31')),'interface':_0xdcd08c});}})[_0xdda2('0x11')](function(_0x1da214){_0x12a052(_0x1da214);})['catch'](function(_0xcb7ca3){_0x1a33ba(_0x501336[_0xdda2('0x16')](0x1f4,_0xcb7ca3['message']));});});};