8c297a2ff442463e5bc0e4441e2fde4286e9a34f
[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 _0x3029=['rpc','../../config/environment','redis','defaults','localhost','./user.socket','GetUser','User','findAll','options','raw','attributes','limit','include','map','model','info','debug','stringify','catch','error','message','ShowUser','find','where','then','PauseUser','name','role','interface','format','params','UserVoiceQueueRt','update','MemberReport','PAUSE','length','YYYY-MM-DD\x20HH:mm:ss','updateAttributes','getChannels','forEach','push','SIP/%s','body','type','internal','uniqueid','bulkCreate','UnpauseUser','resolve','isValidChannel','channel','findOne','voicePause','mailPause','faxPause','openchannelPause','smsPause','whatsappPause','pauseType','lastPauseAt','User\x20with\x20id\x20%s\x20not\x20found','unpause','LogoutUser','destroy','all','LoginUser','mobile','phone','loginInPause','count','agent','../../config/license/util','agents','Maximum\x20login\x20has\x20been\x20reached','getVoiceQueues','upsert','LOGIN','merge','LOGININPAUSE','lodash','bluebird','../../mysqldb','../../config/logger'];(function(_0x367735,_0x175ec7){var _0x3dd210=function(_0x1b156e){while(--_0x1b156e){_0x367735['push'](_0x367735['shift']());}};_0x3dd210(++_0x175ec7);}(_0x3029,0xf8));var _0x9302=function(_0x2257c3,_0x38dc9b){_0x2257c3=_0x2257c3-0x0;var _0x53638c=_0x3029[_0x2257c3];return _0x53638c;};'use strict';var _=require(_0x9302('0x0'));var util=require('util');var moment=require('moment');var BPromise=require(_0x9302('0x1'));var Redis=require('ioredis');var db=require(_0x9302('0x2'))['db'];var utils=require('../../config/utils');var logger=require(_0x9302('0x3'))(_0x9302('0x4'));var config=require(_0x9302('0x5'));config[_0x9302('0x6')]=_[_0x9302('0x7')](config[_0x9302('0x6')],{'host':_0x9302('0x8'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x9302('0x6')]));require(_0x9302('0x9'))['register'](socket);exports[_0x9302('0xa')]=function(_0x178e72){var _0x3f664a=this;return new Promise(function(_0x403aed,_0x2d3289){return db[_0x9302('0xb')][_0x9302('0xc')]({'raw':_0x178e72['options']?_0x178e72[_0x9302('0xd')][_0x9302('0xe')]===undefined?!![]:![]:!![],'where':_0x178e72[_0x9302('0xd')]?_0x178e72['options']['where']||null:null,'attributes':_0x178e72['options']?_0x178e72[_0x9302('0xd')][_0x9302('0xf')]||null:null,'limit':_0x178e72[_0x9302('0xd')]?_0x178e72[_0x9302('0xd')][_0x9302('0x10')]||null:null,'include':_0x178e72[_0x9302('0xd')]?_0x178e72[_0x9302('0xd')][_0x9302('0x11')]?_[_0x9302('0x12')](_0x178e72[_0x9302('0xd')]['include'],function(_0x5c0570){return{'model':db[_0x5c0570[_0x9302('0x13')]],'as':_0x5c0570['as'],'attributes':_0x5c0570['attributes'],'include':_0x5c0570['include']?_['map'](_0x5c0570[_0x9302('0x11')],function(_0xfb8ea6){return{'model':db[_0xfb8ea6[_0x9302('0x13')]],'as':_0xfb8ea6['as'],'attributes':_0xfb8ea6[_0x9302('0xf')],'include':_0xfb8ea6[_0x9302('0x11')]?_[_0x9302('0x12')](_0xfb8ea6[_0x9302('0x11')],function(_0x5d801d){return{'model':db[_0x5d801d[_0x9302('0x13')]],'as':_0x5d801d['as'],'attributes':_0x5d801d[_0x9302('0xf')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x4880ce){logger[_0x9302('0x14')](_0x9302('0xa'),_0x178e72);logger[_0x9302('0x15')](_0x9302('0xa'),_0x178e72,JSON[_0x9302('0x16')](_0x4880ce));_0x403aed(_0x4880ce);})[_0x9302('0x17')](function(_0x596abd){logger[_0x9302('0x18')]('GetUser',_0x596abd[_0x9302('0x19')],_0x178e72);_0x2d3289(_0x3f664a[_0x9302('0x18')](0x1f4,_0x596abd['message']));});});};exports[_0x9302('0x1a')]=function(_0x446087){var _0x1fc21e=this;return new Promise(function(_0x2e436a,_0x484063){return db['User'][_0x9302('0x1b')]({'raw':_0x446087[_0x9302('0xd')]?_0x446087[_0x9302('0xd')][_0x9302('0xe')]===undefined?!![]:![]:!![],'where':_0x446087['options']?_0x446087['options'][_0x9302('0x1c')]||null:null,'attributes':_0x446087[_0x9302('0xd')]?_0x446087[_0x9302('0xd')]['attributes']||null:null,'include':_0x446087[_0x9302('0xd')]?_0x446087[_0x9302('0xd')][_0x9302('0x11')]?_[_0x9302('0x12')](_0x446087[_0x9302('0xd')][_0x9302('0x11')],function(_0x231e5a){return{'model':db[_0x231e5a[_0x9302('0x13')]],'as':_0x231e5a['as'],'attributes':_0x231e5a['attributes'],'include':_0x231e5a[_0x9302('0x11')]?_[_0x9302('0x12')](_0x231e5a['include'],function(_0x4d5214){return{'model':db[_0x4d5214['model']],'as':_0x4d5214['as'],'attributes':_0x4d5214['attributes'],'include':_0x4d5214['include']?_[_0x9302('0x12')](_0x4d5214['include'],function(_0x51d83f){return{'model':db[_0x51d83f[_0x9302('0x13')]],'as':_0x51d83f['as'],'attributes':_0x51d83f['attributes']};}):[]};}):[]};}):[]:[]})[_0x9302('0x1d')](function(_0xd26504){logger[_0x9302('0x14')](_0x9302('0x1a'),_0x446087);logger[_0x9302('0x15')]('ShowUser',_0x446087,JSON[_0x9302('0x16')](_0xd26504));_0x2e436a(_0xd26504);})[_0x9302('0x17')](function(_0x57eba4){logger[_0x9302('0x18')](_0x9302('0x1a'),_0x57eba4['message'],_0x446087);_0x484063(_0x1fc21e['error'](0x1f4,_0x57eba4['message']));});});};exports[_0x9302('0x1e')]=function(_0x2f712f){var _0x1e107c;return db['User'][_0x9302('0x1b')]({'where':_0x2f712f[_0x9302('0xd')][_0x9302('0x1c')]||{},'attributes':['id',_0x9302('0x1f'),_0x9302('0x20'),'internal',_0x9302('0x21')]})[_0x9302('0x1d')](function(_0x5678b7){if(!_0x5678b7){throw new Error(util[_0x9302('0x22')]('User\x20with\x20id\x20%s\x20not\x20found',_0x2f712f[_0x9302('0x23')]['id']));}_0x1e107c=_0x5678b7;return db[_0x9302('0x24')][_0x9302('0x25')]({'paused':0x1},{'where':{'UserId':_0x1e107c['id']},'individualHooks':!![]});})['then'](function(){return db[_0x9302('0x26')][_0x9302('0xc')]({'where':{'membername':_0x1e107c[_0x9302('0x1f')],'type':_0x9302('0x27'),'exitAt':null}});})[_0x9302('0x1d')](function(_0x25e42f){if(_0x25e42f&&_0x25e42f[_0x9302('0x28')]){var _0x5a7c53=moment()[_0x9302('0x22')](_0x9302('0x29'));for(var _0x5c4a36=0x0,_0xfa01b5=_0x25e42f['length'];_0x5c4a36<_0xfa01b5;_0x5c4a36++){_0x25e42f[_0x5c4a36][_0x9302('0x2a')]({'exitAt':_0x5a7c53});}}})[_0x9302('0x1d')](function(){var _0x1f20fd=[];var _0x51c4c5=utils[_0x9302('0x2b')]();_0x51c4c5[_0x9302('0x2c')](function(_0x39fdea){_0x1f20fd[_0x9302('0x2d')]({'channel':_0x39fdea,'membername':_0x1e107c[_0x9302('0x1f')],'interface':_['isNil'](_0x1e107c[_0x9302('0x21')])?util[_0x9302('0x22')](_0x9302('0x2e'),_0x1e107c[_0x9302('0x1f')]):_0x1e107c[_0x9302('0x21')],'type':_0x9302('0x27'),'enterAt':moment()[_0x9302('0x22')]('YYYY-MM-DD\x20HH:mm:ss'),'data1':_0x2f712f[_0x9302('0x2f')][_0x9302('0x30')]||'DEFAULT\x20PAUSE','role':_0x1e107c[_0x9302('0x20')],'internal':_0x1e107c[_0x9302('0x31')],'uniqueid':_0x2f712f['body'][_0x9302('0x32')]||null});});return db[_0x9302('0x26')][_0x9302('0x33')](_0x1f20fd,{'individualHooks':!![]});})['then'](function(){return _0x1e107c[_0x9302('0x25')]({'voicePause':!![],'mailPause':!![],'chatPause':!![],'faxPause':!![],'smsPause':!![],'openchannelPause':!![],'whatsappPause':!![],'pauseType':_0x2f712f[_0x9302('0x2f')][_0x9302('0x30')]||'DEFAULT\x20PAUSE','lastPauseAt':moment()['format']('YYYY-MM-DD\x20HH:mm:ss')});})[_0x9302('0x17')](function(_0x4f15dd){throw _0x4f15dd;});};exports[_0x9302('0x34')]=function(_0x111f21){return Promise[_0x9302('0x35')]()[_0x9302('0x1d')](function(){if(_0x111f21[_0x9302('0x2f')]['channel']&&!utils[_0x9302('0x36')](_0x111f21['body'][_0x9302('0x37')])){throw new Error(util[_0x9302('0x22')]('Channel\x20parameter\x20%s\x20is\x20invalid',_0x111f21['body'][_0x9302('0x37')]));}return db[_0x9302('0xb')][_0x9302('0x38')]({'where':_0x111f21[_0x9302('0xd')][_0x9302('0x1c')]||{},'attributes':['id',_0x9302('0x1f'),_0x9302('0x20'),'internal','interface','online',_0x9302('0x39'),_0x9302('0x3a'),'chatPause',_0x9302('0x3b'),_0x9302('0x3c'),_0x9302('0x3d'),_0x9302('0x3e'),_0x9302('0x3f'),_0x9302('0x40')]});})[_0x9302('0x1d')](function(_0x2b369f){if(!_0x2b369f){throw new Error(util['format'](_0x9302('0x41'),_0x111f21[_0x9302('0x23')]['id']));}return _0x2b369f[_0x9302('0x42')](_0x111f21[_0x9302('0x2f')][_0x9302('0x37')],'system');})[_0x9302('0x17')](function(_0x594f1b){throw _0x594f1b;});};exports[_0x9302('0x43')]=function(_0x1d3b43){var _0x456121=this;return new Promise(function(_0x4218b1,_0x37379d){var _0x22086f;return db[_0x9302('0xb')]['findOne']({'where':_0x1d3b43['options'][_0x9302('0x1c')]||{},'attributes':['id',_0x9302('0x1f')]})[_0x9302('0x1d')](function(_0x3bdcaf){if(_0x3bdcaf){_0x22086f=_0x3bdcaf;return db['UserVoiceQueueRt'][_0x9302('0x44')]({'where':{'membername':_0x22086f['name']},'individualHooks':!![]});}})[_0x9302('0x1d')](function(){if(_0x22086f){return db[_0x9302('0x26')][_0x9302('0xc')]({'where':{'membername':_0x22086f[_0x9302('0x1f')],'exitAt':null}});}})[_0x9302('0x1d')](function(_0x3e5ca9){if(_0x22086f){if(_0x3e5ca9&&_0x3e5ca9[_0x9302('0x28')]){var _0x34ae16=[];_0x3e5ca9['forEach'](function(_0x165729){_0x34ae16[_0x9302('0x2d')](_0x165729[_0x9302('0x25')]({'exitAt':moment()[_0x9302('0x22')](_0x9302('0x29'))}));});return BPromise[_0x9302('0x45')](_0x34ae16);}}})[_0x9302('0x1d')](function(){if(_0x22086f){return _0x22086f[_0x9302('0x25')]({'online':![],'voicePause':![],'mailPause':![],'chatPause':![],'faxPause':![],'smsPause':![],'openchannelPause':![]});}})['then'](function(_0x449648){_0x4218b1(_0x449648);})[_0x9302('0x17')](function(_0x5c761e){_0x37379d(_0x456121[_0x9302('0x18')](0x1f4,_0x5c761e[_0x9302('0x19')]));});});};exports[_0x9302('0x46')]=function(_0xb0cb9a){var _0x335aca=this;return new Promise(function(_0x44c32a,_0x2e2ea3){var _0x5ec500;var _0x31f731;var _0x5e942a;var _0x22e455;return db['User'][_0x9302('0x38')]({'where':_0xb0cb9a[_0x9302('0xd')][_0x9302('0x1c')]||{},'attributes':['id',_0x9302('0x1f'),_0x9302('0x20'),_0x9302('0x47'),_0x9302('0x48'),_0x9302('0x31'),_0x9302('0x49'),_0x9302('0x21')]})['then'](function(_0x14a9f1){if(_0x14a9f1){_0x5ec500=_0x14a9f1;_0x22e455=_0xb0cb9a[_0x9302('0x2f')][_0x9302('0x21')]?_0xb0cb9a[_0x9302('0x2f')][_0x9302('0x21')]:util[_0x9302('0x22')](_0x9302('0x2e'),_0x5ec500[_0x9302('0x1f')]);return db['User'][_0x9302('0x4a')]({'where':{'role':_0x9302('0x4b'),'online':!![],'id':{'$ne':_0x5ec500['id']}}});}})['then'](function(_0x2a10f3){if(_0x2a10f3){_0x5e942a=_0x2a10f3;return require(_0x9302('0x4c'))['getLicense']();}})[_0x9302('0x1d')](function(_0x4ad564){if(_0x4ad564&&_0x4ad564[_0x9302('0x4d')]&&_0x5e942a>=_0x4ad564[_0x9302('0x4d')]){throw new Error(_0x9302('0x4e'));}})[_0x9302('0x1d')](function(){if(_0x5ec500){return db['UserVoiceQueueRt'][_0x9302('0x44')]({'where':{'membername':_0x5ec500[_0x9302('0x1f')]},'individualHooks':!![]});}})[_0x9302('0x1d')](function(){if(_0x5ec500){return _0x5ec500[_0x9302('0x4f')]({'raw':!![]});}})[_0x9302('0x1d')](function(_0x29e23c){if(_0x5ec500){if(_0x29e23c){var _0x4bd3f2=[];_0x31f731=_0x29e23c;if(_0x31f731['length']){for(var _0x51f9e5=0x0;_0x51f9e5<_0x31f731[_0x9302('0x28')];_0x51f9e5++){_0x4bd3f2[_0x9302('0x2d')](db[_0x9302('0x24')][_0x9302('0x50')]({'membername':_0x5ec500['name'],'UserId':_0x5ec500['id'],'queue_name':_0x31f731[_0x51f9e5][_0x9302('0x1f')],'VoiceQueueId':_0x31f731[_0x51f9e5]['id'],'interface':_0x22e455,'paused':_0x5ec500[_0x9302('0x49')]||![],'penalty':_0x31f731[_0x51f9e5]['UserVoiceQueue.penalty']||0x0}));}return BPromise[_0x9302('0x45')](_0x4bd3f2);}}}})[_0x9302('0x1d')](function(){if(_0x5ec500){return db['MemberReport']['findAll']({'where':{'membername':_0x5ec500[_0x9302('0x1f')],'exitAt':null}});}})[_0x9302('0x1d')](function(_0x616c6c){if(_0x5ec500){if(_0x616c6c&&_0x616c6c[_0x9302('0x28')]){var _0x12bfa2=[];_0x616c6c[_0x9302('0x2c')](function(_0x4e43e0){_0x12bfa2[_0x9302('0x2d')](_0x4e43e0[_0x9302('0x25')]({'exitAt':moment()[_0x9302('0x22')](_0x9302('0x29'))}));});return BPromise['all'](_0x12bfa2);}}})['then'](function(){if(_0x5ec500){var _0x1bc5bc=[];var _0x35b1e4=[];var _0x511fc1=utils[_0x9302('0x2b')]();var _0x430ad2={'membername':_0x5ec500[_0x9302('0x1f')],'interface':_0x22e455,'enterAt':moment()['format'](_0x9302('0x29')),'role':_0x5ec500[_0x9302('0x20')],'internal':_0x5ec500[_0x9302('0x31')]};_0x511fc1[_0x9302('0x2c')](function(_0x1528b7){_0x1bc5bc[_0x9302('0x2d')](_['merge']({'channel':_0x1528b7,'type':_0x9302('0x51'),'data1':'callysquare','data2':_0x22e455},_0x430ad2));if(_0x5ec500[_0x9302('0x49')]){_0x35b1e4[_0x9302('0x2d')](_[_0x9302('0x52')]({'channel':_0x1528b7,'type':'PAUSE','data1':_0x9302('0x53')},_0x430ad2));}});return db[_0x9302('0x26')][_0x9302('0x33')](_0x1bc5bc['concat'](_0x35b1e4),{'individualHooks':!![]});}})[_0x9302('0x1d')](function(){if(_0x5ec500){return _0x5ec500[_0x9302('0x25')]({'online':!![],'lastLoginAt':moment()[_0x9302('0x22')](_0x9302('0x29')),'voicePause':_0x5ec500['loginInPause']||![],'mailPause':_0x5ec500[_0x9302('0x49')]||![],'chatPause':_0x5ec500[_0x9302('0x49')]||![],'faxPause':_0x5ec500[_0x9302('0x49')]||![],'smsPause':_0x5ec500[_0x9302('0x49')]||![],'openchannelPause':_0x5ec500[_0x9302('0x49')]||![],'pauseType':_0x5ec500[_0x9302('0x49')]?'LOGININPAUSE':null,'lastPauseAt':moment()['format'](_0x9302('0x29')),'interface':_0x22e455});}})[_0x9302('0x1d')](function(_0xcaf85a){_0x44c32a(_0xcaf85a);})[_0x9302('0x17')](function(_0x3a69cd){_0x2e2ea3(_0x335aca[_0x9302('0x18')](0x1f4,_0x3a69cd[_0x9302('0x19')]));});});};