Built motion from commit 44b1f254.|2.6.26
[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 _0x24ac=['message','ShowUser','find','then','name','role','format','User\x20with\x20id\x20%s\x20not\x20found','update','MemberReport','length','YYYY-MM-DD\x20HH:mm:ss','updateAttributes','push','interface','SIP/%s','PAUSE','body','type','DEFAULT\x20PAUSE','bulkCreate','UnpauseUser','resolve','channel','Channel\x20parameter\x20%s\x20is\x20invalid','internal','online','chatPause','faxPause','openchannelPause','smsPause','whatsappPause','pauseType','lastPauseAt','params','unpause','LogoutUser','UserVoiceQueueRt','destroy','forEach','LoginUser','mobile','loginInPause','count','getLicense','agents','Maximum\x20login\x20has\x20been\x20reached','getVoiceQueues','upsert','UserVoiceQueue.penalty','all','getChannels','merge','LOGIN','callysquare','LOGININPAUSE','concat','util','bluebird','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','localhost','redis','register','GetUser','User','findAll','raw','options','where','attributes','limit','include','map','model','info','debug','stringify','catch','error'];(function(_0x34101b,_0x34b757){var _0x5278cf=function(_0xaee73c){while(--_0xaee73c){_0x34101b['push'](_0x34101b['shift']());}};_0x5278cf(++_0x34b757);}(_0x24ac,0x189));var _0xc24a=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x24ac[_0x3dd15e];return _0x231fd0;};'use strict';var _=require('lodash');var util=require(_0xc24a('0x0'));var moment=require('moment');var BPromise=require(_0xc24a('0x1'));var Redis=require(_0xc24a('0x2'));var db=require(_0xc24a('0x3'))['db'];var utils=require(_0xc24a('0x4'));var logger=require(_0xc24a('0x5'))(_0xc24a('0x6'));var config=require(_0xc24a('0x7'));config['redis']=_['defaults'](config['redis'],{'host':_0xc24a('0x8'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0xc24a('0x9')]));require('./user.socket')[_0xc24a('0xa')](socket);exports[_0xc24a('0xb')]=function(_0x1e7389){var _0x161245=this;return new Promise(function(_0x12f5d7,_0x239d2d){return db[_0xc24a('0xc')][_0xc24a('0xd')]({'raw':_0x1e7389['options']?_0x1e7389['options'][_0xc24a('0xe')]===undefined?!![]:![]:!![],'where':_0x1e7389[_0xc24a('0xf')]?_0x1e7389['options'][_0xc24a('0x10')]||null:null,'attributes':_0x1e7389[_0xc24a('0xf')]?_0x1e7389[_0xc24a('0xf')][_0xc24a('0x11')]||null:null,'limit':_0x1e7389['options']?_0x1e7389['options'][_0xc24a('0x12')]||null:null,'include':_0x1e7389[_0xc24a('0xf')]?_0x1e7389[_0xc24a('0xf')][_0xc24a('0x13')]?_[_0xc24a('0x14')](_0x1e7389[_0xc24a('0xf')]['include'],function(_0x416195){return{'model':db[_0x416195[_0xc24a('0x15')]],'as':_0x416195['as'],'attributes':_0x416195[_0xc24a('0x11')],'include':_0x416195[_0xc24a('0x13')]?_['map'](_0x416195[_0xc24a('0x13')],function(_0x557925){return{'model':db[_0x557925[_0xc24a('0x15')]],'as':_0x557925['as'],'attributes':_0x557925[_0xc24a('0x11')],'include':_0x557925[_0xc24a('0x13')]?_[_0xc24a('0x14')](_0x557925[_0xc24a('0x13')],function(_0x1e8809){return{'model':db[_0x1e8809['model']],'as':_0x1e8809['as'],'attributes':_0x1e8809[_0xc24a('0x11')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x128628){logger[_0xc24a('0x16')](_0xc24a('0xb'),_0x1e7389);logger[_0xc24a('0x17')]('GetUser',_0x1e7389,JSON[_0xc24a('0x18')](_0x128628));_0x12f5d7(_0x128628);})[_0xc24a('0x19')](function(_0x1f3811){logger[_0xc24a('0x1a')](_0xc24a('0xb'),_0x1f3811[_0xc24a('0x1b')],_0x1e7389);_0x239d2d(_0x161245[_0xc24a('0x1a')](0x1f4,_0x1f3811[_0xc24a('0x1b')]));});});};exports[_0xc24a('0x1c')]=function(_0x2f14da){var _0x204a49=this;return new Promise(function(_0x143e0f,_0x551fe0){return db[_0xc24a('0xc')][_0xc24a('0x1d')]({'raw':_0x2f14da[_0xc24a('0xf')]?_0x2f14da[_0xc24a('0xf')][_0xc24a('0xe')]===undefined?!![]:![]:!![],'where':_0x2f14da[_0xc24a('0xf')]?_0x2f14da[_0xc24a('0xf')][_0xc24a('0x10')]||null:null,'attributes':_0x2f14da[_0xc24a('0xf')]?_0x2f14da[_0xc24a('0xf')]['attributes']||null:null,'include':_0x2f14da[_0xc24a('0xf')]?_0x2f14da[_0xc24a('0xf')][_0xc24a('0x13')]?_[_0xc24a('0x14')](_0x2f14da['options'][_0xc24a('0x13')],function(_0x5ffc2b){return{'model':db[_0x5ffc2b[_0xc24a('0x15')]],'as':_0x5ffc2b['as'],'attributes':_0x5ffc2b['attributes'],'include':_0x5ffc2b['include']?_['map'](_0x5ffc2b[_0xc24a('0x13')],function(_0x4f6ed1){return{'model':db[_0x4f6ed1[_0xc24a('0x15')]],'as':_0x4f6ed1['as'],'attributes':_0x4f6ed1['attributes'],'include':_0x4f6ed1['include']?_[_0xc24a('0x14')](_0x4f6ed1['include'],function(_0x55a3ec){return{'model':db[_0x55a3ec[_0xc24a('0x15')]],'as':_0x55a3ec['as'],'attributes':_0x55a3ec[_0xc24a('0x11')]};}):[]};}):[]};}):[]:[]})[_0xc24a('0x1e')](function(_0x163a48){logger[_0xc24a('0x16')]('ShowUser',_0x2f14da);logger['debug']('ShowUser',_0x2f14da,JSON['stringify'](_0x163a48));_0x143e0f(_0x163a48);})[_0xc24a('0x19')](function(_0x1a0e94){logger['error'](_0xc24a('0x1c'),_0x1a0e94['message'],_0x2f14da);_0x551fe0(_0x204a49[_0xc24a('0x1a')](0x1f4,_0x1a0e94[_0xc24a('0x1b')]));});});};exports['PauseUser']=function(_0x1ef833){var _0x3520ca;return db['User'][_0xc24a('0x1d')]({'where':_0x1ef833[_0xc24a('0xf')][_0xc24a('0x10')]||{},'attributes':['id',_0xc24a('0x1f'),_0xc24a('0x20'),'internal','interface']})[_0xc24a('0x1e')](function(_0x8582a5){if(!_0x8582a5){throw new Error(util[_0xc24a('0x21')](_0xc24a('0x22'),_0x1ef833['params']['id']));}_0x3520ca=_0x8582a5;return db['UserVoiceQueueRt'][_0xc24a('0x23')]({'paused':0x1},{'where':{'UserId':_0x3520ca['id']},'individualHooks':!![]});})['then'](function(){return db[_0xc24a('0x24')]['findAll']({'where':{'membername':_0x3520ca[_0xc24a('0x1f')],'type':'PAUSE','exitAt':null}});})[_0xc24a('0x1e')](function(_0x2dd0d4){if(_0x2dd0d4&&_0x2dd0d4[_0xc24a('0x25')]){var _0x3120bc=moment()[_0xc24a('0x21')](_0xc24a('0x26'));for(var _0x7947da=0x0,_0x486108=_0x2dd0d4[_0xc24a('0x25')];_0x7947da<_0x486108;_0x7947da++){_0x2dd0d4[_0x7947da][_0xc24a('0x27')]({'exitAt':_0x3120bc});}}})[_0xc24a('0x1e')](function(){var _0x103203=[];var _0x1f0a96=utils['getChannels']();_0x1f0a96['forEach'](function(_0x564f0b){_0x103203[_0xc24a('0x28')]({'channel':_0x564f0b,'membername':_0x3520ca[_0xc24a('0x1f')],'interface':_['isNil'](_0x3520ca[_0xc24a('0x29')])?util[_0xc24a('0x21')](_0xc24a('0x2a'),_0x3520ca[_0xc24a('0x1f')]):_0x3520ca[_0xc24a('0x29')],'type':_0xc24a('0x2b'),'enterAt':moment()[_0xc24a('0x21')](_0xc24a('0x26')),'data1':_0x1ef833[_0xc24a('0x2c')][_0xc24a('0x2d')]||_0xc24a('0x2e'),'role':_0x3520ca[_0xc24a('0x20')],'internal':_0x3520ca['internal'],'uniqueid':_0x1ef833[_0xc24a('0x2c')]['uniqueid']||null});});return db['MemberReport'][_0xc24a('0x2f')](_0x103203,{'individualHooks':!![]});})[_0xc24a('0x1e')](function(){return _0x3520ca[_0xc24a('0x23')]({'voicePause':!![],'mailPause':!![],'chatPause':!![],'faxPause':!![],'smsPause':!![],'openchannelPause':!![],'whatsappPause':!![],'pauseType':_0x1ef833[_0xc24a('0x2c')]['type']||_0xc24a('0x2e'),'lastPauseAt':moment()[_0xc24a('0x21')](_0xc24a('0x26'))});})[_0xc24a('0x19')](function(_0x50d2eb){throw _0x50d2eb;});};exports[_0xc24a('0x30')]=function(_0x2e0fb4){return Promise[_0xc24a('0x31')]()['then'](function(){if(_0x2e0fb4[_0xc24a('0x2c')][_0xc24a('0x32')]&&!utils['isValidChannel'](_0x2e0fb4['body'][_0xc24a('0x32')])){throw new Error(util[_0xc24a('0x21')](_0xc24a('0x33'),_0x2e0fb4[_0xc24a('0x2c')]['channel']));}return db[_0xc24a('0xc')]['findOne']({'where':_0x2e0fb4[_0xc24a('0xf')]['where']||{},'attributes':['id',_0xc24a('0x1f'),_0xc24a('0x20'),_0xc24a('0x34'),_0xc24a('0x29'),_0xc24a('0x35'),'voicePause','mailPause',_0xc24a('0x36'),_0xc24a('0x37'),_0xc24a('0x38'),_0xc24a('0x39'),_0xc24a('0x3a'),_0xc24a('0x3b'),_0xc24a('0x3c')]});})['then'](function(_0x3dfe24){if(!_0x3dfe24){throw new Error(util[_0xc24a('0x21')](_0xc24a('0x22'),_0x2e0fb4[_0xc24a('0x3d')]['id']));}return _0x3dfe24[_0xc24a('0x3e')](_0x2e0fb4['body'][_0xc24a('0x32')],'system');})[_0xc24a('0x19')](function(_0xb61237){throw _0xb61237;});};exports[_0xc24a('0x3f')]=function(_0x14821a){var _0x31dbf5=this;return new Promise(function(_0x2c4c4f,_0x320500){var _0x49ce38;return db[_0xc24a('0xc')]['findOne']({'where':_0x14821a[_0xc24a('0xf')][_0xc24a('0x10')]||{},'attributes':['id','name']})[_0xc24a('0x1e')](function(_0x5d30cd){if(_0x5d30cd){_0x49ce38=_0x5d30cd;return db[_0xc24a('0x40')][_0xc24a('0x41')]({'where':{'membername':_0x49ce38['name']},'individualHooks':!![]});}})[_0xc24a('0x1e')](function(){if(_0x49ce38){return db[_0xc24a('0x24')]['findAll']({'where':{'membername':_0x49ce38[_0xc24a('0x1f')],'exitAt':null}});}})['then'](function(_0x40700f){if(_0x49ce38){if(_0x40700f&&_0x40700f['length']){var _0x53462a=[];_0x40700f[_0xc24a('0x42')](function(_0x78f12e){_0x53462a[_0xc24a('0x28')](_0x78f12e[_0xc24a('0x23')]({'exitAt':moment()['format'](_0xc24a('0x26'))}));});return BPromise['all'](_0x53462a);}}})[_0xc24a('0x1e')](function(){if(_0x49ce38){return _0x49ce38[_0xc24a('0x23')]({'online':![],'voicePause':![],'mailPause':![],'chatPause':![],'faxPause':![],'smsPause':![],'openchannelPause':![]});}})[_0xc24a('0x1e')](function(_0x71d4d3){_0x2c4c4f(_0x71d4d3);})[_0xc24a('0x19')](function(_0x309148){_0x320500(_0x31dbf5['error'](0x1f4,_0x309148['message']));});});};exports[_0xc24a('0x43')]=function(_0x2f443c){var _0x12bbb1=this;return new Promise(function(_0x53ad0c,_0x3d7a73){var _0x2bd261;var _0x1422d2;var _0x23163c;var _0x2d1dfb;return db[_0xc24a('0xc')]['findOne']({'where':_0x2f443c[_0xc24a('0xf')][_0xc24a('0x10')]||{},'attributes':['id','name',_0xc24a('0x20'),_0xc24a('0x44'),'phone',_0xc24a('0x34'),_0xc24a('0x45'),_0xc24a('0x29')]})['then'](function(_0x5e5068){if(_0x5e5068){_0x2bd261=_0x5e5068;_0x2d1dfb=_0x2f443c[_0xc24a('0x2c')][_0xc24a('0x29')]?_0x2f443c[_0xc24a('0x2c')][_0xc24a('0x29')]:util[_0xc24a('0x21')](_0xc24a('0x2a'),_0x2bd261[_0xc24a('0x1f')]);return db[_0xc24a('0xc')][_0xc24a('0x46')]({'where':{'role':'agent','online':!![],'id':{'$ne':_0x2bd261['id']}}});}})[_0xc24a('0x1e')](function(_0xbc181){if(_0xbc181){_0x23163c=_0xbc181;return require('../../config/license/util')[_0xc24a('0x47')]();}})[_0xc24a('0x1e')](function(_0x288860){if(_0x288860&&_0x288860[_0xc24a('0x48')]&&_0x23163c>=_0x288860[_0xc24a('0x48')]){throw new Error(_0xc24a('0x49'));}})[_0xc24a('0x1e')](function(){if(_0x2bd261){return db[_0xc24a('0x40')]['destroy']({'where':{'membername':_0x2bd261[_0xc24a('0x1f')]},'individualHooks':!![]});}})[_0xc24a('0x1e')](function(){if(_0x2bd261){return _0x2bd261[_0xc24a('0x4a')]({'raw':!![]});}})[_0xc24a('0x1e')](function(_0x4045b3){if(_0x2bd261){if(_0x4045b3){var _0x109498=[];_0x1422d2=_0x4045b3;if(_0x1422d2['length']){for(var _0x250e0d=0x0;_0x250e0d<_0x1422d2[_0xc24a('0x25')];_0x250e0d++){_0x109498[_0xc24a('0x28')](db['UserVoiceQueueRt'][_0xc24a('0x4b')]({'membername':_0x2bd261[_0xc24a('0x1f')],'UserId':_0x2bd261['id'],'queue_name':_0x1422d2[_0x250e0d][_0xc24a('0x1f')],'VoiceQueueId':_0x1422d2[_0x250e0d]['id'],'interface':_0x2d1dfb,'paused':_0x2bd261[_0xc24a('0x45')]||![],'penalty':_0x1422d2[_0x250e0d][_0xc24a('0x4c')]||0x0}));}return BPromise[_0xc24a('0x4d')](_0x109498);}}}})['then'](function(){if(_0x2bd261){return db[_0xc24a('0x24')][_0xc24a('0xd')]({'where':{'membername':_0x2bd261[_0xc24a('0x1f')],'exitAt':null}});}})[_0xc24a('0x1e')](function(_0x37cfd6){if(_0x2bd261){if(_0x37cfd6&&_0x37cfd6[_0xc24a('0x25')]){var _0x1f7e93=[];_0x37cfd6[_0xc24a('0x42')](function(_0x4333bf){_0x1f7e93['push'](_0x4333bf[_0xc24a('0x23')]({'exitAt':moment()[_0xc24a('0x21')](_0xc24a('0x26'))}));});return BPromise[_0xc24a('0x4d')](_0x1f7e93);}}})[_0xc24a('0x1e')](function(){if(_0x2bd261){var _0x223672=[];var _0x32bcf6=[];var _0x5a8774=utils[_0xc24a('0x4e')]();var _0x4d53a7={'membername':_0x2bd261[_0xc24a('0x1f')],'interface':_0x2d1dfb,'enterAt':moment()[_0xc24a('0x21')](_0xc24a('0x26')),'role':_0x2bd261['role'],'internal':_0x2bd261['internal']};_0x5a8774['forEach'](function(_0x1bd5a3){_0x223672[_0xc24a('0x28')](_[_0xc24a('0x4f')]({'channel':_0x1bd5a3,'type':_0xc24a('0x50'),'data1':_0xc24a('0x51'),'data2':_0x2d1dfb},_0x4d53a7));if(_0x2bd261[_0xc24a('0x45')]){_0x32bcf6['push'](_['merge']({'channel':_0x1bd5a3,'type':'PAUSE','data1':_0xc24a('0x52')},_0x4d53a7));}});return db[_0xc24a('0x24')][_0xc24a('0x2f')](_0x223672[_0xc24a('0x53')](_0x32bcf6),{'individualHooks':!![]});}})[_0xc24a('0x1e')](function(){if(_0x2bd261){return _0x2bd261['update']({'online':!![],'lastLoginAt':moment()[_0xc24a('0x21')]('YYYY-MM-DD\x20HH:mm:ss'),'voicePause':_0x2bd261['loginInPause']||![],'mailPause':_0x2bd261['loginInPause']||![],'chatPause':_0x2bd261[_0xc24a('0x45')]||![],'faxPause':_0x2bd261[_0xc24a('0x45')]||![],'smsPause':_0x2bd261[_0xc24a('0x45')]||![],'openchannelPause':_0x2bd261['loginInPause']||![],'pauseType':_0x2bd261[_0xc24a('0x45')]?_0xc24a('0x52'):null,'lastPauseAt':moment()['format']('YYYY-MM-DD\x20HH:mm:ss'),'interface':_0x2d1dfb});}})[_0xc24a('0x1e')](function(_0x41bf21){_0x53ad0c(_0x41bf21);})[_0xc24a('0x19')](function(_0x4c817f){_0x3d7a73(_0x12bbb1[_0xc24a('0x1a')](0x1f4,_0x4c817f['message']));});});};