Built motion from commit ff78e754.|2.6.29
[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 _0xd059=['format','YYYY-MM-DD\x20HH:mm:ss','length','updateAttributes','getChannels','forEach','push','isNil','SIP/%s','type','DEFAULT\x20PAUSE','internal','body','uniqueid','update','UnpauseUser','resolve','channel','isValidChannel','Channel\x20parameter\x20%s\x20is\x20invalid','findOne','voicePause','chatPause','faxPause','openchannelPause','lastPauseAt','unpause','system','UserVoiceQueueRt','destroy','mobile','phone','loginInPause','count','agent','../../config/license/util','getLicense','agents','Maximum\x20login\x20has\x20been\x20reached','upsert','UserVoiceQueue.penalty','all','merge','LOGIN','LOGININPAUSE','concat','lodash','moment','bluebird','ioredis','../../config/utils','rpc','../../config/environment','defaults','socket.io-emitter','redis','./user.socket','register','GetUser','User','findAll','options','where','include','map','attributes','model','then','debug','stringify','catch','error','message','ShowUser','find','raw','name','role','interface','User\x20with\x20id\x20%s\x20not\x20found','params','MemberReport','PAUSE'];(function(_0x5d1e3e,_0x375e74){var _0x1e8647=function(_0xba3cf6){while(--_0xba3cf6){_0x5d1e3e['push'](_0x5d1e3e['shift']());}};_0x1e8647(++_0x375e74);}(_0xd059,0x81));var _0x9d05=function(_0x39528f,_0x611bcf){_0x39528f=_0x39528f-0x0;var _0x567c57=_0xd059[_0x39528f];return _0x567c57;};'use strict';var _=require(_0x9d05('0x0'));var util=require('util');var moment=require(_0x9d05('0x1'));var BPromise=require(_0x9d05('0x2'));var Redis=require(_0x9d05('0x3'));var db=require('../../mysqldb')['db'];var utils=require(_0x9d05('0x4'));var logger=require('../../config/logger')(_0x9d05('0x5'));var config=require(_0x9d05('0x6'));config['redis']=_[_0x9d05('0x7')](config['redis'],{'host':'localhost','port':0x18eb});var socket=require(_0x9d05('0x8'))(new Redis(config[_0x9d05('0x9')]));require(_0x9d05('0xa'))[_0x9d05('0xb')](socket);exports[_0x9d05('0xc')]=function(_0x31f565){var _0x3dfd94=this;return new Promise(function(_0x3f160a,_0x248eff){return db[_0x9d05('0xd')][_0x9d05('0xe')]({'raw':_0x31f565['options']?_0x31f565[_0x9d05('0xf')]['raw']===undefined?!![]:![]:!![],'where':_0x31f565[_0x9d05('0xf')]?_0x31f565[_0x9d05('0xf')][_0x9d05('0x10')]||null:null,'attributes':_0x31f565[_0x9d05('0xf')]?_0x31f565[_0x9d05('0xf')]['attributes']||null:null,'limit':_0x31f565[_0x9d05('0xf')]?_0x31f565[_0x9d05('0xf')]['limit']||null:null,'include':_0x31f565[_0x9d05('0xf')]?_0x31f565[_0x9d05('0xf')][_0x9d05('0x11')]?_[_0x9d05('0x12')](_0x31f565[_0x9d05('0xf')][_0x9d05('0x11')],function(_0x330121){return{'model':db[_0x330121['model']],'as':_0x330121['as'],'attributes':_0x330121[_0x9d05('0x13')],'include':_0x330121['include']?_['map'](_0x330121[_0x9d05('0x11')],function(_0x209456){return{'model':db[_0x209456[_0x9d05('0x14')]],'as':_0x209456['as'],'attributes':_0x209456[_0x9d05('0x13')],'include':_0x209456[_0x9d05('0x11')]?_[_0x9d05('0x12')](_0x209456[_0x9d05('0x11')],function(_0x1e96dd){return{'model':db[_0x1e96dd[_0x9d05('0x14')]],'as':_0x1e96dd['as'],'attributes':_0x1e96dd[_0x9d05('0x13')]};}):[]};}):[]};}):[]:[]})[_0x9d05('0x15')](function(_0x4bef9e){logger['info']('GetUser',_0x31f565);logger[_0x9d05('0x16')]('GetUser',_0x31f565,JSON[_0x9d05('0x17')](_0x4bef9e));_0x3f160a(_0x4bef9e);})[_0x9d05('0x18')](function(_0x5a0db2){logger[_0x9d05('0x19')](_0x9d05('0xc'),_0x5a0db2[_0x9d05('0x1a')],_0x31f565);_0x248eff(_0x3dfd94[_0x9d05('0x19')](0x1f4,_0x5a0db2[_0x9d05('0x1a')]));});});};exports[_0x9d05('0x1b')]=function(_0x390b85){var _0x5d4827=this;return new Promise(function(_0x49e95b,_0x20163e){return db['User'][_0x9d05('0x1c')]({'raw':_0x390b85[_0x9d05('0xf')]?_0x390b85[_0x9d05('0xf')][_0x9d05('0x1d')]===undefined?!![]:![]:!![],'where':_0x390b85['options']?_0x390b85[_0x9d05('0xf')][_0x9d05('0x10')]||null:null,'attributes':_0x390b85[_0x9d05('0xf')]?_0x390b85['options'][_0x9d05('0x13')]||null:null,'include':_0x390b85[_0x9d05('0xf')]?_0x390b85[_0x9d05('0xf')]['include']?_[_0x9d05('0x12')](_0x390b85[_0x9d05('0xf')][_0x9d05('0x11')],function(_0x597600){return{'model':db[_0x597600['model']],'as':_0x597600['as'],'attributes':_0x597600[_0x9d05('0x13')],'include':_0x597600[_0x9d05('0x11')]?_['map'](_0x597600[_0x9d05('0x11')],function(_0xbfed45){return{'model':db[_0xbfed45['model']],'as':_0xbfed45['as'],'attributes':_0xbfed45[_0x9d05('0x13')],'include':_0xbfed45[_0x9d05('0x11')]?_[_0x9d05('0x12')](_0xbfed45[_0x9d05('0x11')],function(_0x485ac4){return{'model':db[_0x485ac4[_0x9d05('0x14')]],'as':_0x485ac4['as'],'attributes':_0x485ac4['attributes']};}):[]};}):[]};}):[]:[]})[_0x9d05('0x15')](function(_0xd04b20){logger['info'](_0x9d05('0x1b'),_0x390b85);logger[_0x9d05('0x16')](_0x9d05('0x1b'),_0x390b85,JSON[_0x9d05('0x17')](_0xd04b20));_0x49e95b(_0xd04b20);})['catch'](function(_0x4eb921){logger['error']('ShowUser',_0x4eb921['message'],_0x390b85);_0x20163e(_0x5d4827[_0x9d05('0x19')](0x1f4,_0x4eb921['message']));});});};exports['PauseUser']=function(_0x25fffc){var _0x96cbfd;return db[_0x9d05('0xd')]['find']({'where':_0x25fffc[_0x9d05('0xf')][_0x9d05('0x10')]||{},'attributes':['id',_0x9d05('0x1e'),_0x9d05('0x1f'),'internal',_0x9d05('0x20')]})[_0x9d05('0x15')](function(_0x5985be){if(!_0x5985be){throw new Error(util['format'](_0x9d05('0x21'),_0x25fffc[_0x9d05('0x22')]['id']));}_0x96cbfd=_0x5985be;return db['UserVoiceQueueRt']['update']({'paused':0x1},{'where':{'UserId':_0x96cbfd['id']},'individualHooks':!![]});})[_0x9d05('0x15')](function(){return db[_0x9d05('0x23')][_0x9d05('0xe')]({'where':{'membername':_0x96cbfd[_0x9d05('0x1e')],'type':_0x9d05('0x24'),'exitAt':null}});})[_0x9d05('0x15')](function(_0x4a23a4){if(_0x4a23a4&&_0x4a23a4['length']){var _0x2606fa=moment()[_0x9d05('0x25')](_0x9d05('0x26'));for(var _0x4ffa98=0x0,_0x3b8ffd=_0x4a23a4[_0x9d05('0x27')];_0x4ffa98<_0x3b8ffd;_0x4ffa98++){_0x4a23a4[_0x4ffa98][_0x9d05('0x28')]({'exitAt':_0x2606fa});}}})[_0x9d05('0x15')](function(){var _0x348fa7=[];var _0xfbbbc4=utils[_0x9d05('0x29')]();_0xfbbbc4[_0x9d05('0x2a')](function(_0x184469){_0x348fa7[_0x9d05('0x2b')]({'channel':_0x184469,'membername':_0x96cbfd[_0x9d05('0x1e')],'interface':_[_0x9d05('0x2c')](_0x96cbfd[_0x9d05('0x20')])?util[_0x9d05('0x25')](_0x9d05('0x2d'),_0x96cbfd[_0x9d05('0x1e')]):_0x96cbfd[_0x9d05('0x20')],'type':'PAUSE','enterAt':moment()[_0x9d05('0x25')](_0x9d05('0x26')),'data1':_0x25fffc['body'][_0x9d05('0x2e')]||_0x9d05('0x2f'),'role':_0x96cbfd[_0x9d05('0x1f')],'internal':_0x96cbfd[_0x9d05('0x30')],'uniqueid':_0x25fffc[_0x9d05('0x31')][_0x9d05('0x32')]||null});});return db['MemberReport']['bulkCreate'](_0x348fa7,{'individualHooks':!![]});})[_0x9d05('0x15')](function(){return _0x96cbfd[_0x9d05('0x33')]({'voicePause':!![],'mailPause':!![],'chatPause':!![],'faxPause':!![],'smsPause':!![],'openchannelPause':!![],'whatsappPause':!![],'pauseType':_0x25fffc['body']['type']||_0x9d05('0x2f'),'lastPauseAt':moment()['format'](_0x9d05('0x26'))});})[_0x9d05('0x18')](function(_0x21f3f3){throw _0x21f3f3;});};exports[_0x9d05('0x34')]=function(_0x2a7ac4){return Promise[_0x9d05('0x35')]()[_0x9d05('0x15')](function(){if(_0x2a7ac4[_0x9d05('0x31')][_0x9d05('0x36')]&&!utils[_0x9d05('0x37')](_0x2a7ac4[_0x9d05('0x31')][_0x9d05('0x36')])){throw new Error(util['format'](_0x9d05('0x38'),_0x2a7ac4[_0x9d05('0x31')][_0x9d05('0x36')]));}return db[_0x9d05('0xd')][_0x9d05('0x39')]({'where':_0x2a7ac4['options'][_0x9d05('0x10')]||{},'attributes':['id',_0x9d05('0x1e'),_0x9d05('0x1f'),_0x9d05('0x30'),_0x9d05('0x20'),'online',_0x9d05('0x3a'),'mailPause',_0x9d05('0x3b'),_0x9d05('0x3c'),_0x9d05('0x3d'),'smsPause','whatsappPause','pauseType',_0x9d05('0x3e')]});})[_0x9d05('0x15')](function(_0x206fd6){if(!_0x206fd6){throw new Error(util[_0x9d05('0x25')](_0x9d05('0x21'),_0x2a7ac4[_0x9d05('0x22')]['id']));}return _0x206fd6[_0x9d05('0x3f')](_0x2a7ac4['body']['channel'],_0x9d05('0x40'));})['catch'](function(_0x1ca5e5){throw _0x1ca5e5;});};exports['LogoutUser']=function(_0x877bf4){var _0x17715b=this;return new Promise(function(_0x2c4678,_0x4c80cb){var _0x1be1b6;return db['User'][_0x9d05('0x39')]({'where':_0x877bf4[_0x9d05('0xf')]['where']||{},'attributes':['id',_0x9d05('0x1e')]})[_0x9d05('0x15')](function(_0x4792be){if(_0x4792be){_0x1be1b6=_0x4792be;return db[_0x9d05('0x41')][_0x9d05('0x42')]({'where':{'membername':_0x1be1b6[_0x9d05('0x1e')]},'individualHooks':!![]});}})['then'](function(){if(_0x1be1b6){return db[_0x9d05('0x23')][_0x9d05('0xe')]({'where':{'membername':_0x1be1b6[_0x9d05('0x1e')],'exitAt':null}});}})[_0x9d05('0x15')](function(_0x108c32){if(_0x1be1b6){if(_0x108c32&&_0x108c32[_0x9d05('0x27')]){var _0x1a3152=[];_0x108c32[_0x9d05('0x2a')](function(_0x2569d9){_0x1a3152['push'](_0x2569d9[_0x9d05('0x33')]({'exitAt':moment()[_0x9d05('0x25')](_0x9d05('0x26'))}));});return BPromise['all'](_0x1a3152);}}})[_0x9d05('0x15')](function(){if(_0x1be1b6){return _0x1be1b6[_0x9d05('0x33')]({'online':![],'voicePause':![],'mailPause':![],'chatPause':![],'faxPause':![],'smsPause':![],'openchannelPause':![]});}})[_0x9d05('0x15')](function(_0x358d56){_0x2c4678(_0x358d56);})['catch'](function(_0x554406){_0x4c80cb(_0x17715b[_0x9d05('0x19')](0x1f4,_0x554406[_0x9d05('0x1a')]));});});};exports['LoginUser']=function(_0x2da8d5){var _0x555ddd=this;return new Promise(function(_0x34b7da,_0x20485c){var _0x5174d7;var _0x405a70;var _0x3bb62e;var _0x1e5d4e;return db['User'][_0x9d05('0x39')]({'where':_0x2da8d5[_0x9d05('0xf')][_0x9d05('0x10')]||{},'attributes':['id',_0x9d05('0x1e'),'role',_0x9d05('0x43'),_0x9d05('0x44'),_0x9d05('0x30'),_0x9d05('0x45'),'interface']})[_0x9d05('0x15')](function(_0x301cf3){if(_0x301cf3){_0x5174d7=_0x301cf3;_0x1e5d4e=_0x2da8d5[_0x9d05('0x31')][_0x9d05('0x20')]?_0x2da8d5[_0x9d05('0x31')]['interface']:util[_0x9d05('0x25')]('SIP/%s',_0x5174d7['name']);return db[_0x9d05('0xd')][_0x9d05('0x46')]({'where':{'role':_0x9d05('0x47'),'online':!![],'id':{'$ne':_0x5174d7['id']}}});}})[_0x9d05('0x15')](function(_0x2ecf65){if(_0x2ecf65){_0x3bb62e=_0x2ecf65;return require(_0x9d05('0x48'))[_0x9d05('0x49')]();}})[_0x9d05('0x15')](function(_0x1a6aa5){if(_0x1a6aa5&&_0x1a6aa5[_0x9d05('0x4a')]&&_0x3bb62e>=_0x1a6aa5[_0x9d05('0x4a')]){throw new Error(_0x9d05('0x4b'));}})[_0x9d05('0x15')](function(){if(_0x5174d7){return db[_0x9d05('0x41')][_0x9d05('0x42')]({'where':{'membername':_0x5174d7[_0x9d05('0x1e')]},'individualHooks':!![]});}})[_0x9d05('0x15')](function(){if(_0x5174d7){return _0x5174d7['getVoiceQueues']({'raw':!![]});}})[_0x9d05('0x15')](function(_0x5bd697){if(_0x5174d7){if(_0x5bd697){var _0x471ad0=[];_0x405a70=_0x5bd697;if(_0x405a70[_0x9d05('0x27')]){for(var _0x2009cb=0x0;_0x2009cb<_0x405a70[_0x9d05('0x27')];_0x2009cb++){_0x471ad0[_0x9d05('0x2b')](db[_0x9d05('0x41')][_0x9d05('0x4c')]({'membername':_0x5174d7[_0x9d05('0x1e')],'UserId':_0x5174d7['id'],'queue_name':_0x405a70[_0x2009cb][_0x9d05('0x1e')],'VoiceQueueId':_0x405a70[_0x2009cb]['id'],'interface':_0x1e5d4e,'paused':_0x5174d7[_0x9d05('0x45')]||![],'penalty':_0x405a70[_0x2009cb][_0x9d05('0x4d')]||0x0}));}return BPromise[_0x9d05('0x4e')](_0x471ad0);}}}})[_0x9d05('0x15')](function(){if(_0x5174d7){return db[_0x9d05('0x23')][_0x9d05('0xe')]({'where':{'membername':_0x5174d7[_0x9d05('0x1e')],'exitAt':null}});}})[_0x9d05('0x15')](function(_0x113eae){if(_0x5174d7){if(_0x113eae&&_0x113eae[_0x9d05('0x27')]){var _0x1ca32b=[];_0x113eae[_0x9d05('0x2a')](function(_0x48c083){_0x1ca32b['push'](_0x48c083[_0x9d05('0x33')]({'exitAt':moment()[_0x9d05('0x25')]('YYYY-MM-DD\x20HH:mm:ss')}));});return BPromise[_0x9d05('0x4e')](_0x1ca32b);}}})[_0x9d05('0x15')](function(){if(_0x5174d7){var _0x5a647a=[];var _0x23d179=[];var _0x47b6c5=utils[_0x9d05('0x29')]();var _0x486e21={'membername':_0x5174d7['name'],'interface':_0x1e5d4e,'enterAt':moment()['format'](_0x9d05('0x26')),'role':_0x5174d7[_0x9d05('0x1f')],'internal':_0x5174d7[_0x9d05('0x30')]};_0x47b6c5[_0x9d05('0x2a')](function(_0x3f2286){_0x5a647a[_0x9d05('0x2b')](_[_0x9d05('0x4f')]({'channel':_0x3f2286,'type':_0x9d05('0x50'),'data1':'callysquare','data2':_0x1e5d4e},_0x486e21));if(_0x5174d7[_0x9d05('0x45')]){_0x23d179[_0x9d05('0x2b')](_[_0x9d05('0x4f')]({'channel':_0x3f2286,'type':_0x9d05('0x24'),'data1':_0x9d05('0x51')},_0x486e21));}});return db[_0x9d05('0x23')]['bulkCreate'](_0x5a647a[_0x9d05('0x52')](_0x23d179),{'individualHooks':!![]});}})[_0x9d05('0x15')](function(){if(_0x5174d7){return _0x5174d7[_0x9d05('0x33')]({'online':!![],'lastLoginAt':moment()['format'](_0x9d05('0x26')),'voicePause':_0x5174d7[_0x9d05('0x45')]||![],'mailPause':_0x5174d7[_0x9d05('0x45')]||![],'chatPause':_0x5174d7[_0x9d05('0x45')]||![],'faxPause':_0x5174d7[_0x9d05('0x45')]||![],'smsPause':_0x5174d7[_0x9d05('0x45')]||![],'openchannelPause':_0x5174d7['loginInPause']||![],'pauseType':_0x5174d7['loginInPause']?'LOGININPAUSE':null,'lastPauseAt':moment()[_0x9d05('0x25')]('YYYY-MM-DD\x20HH:mm:ss'),'interface':_0x1e5d4e});}})[_0x9d05('0x15')](function(_0x53fcc8){_0x34b7da(_0x53fcc8);})[_0x9d05('0x18')](function(_0xf250aa){_0x20485c(_0x555ddd[_0x9d05('0x19')](0x1f4,_0xf250aa[_0x9d05('0x1a')]));});});};