4621a989a74b69448516ea244314f4c8bbc9d8a3
[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 _0x6e6f=['getVoiceQueues','upsert','UserVoiceQueue.penalty','all','LOGIN','callysquare','merge','bulkCreate','concat','LOGININPAUSE','lodash','util','moment','bluebird','ioredis','../../mysqldb','../../config/utils','redis','./user.socket','register','GetUser','User','findAll','options','raw','attributes','limit','map','include','model','then','info','debug','stringify','error','message','find','ShowUser','catch','PauseUser','where','name','role','internal','interface','format','User\x20with\x20id\x20%s\x20not\x20found','UserVoiceQueueRt','update','MemberReport','YYYY-MM-DD\x20HH:mm:ss','length','updateAttributes','getChannels','forEach','SIP/%s','PAUSE','body','DEFAULT\x20PAUSE','uniqueid','type','resolve','channel','isValidChannel','Channel\x20parameter\x20%s\x20is\x20invalid','voicePause','faxPause','openchannelPause','smsPause','whatsappPause','pauseType','lastPauseAt','params','system','LogoutUser','findOne','push','LoginUser','mobile','phone','loginInPause','count','agent','../../config/license/util','getLicense','agents','Maximum\x20login\x20has\x20been\x20reached','destroy'];(function(_0x33032e,_0x31411a){var _0x13316b=function(_0x2fb049){while(--_0x2fb049){_0x33032e['push'](_0x33032e['shift']());}};_0x13316b(++_0x31411a);}(_0x6e6f,0x1c2));var _0xf6e6=function(_0x325654,_0x4e6fe1){_0x325654=_0x325654-0x0;var _0x994fc7=_0x6e6f[_0x325654];return _0x994fc7;};'use strict';var _=require(_0xf6e6('0x0'));var util=require(_0xf6e6('0x1'));var moment=require(_0xf6e6('0x2'));var BPromise=require(_0xf6e6('0x3'));var Redis=require(_0xf6e6('0x4'));var db=require(_0xf6e6('0x5'))['db'];var utils=require(_0xf6e6('0x6'));var logger=require('../../config/logger')('rpc');var config=require('../../config/environment');config[_0xf6e6('0x7')]=_['defaults'](config[_0xf6e6('0x7')],{'host':'localhost','port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0xf6e6('0x7')]));require(_0xf6e6('0x8'))[_0xf6e6('0x9')](socket);exports[_0xf6e6('0xa')]=function(_0x4c3e7e){var _0x4de841=this;return new Promise(function(_0x32155d,_0x6d1d10){return db[_0xf6e6('0xb')][_0xf6e6('0xc')]({'raw':_0x4c3e7e['options']?_0x4c3e7e[_0xf6e6('0xd')][_0xf6e6('0xe')]===undefined?!![]:![]:!![],'where':_0x4c3e7e[_0xf6e6('0xd')]?_0x4c3e7e['options']['where']||null:null,'attributes':_0x4c3e7e['options']?_0x4c3e7e[_0xf6e6('0xd')][_0xf6e6('0xf')]||null:null,'limit':_0x4c3e7e[_0xf6e6('0xd')]?_0x4c3e7e['options'][_0xf6e6('0x10')]||null:null,'include':_0x4c3e7e[_0xf6e6('0xd')]?_0x4c3e7e[_0xf6e6('0xd')]['include']?_[_0xf6e6('0x11')](_0x4c3e7e[_0xf6e6('0xd')][_0xf6e6('0x12')],function(_0x318707){return{'model':db[_0x318707['model']],'as':_0x318707['as'],'attributes':_0x318707[_0xf6e6('0xf')],'include':_0x318707[_0xf6e6('0x12')]?_[_0xf6e6('0x11')](_0x318707['include'],function(_0x24d0bb){return{'model':db[_0x24d0bb[_0xf6e6('0x13')]],'as':_0x24d0bb['as'],'attributes':_0x24d0bb['attributes'],'include':_0x24d0bb[_0xf6e6('0x12')]?_['map'](_0x24d0bb[_0xf6e6('0x12')],function(_0x499d7b){return{'model':db[_0x499d7b[_0xf6e6('0x13')]],'as':_0x499d7b['as'],'attributes':_0x499d7b[_0xf6e6('0xf')]};}):[]};}):[]};}):[]:[]})[_0xf6e6('0x14')](function(_0xdbd0ec){logger[_0xf6e6('0x15')](_0xf6e6('0xa'),_0x4c3e7e);logger[_0xf6e6('0x16')](_0xf6e6('0xa'),_0x4c3e7e,JSON[_0xf6e6('0x17')](_0xdbd0ec));_0x32155d(_0xdbd0ec);})['catch'](function(_0x1d3a60){logger[_0xf6e6('0x18')](_0xf6e6('0xa'),_0x1d3a60[_0xf6e6('0x19')],_0x4c3e7e);_0x6d1d10(_0x4de841[_0xf6e6('0x18')](0x1f4,_0x1d3a60[_0xf6e6('0x19')]));});});};exports['ShowUser']=function(_0x3d62df){var _0x39a24d=this;return new Promise(function(_0x44ff84,_0x5c4968){return db[_0xf6e6('0xb')][_0xf6e6('0x1a')]({'raw':_0x3d62df[_0xf6e6('0xd')]?_0x3d62df[_0xf6e6('0xd')]['raw']===undefined?!![]:![]:!![],'where':_0x3d62df[_0xf6e6('0xd')]?_0x3d62df['options']['where']||null:null,'attributes':_0x3d62df[_0xf6e6('0xd')]?_0x3d62df[_0xf6e6('0xd')][_0xf6e6('0xf')]||null:null,'include':_0x3d62df[_0xf6e6('0xd')]?_0x3d62df[_0xf6e6('0xd')][_0xf6e6('0x12')]?_[_0xf6e6('0x11')](_0x3d62df['options']['include'],function(_0x2ec98f){return{'model':db[_0x2ec98f['model']],'as':_0x2ec98f['as'],'attributes':_0x2ec98f[_0xf6e6('0xf')],'include':_0x2ec98f[_0xf6e6('0x12')]?_['map'](_0x2ec98f[_0xf6e6('0x12')],function(_0xfe9b58){return{'model':db[_0xfe9b58[_0xf6e6('0x13')]],'as':_0xfe9b58['as'],'attributes':_0xfe9b58[_0xf6e6('0xf')],'include':_0xfe9b58['include']?_[_0xf6e6('0x11')](_0xfe9b58[_0xf6e6('0x12')],function(_0x2b8f4b){return{'model':db[_0x2b8f4b[_0xf6e6('0x13')]],'as':_0x2b8f4b['as'],'attributes':_0x2b8f4b['attributes']};}):[]};}):[]};}):[]:[]})['then'](function(_0x48f474){logger[_0xf6e6('0x15')]('ShowUser',_0x3d62df);logger[_0xf6e6('0x16')](_0xf6e6('0x1b'),_0x3d62df,JSON[_0xf6e6('0x17')](_0x48f474));_0x44ff84(_0x48f474);})[_0xf6e6('0x1c')](function(_0x3b2a67){logger[_0xf6e6('0x18')](_0xf6e6('0x1b'),_0x3b2a67[_0xf6e6('0x19')],_0x3d62df);_0x5c4968(_0x39a24d[_0xf6e6('0x18')](0x1f4,_0x3b2a67['message']));});});};exports[_0xf6e6('0x1d')]=function(_0x2419b4){var _0x3897bb;return db[_0xf6e6('0xb')][_0xf6e6('0x1a')]({'where':_0x2419b4[_0xf6e6('0xd')][_0xf6e6('0x1e')]||{},'attributes':['id',_0xf6e6('0x1f'),_0xf6e6('0x20'),_0xf6e6('0x21'),_0xf6e6('0x22')]})['then'](function(_0x50be5c){if(!_0x50be5c){throw new Error(util[_0xf6e6('0x23')](_0xf6e6('0x24'),_0x2419b4['params']['id']));}_0x3897bb=_0x50be5c;return db[_0xf6e6('0x25')][_0xf6e6('0x26')]({'paused':0x1},{'where':{'UserId':_0x3897bb['id']},'individualHooks':!![]});})[_0xf6e6('0x14')](function(){return db[_0xf6e6('0x27')]['findAll']({'where':{'membername':_0x3897bb[_0xf6e6('0x1f')],'type':'PAUSE','exitAt':null}});})['then'](function(_0x169432){if(_0x169432&&_0x169432['length']){var _0x266ef=moment()['format'](_0xf6e6('0x28'));for(var _0x2bd0cd=0x0,_0x1bc6fb=_0x169432[_0xf6e6('0x29')];_0x2bd0cd<_0x1bc6fb;_0x2bd0cd++){_0x169432[_0x2bd0cd][_0xf6e6('0x2a')]({'exitAt':_0x266ef});}}})[_0xf6e6('0x14')](function(){var _0x350b2f=[];var _0x1d75e7=utils[_0xf6e6('0x2b')]();_0x1d75e7[_0xf6e6('0x2c')](function(_0x38b518){_0x350b2f['push']({'channel':_0x38b518,'membername':_0x3897bb['name'],'interface':_['isNil'](_0x3897bb[_0xf6e6('0x22')])?util[_0xf6e6('0x23')](_0xf6e6('0x2d'),_0x3897bb[_0xf6e6('0x1f')]):_0x3897bb[_0xf6e6('0x22')],'type':_0xf6e6('0x2e'),'enterAt':moment()[_0xf6e6('0x23')](_0xf6e6('0x28')),'data1':_0x2419b4[_0xf6e6('0x2f')]['type']||_0xf6e6('0x30'),'role':_0x3897bb[_0xf6e6('0x20')],'internal':_0x3897bb[_0xf6e6('0x21')],'uniqueid':_0x2419b4[_0xf6e6('0x2f')][_0xf6e6('0x31')]||null});});return db[_0xf6e6('0x27')]['bulkCreate'](_0x350b2f,{'individualHooks':!![]});})[_0xf6e6('0x14')](function(){return _0x3897bb[_0xf6e6('0x26')]({'voicePause':!![],'mailPause':!![],'chatPause':!![],'faxPause':!![],'smsPause':!![],'openchannelPause':!![],'whatsappPause':!![],'pauseType':_0x2419b4[_0xf6e6('0x2f')][_0xf6e6('0x32')]||_0xf6e6('0x30'),'lastPauseAt':moment()['format'](_0xf6e6('0x28'))});})['catch'](function(_0x19e52c){throw _0x19e52c;});};exports['UnpauseUser']=function(_0x120bc1){return Promise[_0xf6e6('0x33')]()[_0xf6e6('0x14')](function(){if(_0x120bc1['body'][_0xf6e6('0x34')]&&!utils[_0xf6e6('0x35')](_0x120bc1[_0xf6e6('0x2f')][_0xf6e6('0x34')])){throw new Error(util[_0xf6e6('0x23')](_0xf6e6('0x36'),_0x120bc1['body'][_0xf6e6('0x34')]));}return db['User']['findOne']({'where':_0x120bc1[_0xf6e6('0xd')]['where']||{},'attributes':['id','name',_0xf6e6('0x20'),_0xf6e6('0x21'),_0xf6e6('0x22'),'online',_0xf6e6('0x37'),'mailPause','chatPause',_0xf6e6('0x38'),_0xf6e6('0x39'),_0xf6e6('0x3a'),_0xf6e6('0x3b'),_0xf6e6('0x3c'),_0xf6e6('0x3d')]});})[_0xf6e6('0x14')](function(_0x4e3ed4){if(!_0x4e3ed4){throw new Error(util['format'](_0xf6e6('0x24'),_0x120bc1[_0xf6e6('0x3e')]['id']));}return _0x4e3ed4['unpause'](_0x120bc1[_0xf6e6('0x2f')][_0xf6e6('0x34')],_0xf6e6('0x3f'));})[_0xf6e6('0x1c')](function(_0x4ab8fa){throw _0x4ab8fa;});};exports[_0xf6e6('0x40')]=function(_0x5f87ca){var _0x23f09c=this;return new Promise(function(_0x3a1775,_0x4224cf){var _0x52b1e7;return db[_0xf6e6('0xb')][_0xf6e6('0x41')]({'where':_0x5f87ca[_0xf6e6('0xd')][_0xf6e6('0x1e')]||{},'attributes':['id',_0xf6e6('0x1f')]})[_0xf6e6('0x14')](function(_0x3365e9){if(_0x3365e9){_0x52b1e7=_0x3365e9;return db[_0xf6e6('0x25')]['destroy']({'where':{'membername':_0x52b1e7[_0xf6e6('0x1f')]},'individualHooks':!![]});}})[_0xf6e6('0x14')](function(){if(_0x52b1e7){return db[_0xf6e6('0x27')][_0xf6e6('0xc')]({'where':{'membername':_0x52b1e7[_0xf6e6('0x1f')],'exitAt':null}});}})[_0xf6e6('0x14')](function(_0x1086ab){if(_0x52b1e7){if(_0x1086ab&&_0x1086ab[_0xf6e6('0x29')]){var _0x2e18df=[];_0x1086ab[_0xf6e6('0x2c')](function(_0x6f77f1){_0x2e18df[_0xf6e6('0x42')](_0x6f77f1[_0xf6e6('0x26')]({'exitAt':moment()['format']('YYYY-MM-DD\x20HH:mm:ss')}));});return BPromise['all'](_0x2e18df);}}})['then'](function(){if(_0x52b1e7){return _0x52b1e7[_0xf6e6('0x26')]({'online':![],'voicePause':![],'mailPause':![],'chatPause':![],'faxPause':![],'smsPause':![],'openchannelPause':![]});}})[_0xf6e6('0x14')](function(_0x1483df){_0x3a1775(_0x1483df);})[_0xf6e6('0x1c')](function(_0x193e59){_0x4224cf(_0x23f09c[_0xf6e6('0x18')](0x1f4,_0x193e59[_0xf6e6('0x19')]));});});};exports[_0xf6e6('0x43')]=function(_0x4fc98b){var _0x371dca=this;return new Promise(function(_0x3e41d8,_0x3d36c0){var _0x4a5d2d;var _0x4eb827;var _0x284323;var _0x2277b2;return db[_0xf6e6('0xb')][_0xf6e6('0x41')]({'where':_0x4fc98b['options'][_0xf6e6('0x1e')]||{},'attributes':['id',_0xf6e6('0x1f'),'role',_0xf6e6('0x44'),_0xf6e6('0x45'),_0xf6e6('0x21'),_0xf6e6('0x46'),_0xf6e6('0x22')]})[_0xf6e6('0x14')](function(_0x17ab38){if(_0x17ab38){_0x4a5d2d=_0x17ab38;_0x2277b2=_0x4fc98b[_0xf6e6('0x2f')][_0xf6e6('0x22')]?_0x4fc98b[_0xf6e6('0x2f')][_0xf6e6('0x22')]:util['format']('SIP/%s',_0x4a5d2d[_0xf6e6('0x1f')]);return db[_0xf6e6('0xb')][_0xf6e6('0x47')]({'where':{'role':_0xf6e6('0x48'),'online':!![],'id':{'$ne':_0x4a5d2d['id']}}});}})[_0xf6e6('0x14')](function(_0x3d596d){if(_0x3d596d){_0x284323=_0x3d596d;return require(_0xf6e6('0x49'))[_0xf6e6('0x4a')]();}})[_0xf6e6('0x14')](function(_0x3e7d2d){if(_0x3e7d2d&&_0x3e7d2d[_0xf6e6('0x4b')]&&_0x284323>=_0x3e7d2d['agents']){throw new Error(_0xf6e6('0x4c'));}})[_0xf6e6('0x14')](function(){if(_0x4a5d2d){return db[_0xf6e6('0x25')][_0xf6e6('0x4d')]({'where':{'membername':_0x4a5d2d[_0xf6e6('0x1f')]},'individualHooks':!![]});}})[_0xf6e6('0x14')](function(){if(_0x4a5d2d){return _0x4a5d2d[_0xf6e6('0x4e')]({'raw':!![]});}})[_0xf6e6('0x14')](function(_0x202562){if(_0x4a5d2d){if(_0x202562){var _0x385cae=[];_0x4eb827=_0x202562;if(_0x4eb827[_0xf6e6('0x29')]){for(var _0x563758=0x0;_0x563758<_0x4eb827[_0xf6e6('0x29')];_0x563758++){_0x385cae[_0xf6e6('0x42')](db[_0xf6e6('0x25')][_0xf6e6('0x4f')]({'membername':_0x4a5d2d[_0xf6e6('0x1f')],'UserId':_0x4a5d2d['id'],'queue_name':_0x4eb827[_0x563758][_0xf6e6('0x1f')],'VoiceQueueId':_0x4eb827[_0x563758]['id'],'interface':_0x2277b2,'paused':_0x4a5d2d['loginInPause']||![],'penalty':_0x4eb827[_0x563758][_0xf6e6('0x50')]||0x0}));}return BPromise[_0xf6e6('0x51')](_0x385cae);}}}})[_0xf6e6('0x14')](function(){if(_0x4a5d2d){return db[_0xf6e6('0x27')][_0xf6e6('0xc')]({'where':{'membername':_0x4a5d2d[_0xf6e6('0x1f')],'exitAt':null}});}})[_0xf6e6('0x14')](function(_0x438632){if(_0x4a5d2d){if(_0x438632&&_0x438632['length']){var _0x34f9df=[];_0x438632['forEach'](function(_0x3ae0f3){_0x34f9df[_0xf6e6('0x42')](_0x3ae0f3[_0xf6e6('0x26')]({'exitAt':moment()['format'](_0xf6e6('0x28'))}));});return BPromise['all'](_0x34f9df);}}})[_0xf6e6('0x14')](function(){if(_0x4a5d2d){var _0x729d17=[];var _0x20eb0a=[];var _0x1abc12=utils['getChannels']();var _0x312a34={'membername':_0x4a5d2d[_0xf6e6('0x1f')],'interface':_0x2277b2,'enterAt':moment()['format'](_0xf6e6('0x28')),'role':_0x4a5d2d[_0xf6e6('0x20')],'internal':_0x4a5d2d[_0xf6e6('0x21')]};_0x1abc12[_0xf6e6('0x2c')](function(_0x44b5a4){_0x729d17[_0xf6e6('0x42')](_['merge']({'channel':_0x44b5a4,'type':_0xf6e6('0x52'),'data1':_0xf6e6('0x53'),'data2':_0x2277b2},_0x312a34));if(_0x4a5d2d[_0xf6e6('0x46')]){_0x20eb0a['push'](_[_0xf6e6('0x54')]({'channel':_0x44b5a4,'type':_0xf6e6('0x2e'),'data1':'LOGININPAUSE'},_0x312a34));}});return db[_0xf6e6('0x27')][_0xf6e6('0x55')](_0x729d17[_0xf6e6('0x56')](_0x20eb0a),{'individualHooks':!![]});}})[_0xf6e6('0x14')](function(){if(_0x4a5d2d){return _0x4a5d2d[_0xf6e6('0x26')]({'online':!![],'lastLoginAt':moment()[_0xf6e6('0x23')](_0xf6e6('0x28')),'voicePause':_0x4a5d2d['loginInPause']||![],'mailPause':_0x4a5d2d[_0xf6e6('0x46')]||![],'chatPause':_0x4a5d2d[_0xf6e6('0x46')]||![],'faxPause':_0x4a5d2d[_0xf6e6('0x46')]||![],'smsPause':_0x4a5d2d['loginInPause']||![],'openchannelPause':_0x4a5d2d[_0xf6e6('0x46')]||![],'pauseType':_0x4a5d2d[_0xf6e6('0x46')]?_0xf6e6('0x57'):null,'lastPauseAt':moment()[_0xf6e6('0x23')]('YYYY-MM-DD\x20HH:mm:ss'),'interface':_0x2277b2});}})[_0xf6e6('0x14')](function(_0x559fc6){_0x3e41d8(_0x559fc6);})[_0xf6e6('0x1c')](function(_0x56e42b){_0x3d36c0(_0x371dca[_0xf6e6('0x18')](0x1f4,_0x56e42b[_0xf6e6('0x19')]));});});};