Built motion from commit 97153652.|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 _0x5648=['mailPause','chatPause','faxPause','smsPause','lastPauseAt','params','unpause','UserVoiceQueueRt','forEach','all','LoginUser','mobile','loginInPause','SIP/%s','count','agent','../../config/license/util','agents','Maximum\x20login\x20has\x20been\x20reached','destroy','getVoiceQueues','upsert','UserVoiceQueue.penalty','LOGIN','callysquare','merge','LOGININPAUSE','concat','lodash','util','moment','bluebird','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','redis','defaults','socket.io-emitter','./user.socket','register','GetUser','findAll','options','raw','where','attributes','limit','include','map','model','debug','catch','error','ShowUser','User','find','then','info','stringify','message','name','role','internal','format','User\x20with\x20id\x20%s\x20not\x20found','update','MemberReport','PAUSE','YYYY-MM-DD\x20HH:mm:ss','length','updateAttributes','getChannels','push','isNil','interface','body','type','DEFAULT\x20PAUSE','bulkCreate','UnpauseUser','resolve','channel','isValidChannel','Channel\x20parameter\x20%s\x20is\x20invalid','findOne','online','voicePause'];(function(_0x1abb09,_0x18ee91){var _0xea1c07=function(_0x38f42c){while(--_0x38f42c){_0x1abb09['push'](_0x1abb09['shift']());}};_0xea1c07(++_0x18ee91);}(_0x5648,0x184));var _0x8564=function(_0x2c7150,_0x7d8c27){_0x2c7150=_0x2c7150-0x0;var _0x440e9e=_0x5648[_0x2c7150];return _0x440e9e;};'use strict';var _=require(_0x8564('0x0'));var util=require(_0x8564('0x1'));var moment=require(_0x8564('0x2'));var BPromise=require(_0x8564('0x3'));var Redis=require(_0x8564('0x4'));var db=require(_0x8564('0x5'))['db'];var utils=require(_0x8564('0x6'));var logger=require(_0x8564('0x7'))(_0x8564('0x8'));var config=require(_0x8564('0x9'));config[_0x8564('0xa')]=_[_0x8564('0xb')](config[_0x8564('0xa')],{'host':'localhost','port':0x18eb});var socket=require(_0x8564('0xc'))(new Redis(config[_0x8564('0xa')]));require(_0x8564('0xd'))[_0x8564('0xe')](socket);exports[_0x8564('0xf')]=function(_0x374c2f){var _0x1d5f72=this;return new Promise(function(_0x54d57e,_0x5238f4){return db['User'][_0x8564('0x10')]({'raw':_0x374c2f[_0x8564('0x11')]?_0x374c2f[_0x8564('0x11')][_0x8564('0x12')]===undefined?!![]:![]:!![],'where':_0x374c2f[_0x8564('0x11')]?_0x374c2f[_0x8564('0x11')][_0x8564('0x13')]||null:null,'attributes':_0x374c2f[_0x8564('0x11')]?_0x374c2f['options'][_0x8564('0x14')]||null:null,'limit':_0x374c2f[_0x8564('0x11')]?_0x374c2f[_0x8564('0x11')][_0x8564('0x15')]||null:null,'include':_0x374c2f[_0x8564('0x11')]?_0x374c2f[_0x8564('0x11')][_0x8564('0x16')]?_[_0x8564('0x17')](_0x374c2f[_0x8564('0x11')][_0x8564('0x16')],function(_0x2adf33){return{'model':db[_0x2adf33[_0x8564('0x18')]],'as':_0x2adf33['as'],'attributes':_0x2adf33['attributes'],'include':_0x2adf33['include']?_[_0x8564('0x17')](_0x2adf33[_0x8564('0x16')],function(_0x2e54cb){return{'model':db[_0x2e54cb[_0x8564('0x18')]],'as':_0x2e54cb['as'],'attributes':_0x2e54cb[_0x8564('0x14')],'include':_0x2e54cb[_0x8564('0x16')]?_[_0x8564('0x17')](_0x2e54cb[_0x8564('0x16')],function(_0x32eb11){return{'model':db[_0x32eb11[_0x8564('0x18')]],'as':_0x32eb11['as'],'attributes':_0x32eb11[_0x8564('0x14')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x2fc68a){logger['info'](_0x8564('0xf'),_0x374c2f);logger[_0x8564('0x19')](_0x8564('0xf'),_0x374c2f,JSON['stringify'](_0x2fc68a));_0x54d57e(_0x2fc68a);})[_0x8564('0x1a')](function(_0x34fe2f){logger['error'](_0x8564('0xf'),_0x34fe2f['message'],_0x374c2f);_0x5238f4(_0x1d5f72[_0x8564('0x1b')](0x1f4,_0x34fe2f['message']));});});};exports[_0x8564('0x1c')]=function(_0x731244){var _0x3eb38d=this;return new Promise(function(_0xd4e988,_0x19f431){return db[_0x8564('0x1d')][_0x8564('0x1e')]({'raw':_0x731244[_0x8564('0x11')]?_0x731244['options'][_0x8564('0x12')]===undefined?!![]:![]:!![],'where':_0x731244[_0x8564('0x11')]?_0x731244[_0x8564('0x11')][_0x8564('0x13')]||null:null,'attributes':_0x731244[_0x8564('0x11')]?_0x731244[_0x8564('0x11')][_0x8564('0x14')]||null:null,'include':_0x731244[_0x8564('0x11')]?_0x731244[_0x8564('0x11')][_0x8564('0x16')]?_[_0x8564('0x17')](_0x731244[_0x8564('0x11')][_0x8564('0x16')],function(_0xd641e7){return{'model':db[_0xd641e7[_0x8564('0x18')]],'as':_0xd641e7['as'],'attributes':_0xd641e7[_0x8564('0x14')],'include':_0xd641e7[_0x8564('0x16')]?_[_0x8564('0x17')](_0xd641e7[_0x8564('0x16')],function(_0x4bf7b9){return{'model':db[_0x4bf7b9[_0x8564('0x18')]],'as':_0x4bf7b9['as'],'attributes':_0x4bf7b9['attributes'],'include':_0x4bf7b9[_0x8564('0x16')]?_[_0x8564('0x17')](_0x4bf7b9['include'],function(_0x142f0d){return{'model':db[_0x142f0d[_0x8564('0x18')]],'as':_0x142f0d['as'],'attributes':_0x142f0d['attributes']};}):[]};}):[]};}):[]:[]})[_0x8564('0x1f')](function(_0x5e0e20){logger[_0x8564('0x20')]('ShowUser',_0x731244);logger[_0x8564('0x19')](_0x8564('0x1c'),_0x731244,JSON[_0x8564('0x21')](_0x5e0e20));_0xd4e988(_0x5e0e20);})[_0x8564('0x1a')](function(_0x240896){logger[_0x8564('0x1b')](_0x8564('0x1c'),_0x240896[_0x8564('0x22')],_0x731244);_0x19f431(_0x3eb38d[_0x8564('0x1b')](0x1f4,_0x240896[_0x8564('0x22')]));});});};exports['PauseUser']=function(_0x1d1e29){var _0x364446;return db['User'][_0x8564('0x1e')]({'where':_0x1d1e29[_0x8564('0x11')][_0x8564('0x13')]||{},'attributes':['id',_0x8564('0x23'),_0x8564('0x24'),_0x8564('0x25'),'interface']})[_0x8564('0x1f')](function(_0x35649d){if(!_0x35649d){throw new Error(util[_0x8564('0x26')](_0x8564('0x27'),_0x1d1e29['params']['id']));}_0x364446=_0x35649d;return db['UserVoiceQueueRt'][_0x8564('0x28')]({'paused':0x1},{'where':{'UserId':_0x364446['id']},'individualHooks':!![]});})[_0x8564('0x1f')](function(){return db[_0x8564('0x29')][_0x8564('0x10')]({'where':{'membername':_0x364446[_0x8564('0x23')],'type':_0x8564('0x2a'),'exitAt':null}});})[_0x8564('0x1f')](function(_0x21eaf2){if(_0x21eaf2&&_0x21eaf2['length']){var _0x239d4e=moment()[_0x8564('0x26')](_0x8564('0x2b'));for(var _0x2fd226=0x0,_0x3d6f1e=_0x21eaf2[_0x8564('0x2c')];_0x2fd226<_0x3d6f1e;_0x2fd226++){_0x21eaf2[_0x2fd226][_0x8564('0x2d')]({'exitAt':_0x239d4e});}}})[_0x8564('0x1f')](function(){var _0x4d241b=[];var _0x220478=utils[_0x8564('0x2e')]();_0x220478['forEach'](function(_0x2f9814){_0x4d241b[_0x8564('0x2f')]({'channel':_0x2f9814,'membername':_0x364446[_0x8564('0x23')],'interface':_[_0x8564('0x30')](_0x364446[_0x8564('0x31')])?util['format']('SIP/%s',_0x364446[_0x8564('0x23')]):_0x364446[_0x8564('0x31')],'type':'PAUSE','enterAt':moment()[_0x8564('0x26')](_0x8564('0x2b')),'data1':_0x1d1e29[_0x8564('0x32')][_0x8564('0x33')]||_0x8564('0x34'),'role':_0x364446[_0x8564('0x24')],'internal':_0x364446[_0x8564('0x25')],'uniqueid':_0x1d1e29[_0x8564('0x32')]['uniqueid']||null});});return db['MemberReport'][_0x8564('0x35')](_0x4d241b,{'individualHooks':!![]});})[_0x8564('0x1f')](function(){return _0x364446[_0x8564('0x28')]({'voicePause':!![],'mailPause':!![],'chatPause':!![],'faxPause':!![],'smsPause':!![],'openchannelPause':!![],'whatsappPause':!![],'pauseType':_0x1d1e29[_0x8564('0x32')][_0x8564('0x33')]||_0x8564('0x34'),'lastPauseAt':moment()[_0x8564('0x26')]('YYYY-MM-DD\x20HH:mm:ss')});})[_0x8564('0x1a')](function(_0x6afaaf){throw _0x6afaaf;});};exports[_0x8564('0x36')]=function(_0x2fc43e){return Promise[_0x8564('0x37')]()[_0x8564('0x1f')](function(){if(_0x2fc43e['body'][_0x8564('0x38')]&&!utils[_0x8564('0x39')](_0x2fc43e[_0x8564('0x32')][_0x8564('0x38')])){throw new Error(util[_0x8564('0x26')](_0x8564('0x3a'),_0x2fc43e[_0x8564('0x32')][_0x8564('0x38')]));}return db[_0x8564('0x1d')][_0x8564('0x3b')]({'where':_0x2fc43e[_0x8564('0x11')][_0x8564('0x13')]||{},'attributes':['id',_0x8564('0x23'),_0x8564('0x24'),_0x8564('0x25'),_0x8564('0x31'),_0x8564('0x3c'),_0x8564('0x3d'),_0x8564('0x3e'),_0x8564('0x3f'),_0x8564('0x40'),'openchannelPause',_0x8564('0x41'),'whatsappPause','pauseType',_0x8564('0x42')]});})['then'](function(_0x57bc9b){if(!_0x57bc9b){throw new Error(util[_0x8564('0x26')](_0x8564('0x27'),_0x2fc43e[_0x8564('0x43')]['id']));}return _0x57bc9b[_0x8564('0x44')](_0x2fc43e[_0x8564('0x32')]['channel'],'system');})[_0x8564('0x1a')](function(_0x3ad7ee){throw _0x3ad7ee;});};exports['LogoutUser']=function(_0x1766c6){var _0x5b3211=this;return new Promise(function(_0x23cd5f,_0x20bff7){var _0x3dc7d3;return db['User'][_0x8564('0x3b')]({'where':_0x1766c6[_0x8564('0x11')][_0x8564('0x13')]||{},'attributes':['id',_0x8564('0x23')]})[_0x8564('0x1f')](function(_0x1403fe){if(_0x1403fe){_0x3dc7d3=_0x1403fe;return db[_0x8564('0x45')]['destroy']({'where':{'membername':_0x3dc7d3[_0x8564('0x23')]},'individualHooks':!![]});}})[_0x8564('0x1f')](function(){if(_0x3dc7d3){return db[_0x8564('0x29')][_0x8564('0x10')]({'where':{'membername':_0x3dc7d3['name'],'exitAt':null}});}})['then'](function(_0x52899f){if(_0x3dc7d3){if(_0x52899f&&_0x52899f['length']){var _0x31dc58=[];_0x52899f[_0x8564('0x46')](function(_0xb9c854){_0x31dc58[_0x8564('0x2f')](_0xb9c854[_0x8564('0x28')]({'exitAt':moment()['format'](_0x8564('0x2b'))}));});return BPromise[_0x8564('0x47')](_0x31dc58);}}})[_0x8564('0x1f')](function(){if(_0x3dc7d3){return _0x3dc7d3[_0x8564('0x28')]({'online':![],'voicePause':![],'mailPause':![],'chatPause':![],'faxPause':![],'smsPause':![],'openchannelPause':![]});}})[_0x8564('0x1f')](function(_0x3dad96){_0x23cd5f(_0x3dad96);})[_0x8564('0x1a')](function(_0x5ef918){_0x20bff7(_0x5b3211[_0x8564('0x1b')](0x1f4,_0x5ef918['message']));});});};exports[_0x8564('0x48')]=function(_0x78410c){var _0x4951dd=this;return new Promise(function(_0x19c3fd,_0x519d90){var _0x3f4996;var _0x26924a;var _0x244e4b;var _0x1f7990;return db['User'][_0x8564('0x3b')]({'where':_0x78410c[_0x8564('0x11')][_0x8564('0x13')]||{},'attributes':['id',_0x8564('0x23'),'role',_0x8564('0x49'),'phone',_0x8564('0x25'),_0x8564('0x4a'),_0x8564('0x31')]})[_0x8564('0x1f')](function(_0x4f9450){if(_0x4f9450){_0x3f4996=_0x4f9450;_0x1f7990=_0x78410c[_0x8564('0x32')][_0x8564('0x31')]?_0x78410c['body'][_0x8564('0x31')]:util['format'](_0x8564('0x4b'),_0x3f4996[_0x8564('0x23')]);return db[_0x8564('0x1d')][_0x8564('0x4c')]({'where':{'role':_0x8564('0x4d'),'online':!![],'id':{'$ne':_0x3f4996['id']}}});}})[_0x8564('0x1f')](function(_0x110fb7){if(_0x110fb7){_0x244e4b=_0x110fb7;return require(_0x8564('0x4e'))['getLicense']();}})[_0x8564('0x1f')](function(_0x510b7a){if(_0x510b7a&&_0x510b7a[_0x8564('0x4f')]&&_0x244e4b>=_0x510b7a[_0x8564('0x4f')]){throw new Error(_0x8564('0x50'));}})[_0x8564('0x1f')](function(){if(_0x3f4996){return db[_0x8564('0x45')][_0x8564('0x51')]({'where':{'membername':_0x3f4996[_0x8564('0x23')]},'individualHooks':!![]});}})[_0x8564('0x1f')](function(){if(_0x3f4996){return _0x3f4996[_0x8564('0x52')]({'raw':!![]});}})[_0x8564('0x1f')](function(_0x14534f){if(_0x3f4996){if(_0x14534f){var _0x5dbaf8=[];_0x26924a=_0x14534f;if(_0x26924a['length']){for(var _0x4e07df=0x0;_0x4e07df<_0x26924a['length'];_0x4e07df++){_0x5dbaf8[_0x8564('0x2f')](db[_0x8564('0x45')][_0x8564('0x53')]({'membername':_0x3f4996[_0x8564('0x23')],'UserId':_0x3f4996['id'],'queue_name':_0x26924a[_0x4e07df][_0x8564('0x23')],'VoiceQueueId':_0x26924a[_0x4e07df]['id'],'interface':_0x1f7990,'paused':_0x3f4996[_0x8564('0x4a')]||![],'penalty':_0x26924a[_0x4e07df][_0x8564('0x54')]||0x0}));}return BPromise[_0x8564('0x47')](_0x5dbaf8);}}}})[_0x8564('0x1f')](function(){if(_0x3f4996){return db[_0x8564('0x29')][_0x8564('0x10')]({'where':{'membername':_0x3f4996[_0x8564('0x23')],'exitAt':null}});}})[_0x8564('0x1f')](function(_0x2c4871){if(_0x3f4996){if(_0x2c4871&&_0x2c4871[_0x8564('0x2c')]){var _0x15401b=[];_0x2c4871['forEach'](function(_0x229bc9){_0x15401b[_0x8564('0x2f')](_0x229bc9[_0x8564('0x28')]({'exitAt':moment()[_0x8564('0x26')](_0x8564('0x2b'))}));});return BPromise['all'](_0x15401b);}}})[_0x8564('0x1f')](function(){if(_0x3f4996){var _0x380293=[];var _0x5164d0=[];var _0x3ef2fe=utils[_0x8564('0x2e')]();var _0x4dd7b7={'membername':_0x3f4996[_0x8564('0x23')],'interface':_0x1f7990,'enterAt':moment()['format']('YYYY-MM-DD\x20HH:mm:ss'),'role':_0x3f4996[_0x8564('0x24')],'internal':_0x3f4996[_0x8564('0x25')]};_0x3ef2fe[_0x8564('0x46')](function(_0x5b3c22){_0x380293['push'](_['merge']({'channel':_0x5b3c22,'type':_0x8564('0x55'),'data1':_0x8564('0x56'),'data2':_0x1f7990},_0x4dd7b7));if(_0x3f4996[_0x8564('0x4a')]){_0x5164d0[_0x8564('0x2f')](_[_0x8564('0x57')]({'channel':_0x5b3c22,'type':_0x8564('0x2a'),'data1':_0x8564('0x58')},_0x4dd7b7));}});return db[_0x8564('0x29')]['bulkCreate'](_0x380293[_0x8564('0x59')](_0x5164d0),{'individualHooks':!![]});}})[_0x8564('0x1f')](function(){if(_0x3f4996){return _0x3f4996[_0x8564('0x28')]({'online':!![],'lastLoginAt':moment()[_0x8564('0x26')](_0x8564('0x2b')),'voicePause':_0x3f4996[_0x8564('0x4a')]||![],'mailPause':_0x3f4996[_0x8564('0x4a')]||![],'chatPause':_0x3f4996[_0x8564('0x4a')]||![],'faxPause':_0x3f4996[_0x8564('0x4a')]||![],'smsPause':_0x3f4996[_0x8564('0x4a')]||![],'openchannelPause':_0x3f4996[_0x8564('0x4a')]||![],'pauseType':_0x3f4996[_0x8564('0x4a')]?_0x8564('0x58'):null,'lastPauseAt':moment()[_0x8564('0x26')](_0x8564('0x2b')),'interface':_0x1f7990});}})[_0x8564('0x1f')](function(_0x233361){_0x19c3fd(_0x233361);})[_0x8564('0x1a')](function(_0x2dd4ce){_0x519d90(_0x4951dd[_0x8564('0x1b')](0x1f4,_0x2dd4ce[_0x8564('0x22')]));});});};