Built motion from commit d1eab355.|2.6.28
[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 _0xf575=['SIP/%s','PAUSE','body','type','bulkCreate','UnpauseUser','resolve','channel','isValidChannel','Channel\x20parameter\x20%s\x20is\x20invalid','findOne','voicePause','mailPause','chatPause','faxPause','smsPause','whatsappPause','lastPauseAt','system','LogoutUser','destroy','length','push','all','LoginUser','loginInPause','agent','../../config/license/util','getLicense','agents','UserVoiceQueueRt','upsert','UserVoiceQueue.penalty','merge','callysquare','LOGININPAUSE','concat','lodash','util','ioredis','../../mysqldb','../../config/environment','redis','defaults','localhost','socket.io-emitter','./user.socket','register','GetUser','User','findAll','options','attributes','limit','map','model','include','then','info','debug','stringify','catch','error','message','ShowUser','find','raw','where','PauseUser','name','role','internal','interface','format','User\x20with\x20id\x20%s\x20not\x20found','params','update','MemberReport','YYYY-MM-DD\x20HH:mm:ss','updateAttributes','getChannels','forEach','isNil'];(function(_0x2a91b5,_0x3817df){var _0x3465e8=function(_0x4f66e5){while(--_0x4f66e5){_0x2a91b5['push'](_0x2a91b5['shift']());}};_0x3465e8(++_0x3817df);}(_0xf575,0xcb));var _0x5f57=function(_0x1fb935,_0x600ce1){_0x1fb935=_0x1fb935-0x0;var _0x114c37=_0xf575[_0x1fb935];return _0x114c37;};'use strict';var _=require(_0x5f57('0x0'));var util=require(_0x5f57('0x1'));var moment=require('moment');var BPromise=require('bluebird');var Redis=require(_0x5f57('0x2'));var db=require(_0x5f57('0x3'))['db'];var utils=require('../../config/utils');var logger=require('../../config/logger')('rpc');var config=require(_0x5f57('0x4'));config[_0x5f57('0x5')]=_[_0x5f57('0x6')](config[_0x5f57('0x5')],{'host':_0x5f57('0x7'),'port':0x18eb});var socket=require(_0x5f57('0x8'))(new Redis(config['redis']));require(_0x5f57('0x9'))[_0x5f57('0xa')](socket);exports[_0x5f57('0xb')]=function(_0x5c0e11){var _0x9db6a6=this;return new Promise(function(_0x13f795,_0x2ec591){return db[_0x5f57('0xc')][_0x5f57('0xd')]({'raw':_0x5c0e11['options']?_0x5c0e11[_0x5f57('0xe')]['raw']===undefined?!![]:![]:!![],'where':_0x5c0e11[_0x5f57('0xe')]?_0x5c0e11[_0x5f57('0xe')]['where']||null:null,'attributes':_0x5c0e11[_0x5f57('0xe')]?_0x5c0e11[_0x5f57('0xe')][_0x5f57('0xf')]||null:null,'limit':_0x5c0e11[_0x5f57('0xe')]?_0x5c0e11[_0x5f57('0xe')][_0x5f57('0x10')]||null:null,'include':_0x5c0e11[_0x5f57('0xe')]?_0x5c0e11[_0x5f57('0xe')]['include']?_[_0x5f57('0x11')](_0x5c0e11[_0x5f57('0xe')]['include'],function(_0x4e5a05){return{'model':db[_0x4e5a05[_0x5f57('0x12')]],'as':_0x4e5a05['as'],'attributes':_0x4e5a05[_0x5f57('0xf')],'include':_0x4e5a05[_0x5f57('0x13')]?_[_0x5f57('0x11')](_0x4e5a05[_0x5f57('0x13')],function(_0x3ce19d){return{'model':db[_0x3ce19d['model']],'as':_0x3ce19d['as'],'attributes':_0x3ce19d[_0x5f57('0xf')],'include':_0x3ce19d[_0x5f57('0x13')]?_['map'](_0x3ce19d[_0x5f57('0x13')],function(_0x14be7a){return{'model':db[_0x14be7a[_0x5f57('0x12')]],'as':_0x14be7a['as'],'attributes':_0x14be7a[_0x5f57('0xf')]};}):[]};}):[]};}):[]:[]})[_0x5f57('0x14')](function(_0x165267){logger[_0x5f57('0x15')](_0x5f57('0xb'),_0x5c0e11);logger[_0x5f57('0x16')](_0x5f57('0xb'),_0x5c0e11,JSON[_0x5f57('0x17')](_0x165267));_0x13f795(_0x165267);})[_0x5f57('0x18')](function(_0x554678){logger[_0x5f57('0x19')](_0x5f57('0xb'),_0x554678['message'],_0x5c0e11);_0x2ec591(_0x9db6a6[_0x5f57('0x19')](0x1f4,_0x554678[_0x5f57('0x1a')]));});});};exports[_0x5f57('0x1b')]=function(_0x148a0a){var _0x484106=this;return new Promise(function(_0x3cad57,_0x51259b){return db[_0x5f57('0xc')][_0x5f57('0x1c')]({'raw':_0x148a0a['options']?_0x148a0a[_0x5f57('0xe')][_0x5f57('0x1d')]===undefined?!![]:![]:!![],'where':_0x148a0a[_0x5f57('0xe')]?_0x148a0a[_0x5f57('0xe')][_0x5f57('0x1e')]||null:null,'attributes':_0x148a0a[_0x5f57('0xe')]?_0x148a0a['options'][_0x5f57('0xf')]||null:null,'include':_0x148a0a[_0x5f57('0xe')]?_0x148a0a['options'][_0x5f57('0x13')]?_['map'](_0x148a0a[_0x5f57('0xe')][_0x5f57('0x13')],function(_0x2fa8e4){return{'model':db[_0x2fa8e4[_0x5f57('0x12')]],'as':_0x2fa8e4['as'],'attributes':_0x2fa8e4['attributes'],'include':_0x2fa8e4[_0x5f57('0x13')]?_[_0x5f57('0x11')](_0x2fa8e4[_0x5f57('0x13')],function(_0x146df7){return{'model':db[_0x146df7[_0x5f57('0x12')]],'as':_0x146df7['as'],'attributes':_0x146df7[_0x5f57('0xf')],'include':_0x146df7['include']?_[_0x5f57('0x11')](_0x146df7[_0x5f57('0x13')],function(_0x2334b1){return{'model':db[_0x2334b1[_0x5f57('0x12')]],'as':_0x2334b1['as'],'attributes':_0x2334b1['attributes']};}):[]};}):[]};}):[]:[]})[_0x5f57('0x14')](function(_0x217f70){logger[_0x5f57('0x15')](_0x5f57('0x1b'),_0x148a0a);logger[_0x5f57('0x16')]('ShowUser',_0x148a0a,JSON[_0x5f57('0x17')](_0x217f70));_0x3cad57(_0x217f70);})[_0x5f57('0x18')](function(_0x33b1fd){logger[_0x5f57('0x19')](_0x5f57('0x1b'),_0x33b1fd[_0x5f57('0x1a')],_0x148a0a);_0x51259b(_0x484106[_0x5f57('0x19')](0x1f4,_0x33b1fd[_0x5f57('0x1a')]));});});};exports[_0x5f57('0x1f')]=function(_0xcb4208){var _0x2633f6;return db[_0x5f57('0xc')][_0x5f57('0x1c')]({'where':_0xcb4208[_0x5f57('0xe')]['where']||{},'attributes':['id',_0x5f57('0x20'),_0x5f57('0x21'),_0x5f57('0x22'),_0x5f57('0x23')]})[_0x5f57('0x14')](function(_0x103dc4){if(!_0x103dc4){throw new Error(util[_0x5f57('0x24')](_0x5f57('0x25'),_0xcb4208[_0x5f57('0x26')]['id']));}_0x2633f6=_0x103dc4;return db['UserVoiceQueueRt'][_0x5f57('0x27')]({'paused':0x1},{'where':{'UserId':_0x2633f6['id']},'individualHooks':!![]});})[_0x5f57('0x14')](function(){return db[_0x5f57('0x28')][_0x5f57('0xd')]({'where':{'membername':_0x2633f6[_0x5f57('0x20')],'type':'PAUSE','exitAt':null}});})[_0x5f57('0x14')](function(_0x2d6885){if(_0x2d6885&&_0x2d6885['length']){var _0x1230ae=moment()[_0x5f57('0x24')](_0x5f57('0x29'));for(var _0x5b7ee8=0x0,_0x4a5d3f=_0x2d6885['length'];_0x5b7ee8<_0x4a5d3f;_0x5b7ee8++){_0x2d6885[_0x5b7ee8][_0x5f57('0x2a')]({'exitAt':_0x1230ae});}}})['then'](function(){var _0x4188c4=[];var _0x16f8de=utils[_0x5f57('0x2b')]();_0x16f8de[_0x5f57('0x2c')](function(_0x1142dd){_0x4188c4['push']({'channel':_0x1142dd,'membername':_0x2633f6[_0x5f57('0x20')],'interface':_[_0x5f57('0x2d')](_0x2633f6[_0x5f57('0x23')])?util[_0x5f57('0x24')](_0x5f57('0x2e'),_0x2633f6[_0x5f57('0x20')]):_0x2633f6[_0x5f57('0x23')],'type':_0x5f57('0x2f'),'enterAt':moment()[_0x5f57('0x24')](_0x5f57('0x29')),'data1':_0xcb4208[_0x5f57('0x30')][_0x5f57('0x31')]||'DEFAULT\x20PAUSE','role':_0x2633f6['role'],'internal':_0x2633f6[_0x5f57('0x22')],'uniqueid':_0xcb4208['body']['uniqueid']||null});});return db[_0x5f57('0x28')][_0x5f57('0x32')](_0x4188c4,{'individualHooks':!![]});})['then'](function(){return _0x2633f6[_0x5f57('0x27')]({'voicePause':!![],'mailPause':!![],'chatPause':!![],'faxPause':!![],'smsPause':!![],'openchannelPause':!![],'whatsappPause':!![],'pauseType':_0xcb4208['body'][_0x5f57('0x31')]||'DEFAULT\x20PAUSE','lastPauseAt':moment()[_0x5f57('0x24')](_0x5f57('0x29'))});})[_0x5f57('0x18')](function(_0xebe9c1){throw _0xebe9c1;});};exports[_0x5f57('0x33')]=function(_0x37928e){return Promise[_0x5f57('0x34')]()[_0x5f57('0x14')](function(){if(_0x37928e[_0x5f57('0x30')][_0x5f57('0x35')]&&!utils[_0x5f57('0x36')](_0x37928e[_0x5f57('0x30')][_0x5f57('0x35')])){throw new Error(util[_0x5f57('0x24')](_0x5f57('0x37'),_0x37928e[_0x5f57('0x30')][_0x5f57('0x35')]));}return db['User'][_0x5f57('0x38')]({'where':_0x37928e[_0x5f57('0xe')][_0x5f57('0x1e')]||{},'attributes':['id',_0x5f57('0x20'),'role',_0x5f57('0x22'),_0x5f57('0x23'),'online',_0x5f57('0x39'),_0x5f57('0x3a'),_0x5f57('0x3b'),_0x5f57('0x3c'),'openchannelPause',_0x5f57('0x3d'),_0x5f57('0x3e'),'pauseType',_0x5f57('0x3f')]});})[_0x5f57('0x14')](function(_0x3977af){if(!_0x3977af){throw new Error(util['format']('User\x20with\x20id\x20%s\x20not\x20found',_0x37928e[_0x5f57('0x26')]['id']));}return _0x3977af['unpause'](_0x37928e[_0x5f57('0x30')]['channel'],_0x5f57('0x40'));})[_0x5f57('0x18')](function(_0x1d96df){throw _0x1d96df;});};exports[_0x5f57('0x41')]=function(_0x3d473e){var _0x4ff70c=this;return new Promise(function(_0x49f51f,_0x676dc7){var _0x33c0de;return db[_0x5f57('0xc')][_0x5f57('0x38')]({'where':_0x3d473e[_0x5f57('0xe')]['where']||{},'attributes':['id',_0x5f57('0x20')]})[_0x5f57('0x14')](function(_0x412817){if(_0x412817){_0x33c0de=_0x412817;return db['UserVoiceQueueRt'][_0x5f57('0x42')]({'where':{'membername':_0x33c0de['name']},'individualHooks':!![]});}})[_0x5f57('0x14')](function(){if(_0x33c0de){return db[_0x5f57('0x28')][_0x5f57('0xd')]({'where':{'membername':_0x33c0de[_0x5f57('0x20')],'exitAt':null}});}})['then'](function(_0x2b08f0){if(_0x33c0de){if(_0x2b08f0&&_0x2b08f0[_0x5f57('0x43')]){var _0x1cd5fa=[];_0x2b08f0['forEach'](function(_0xe654e9){_0x1cd5fa[_0x5f57('0x44')](_0xe654e9[_0x5f57('0x27')]({'exitAt':moment()[_0x5f57('0x24')]('YYYY-MM-DD\x20HH:mm:ss')}));});return BPromise[_0x5f57('0x45')](_0x1cd5fa);}}})[_0x5f57('0x14')](function(){if(_0x33c0de){return _0x33c0de[_0x5f57('0x27')]({'online':![],'voicePause':![],'mailPause':![],'chatPause':![],'faxPause':![],'smsPause':![],'openchannelPause':![]});}})[_0x5f57('0x14')](function(_0x5a85a5){_0x49f51f(_0x5a85a5);})[_0x5f57('0x18')](function(_0x11df93){_0x676dc7(_0x4ff70c[_0x5f57('0x19')](0x1f4,_0x11df93[_0x5f57('0x1a')]));});});};exports[_0x5f57('0x46')]=function(_0x1dcc0b){var _0x2f268a=this;return new Promise(function(_0x3b77a9,_0x29819c){var _0xb3489d;var _0x5f2bd3;var _0x11117d;var _0x5c82d9;return db[_0x5f57('0xc')][_0x5f57('0x38')]({'where':_0x1dcc0b[_0x5f57('0xe')]['where']||{},'attributes':['id',_0x5f57('0x20'),_0x5f57('0x21'),'mobile','phone',_0x5f57('0x22'),_0x5f57('0x47'),_0x5f57('0x23')]})[_0x5f57('0x14')](function(_0x18de3e){if(_0x18de3e){_0xb3489d=_0x18de3e;_0x5c82d9=_0x1dcc0b[_0x5f57('0x30')]['interface']?_0x1dcc0b[_0x5f57('0x30')]['interface']:util[_0x5f57('0x24')](_0x5f57('0x2e'),_0xb3489d[_0x5f57('0x20')]);return db[_0x5f57('0xc')]['count']({'where':{'role':_0x5f57('0x48'),'online':!![],'id':{'$ne':_0xb3489d['id']}}});}})[_0x5f57('0x14')](function(_0x330461){if(_0x330461){_0x11117d=_0x330461;return require(_0x5f57('0x49'))[_0x5f57('0x4a')]();}})['then'](function(_0x706906){if(_0x706906&&_0x706906[_0x5f57('0x4b')]&&_0x11117d>=_0x706906[_0x5f57('0x4b')]){throw new Error('Maximum\x20login\x20has\x20been\x20reached');}})[_0x5f57('0x14')](function(){if(_0xb3489d){return db[_0x5f57('0x4c')][_0x5f57('0x42')]({'where':{'membername':_0xb3489d[_0x5f57('0x20')]},'individualHooks':!![]});}})['then'](function(){if(_0xb3489d){return _0xb3489d['getVoiceQueues']({'raw':!![]});}})[_0x5f57('0x14')](function(_0x402bba){if(_0xb3489d){if(_0x402bba){var _0x30117d=[];_0x5f2bd3=_0x402bba;if(_0x5f2bd3[_0x5f57('0x43')]){for(var _0x2b1e53=0x0;_0x2b1e53<_0x5f2bd3['length'];_0x2b1e53++){_0x30117d['push'](db[_0x5f57('0x4c')][_0x5f57('0x4d')]({'membername':_0xb3489d['name'],'UserId':_0xb3489d['id'],'queue_name':_0x5f2bd3[_0x2b1e53][_0x5f57('0x20')],'VoiceQueueId':_0x5f2bd3[_0x2b1e53]['id'],'interface':_0x5c82d9,'paused':_0xb3489d['loginInPause']||![],'penalty':_0x5f2bd3[_0x2b1e53][_0x5f57('0x4e')]||0x0}));}return BPromise[_0x5f57('0x45')](_0x30117d);}}}})[_0x5f57('0x14')](function(){if(_0xb3489d){return db[_0x5f57('0x28')][_0x5f57('0xd')]({'where':{'membername':_0xb3489d[_0x5f57('0x20')],'exitAt':null}});}})[_0x5f57('0x14')](function(_0x41baea){if(_0xb3489d){if(_0x41baea&&_0x41baea['length']){var _0x22e464=[];_0x41baea[_0x5f57('0x2c')](function(_0x13b668){_0x22e464[_0x5f57('0x44')](_0x13b668[_0x5f57('0x27')]({'exitAt':moment()['format'](_0x5f57('0x29'))}));});return BPromise['all'](_0x22e464);}}})[_0x5f57('0x14')](function(){if(_0xb3489d){var _0x1c6925=[];var _0xf9fb8b=[];var _0x7e6ea1=utils['getChannels']();var _0x5bf370={'membername':_0xb3489d[_0x5f57('0x20')],'interface':_0x5c82d9,'enterAt':moment()['format'](_0x5f57('0x29')),'role':_0xb3489d['role'],'internal':_0xb3489d[_0x5f57('0x22')]};_0x7e6ea1[_0x5f57('0x2c')](function(_0xb448dd){_0x1c6925['push'](_[_0x5f57('0x4f')]({'channel':_0xb448dd,'type':'LOGIN','data1':_0x5f57('0x50'),'data2':_0x5c82d9},_0x5bf370));if(_0xb3489d[_0x5f57('0x47')]){_0xf9fb8b[_0x5f57('0x44')](_[_0x5f57('0x4f')]({'channel':_0xb448dd,'type':_0x5f57('0x2f'),'data1':_0x5f57('0x51')},_0x5bf370));}});return db[_0x5f57('0x28')]['bulkCreate'](_0x1c6925[_0x5f57('0x52')](_0xf9fb8b),{'individualHooks':!![]});}})[_0x5f57('0x14')](function(){if(_0xb3489d){return _0xb3489d['update']({'online':!![],'lastLoginAt':moment()[_0x5f57('0x24')]('YYYY-MM-DD\x20HH:mm:ss'),'voicePause':_0xb3489d['loginInPause']||![],'mailPause':_0xb3489d['loginInPause']||![],'chatPause':_0xb3489d[_0x5f57('0x47')]||![],'faxPause':_0xb3489d[_0x5f57('0x47')]||![],'smsPause':_0xb3489d['loginInPause']||![],'openchannelPause':_0xb3489d[_0x5f57('0x47')]||![],'pauseType':_0xb3489d[_0x5f57('0x47')]?_0x5f57('0x51'):null,'lastPauseAt':moment()[_0x5f57('0x24')](_0x5f57('0x29')),'interface':_0x5c82d9});}})[_0x5f57('0x14')](function(_0x1f722){_0x3b77a9(_0x1f722);})[_0x5f57('0x18')](function(_0x3845aa){_0x29819c(_0x2f268a[_0x5f57('0x19')](0x1f4,_0x3845aa[_0x5f57('0x1a')]));});});};