4262564e6ae9e48fe3f7952828c467c7d4153c88
[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 _0x80d8=['../../config/utils','../../config/logger','rpc','../../config/environment','redis','defaults','socket.io-emitter','./user.socket','register','GetUser','User','options','raw','attributes','limit','include','model','map','then','info','debug','stringify','catch','error','message','ShowUser','find','PauseUser','where','name','internal','interface','format','params','update','MemberReport','findAll','PAUSE','length','YYYY-MM-DD\x20HH:mm:ss','updateAttributes','getChannels','push','SIP/%s','body','DEFAULT\x20PAUSE','bulkCreate','type','UnpauseUser','resolve','isValidChannel','channel','Channel\x20parameter\x20%s\x20is\x20invalid','findOne','role','voicePause','chatPause','faxPause','openchannelPause','smsPause','whatsappPause','pauseType','lastPauseAt','unpause','system','UserVoiceQueueRt','destroy','forEach','all','mobile','loginInPause','count','agent','getLicense','agents','getVoiceQueues','upsert','UserVoiceQueue.penalty','merge','LOGIN','callysquare','lodash','moment','bluebird','ioredis','../../mysqldb'];(function(_0x2a1b9f,_0x2260a3){var _0x3f9da7=function(_0x215add){while(--_0x215add){_0x2a1b9f['push'](_0x2a1b9f['shift']());}};_0x3f9da7(++_0x2260a3);}(_0x80d8,0xa7));var _0x880d=function(_0x1484e5,_0x2a588b){_0x1484e5=_0x1484e5-0x0;var _0x1243f7=_0x80d8[_0x1484e5];return _0x1243f7;};'use strict';var _=require(_0x880d('0x0'));var util=require('util');var moment=require(_0x880d('0x1'));var BPromise=require(_0x880d('0x2'));var Redis=require(_0x880d('0x3'));var db=require(_0x880d('0x4'))['db'];var utils=require(_0x880d('0x5'));var logger=require(_0x880d('0x6'))(_0x880d('0x7'));var config=require(_0x880d('0x8'));config[_0x880d('0x9')]=_[_0x880d('0xa')](config[_0x880d('0x9')],{'host':'localhost','port':0x18eb});var socket=require(_0x880d('0xb'))(new Redis(config[_0x880d('0x9')]));require(_0x880d('0xc'))[_0x880d('0xd')](socket);exports[_0x880d('0xe')]=function(_0x5c972e){var _0x54bf38=this;return new Promise(function(_0x43f2b7,_0x47f5b3){return db[_0x880d('0xf')]['findAll']({'raw':_0x5c972e[_0x880d('0x10')]?_0x5c972e[_0x880d('0x10')][_0x880d('0x11')]===undefined?!![]:![]:!![],'where':_0x5c972e[_0x880d('0x10')]?_0x5c972e['options']['where']||null:null,'attributes':_0x5c972e['options']?_0x5c972e[_0x880d('0x10')][_0x880d('0x12')]||null:null,'limit':_0x5c972e[_0x880d('0x10')]?_0x5c972e['options'][_0x880d('0x13')]||null:null,'include':_0x5c972e[_0x880d('0x10')]?_0x5c972e['options'][_0x880d('0x14')]?_['map'](_0x5c972e[_0x880d('0x10')][_0x880d('0x14')],function(_0x4924bb){return{'model':db[_0x4924bb[_0x880d('0x15')]],'as':_0x4924bb['as'],'attributes':_0x4924bb['attributes'],'include':_0x4924bb['include']?_[_0x880d('0x16')](_0x4924bb[_0x880d('0x14')],function(_0xf0e136){return{'model':db[_0xf0e136[_0x880d('0x15')]],'as':_0xf0e136['as'],'attributes':_0xf0e136[_0x880d('0x12')],'include':_0xf0e136[_0x880d('0x14')]?_[_0x880d('0x16')](_0xf0e136['include'],function(_0xd4811a){return{'model':db[_0xd4811a['model']],'as':_0xd4811a['as'],'attributes':_0xd4811a[_0x880d('0x12')]};}):[]};}):[]};}):[]:[]})[_0x880d('0x17')](function(_0x42755c){logger[_0x880d('0x18')](_0x880d('0xe'),_0x5c972e);logger[_0x880d('0x19')]('GetUser',_0x5c972e,JSON[_0x880d('0x1a')](_0x42755c));_0x43f2b7(_0x42755c);})[_0x880d('0x1b')](function(_0x300cca){logger[_0x880d('0x1c')](_0x880d('0xe'),_0x300cca[_0x880d('0x1d')],_0x5c972e);_0x47f5b3(_0x54bf38[_0x880d('0x1c')](0x1f4,_0x300cca[_0x880d('0x1d')]));});});};exports[_0x880d('0x1e')]=function(_0x17ba48){var _0x4fbedb=this;return new Promise(function(_0xcf4fa7,_0xeb660c){return db[_0x880d('0xf')][_0x880d('0x1f')]({'raw':_0x17ba48['options']?_0x17ba48[_0x880d('0x10')][_0x880d('0x11')]===undefined?!![]:![]:!![],'where':_0x17ba48[_0x880d('0x10')]?_0x17ba48[_0x880d('0x10')]['where']||null:null,'attributes':_0x17ba48[_0x880d('0x10')]?_0x17ba48['options']['attributes']||null:null,'include':_0x17ba48[_0x880d('0x10')]?_0x17ba48[_0x880d('0x10')][_0x880d('0x14')]?_[_0x880d('0x16')](_0x17ba48[_0x880d('0x10')]['include'],function(_0x45a32e){return{'model':db[_0x45a32e[_0x880d('0x15')]],'as':_0x45a32e['as'],'attributes':_0x45a32e[_0x880d('0x12')],'include':_0x45a32e[_0x880d('0x14')]?_['map'](_0x45a32e[_0x880d('0x14')],function(_0x39f28b){return{'model':db[_0x39f28b[_0x880d('0x15')]],'as':_0x39f28b['as'],'attributes':_0x39f28b['attributes'],'include':_0x39f28b[_0x880d('0x14')]?_['map'](_0x39f28b[_0x880d('0x14')],function(_0xe45839){return{'model':db[_0xe45839['model']],'as':_0xe45839['as'],'attributes':_0xe45839[_0x880d('0x12')]};}):[]};}):[]};}):[]:[]})[_0x880d('0x17')](function(_0x301766){logger['info'](_0x880d('0x1e'),_0x17ba48);logger[_0x880d('0x19')]('ShowUser',_0x17ba48,JSON['stringify'](_0x301766));_0xcf4fa7(_0x301766);})['catch'](function(_0x2cdeb8){logger[_0x880d('0x1c')](_0x880d('0x1e'),_0x2cdeb8[_0x880d('0x1d')],_0x17ba48);_0xeb660c(_0x4fbedb[_0x880d('0x1c')](0x1f4,_0x2cdeb8[_0x880d('0x1d')]));});});};exports[_0x880d('0x20')]=function(_0x256d05){var _0x12f5df;return db[_0x880d('0xf')][_0x880d('0x1f')]({'where':_0x256d05[_0x880d('0x10')][_0x880d('0x21')]||{},'attributes':['id',_0x880d('0x22'),'role',_0x880d('0x23'),_0x880d('0x24')]})[_0x880d('0x17')](function(_0x4dfe40){if(!_0x4dfe40){throw new Error(util[_0x880d('0x25')]('User\x20with\x20id\x20%s\x20not\x20found',_0x256d05[_0x880d('0x26')]['id']));}_0x12f5df=_0x4dfe40;return db['UserVoiceQueueRt'][_0x880d('0x27')]({'paused':0x1},{'where':{'UserId':_0x12f5df['id']},'individualHooks':!![]});})[_0x880d('0x17')](function(){return db[_0x880d('0x28')][_0x880d('0x29')]({'where':{'membername':_0x12f5df[_0x880d('0x22')],'type':_0x880d('0x2a'),'exitAt':null}});})[_0x880d('0x17')](function(_0x4deede){if(_0x4deede&&_0x4deede[_0x880d('0x2b')]){var _0x21d3e5=moment()['format'](_0x880d('0x2c'));for(var _0x42a549=0x0,_0x2d1088=_0x4deede[_0x880d('0x2b')];_0x42a549<_0x2d1088;_0x42a549++){_0x4deede[_0x42a549][_0x880d('0x2d')]({'exitAt':_0x21d3e5});}}})[_0x880d('0x17')](function(){var _0x19145a=[];var _0x293b7d=utils[_0x880d('0x2e')]();_0x293b7d['forEach'](function(_0x3e39cb){_0x19145a[_0x880d('0x2f')]({'channel':_0x3e39cb,'membername':_0x12f5df[_0x880d('0x22')],'interface':_['isNil'](_0x12f5df[_0x880d('0x24')])?util['format'](_0x880d('0x30'),_0x12f5df[_0x880d('0x22')]):_0x12f5df[_0x880d('0x24')],'type':_0x880d('0x2a'),'enterAt':moment()['format']('YYYY-MM-DD\x20HH:mm:ss'),'data1':_0x256d05[_0x880d('0x31')]['type']||_0x880d('0x32'),'role':_0x12f5df['role'],'internal':_0x12f5df[_0x880d('0x23')],'uniqueid':_0x256d05[_0x880d('0x31')]['uniqueid']||null});});return db[_0x880d('0x28')][_0x880d('0x33')](_0x19145a,{'individualHooks':!![]});})[_0x880d('0x17')](function(){return _0x12f5df['update']({'voicePause':!![],'mailPause':!![],'chatPause':!![],'faxPause':!![],'smsPause':!![],'openchannelPause':!![],'whatsappPause':!![],'pauseType':_0x256d05['body'][_0x880d('0x34')]||_0x880d('0x32'),'lastPauseAt':moment()['format'](_0x880d('0x2c'))});})[_0x880d('0x1b')](function(_0x4ea410){throw _0x4ea410;});};exports[_0x880d('0x35')]=function(_0x4aa7d1){return Promise[_0x880d('0x36')]()['then'](function(){if(_0x4aa7d1[_0x880d('0x31')]['channel']&&!utils[_0x880d('0x37')](_0x4aa7d1['body'][_0x880d('0x38')])){throw new Error(util['format'](_0x880d('0x39'),_0x4aa7d1['body'][_0x880d('0x38')]));}return db[_0x880d('0xf')][_0x880d('0x3a')]({'where':_0x4aa7d1[_0x880d('0x10')][_0x880d('0x21')]||{},'attributes':['id',_0x880d('0x22'),_0x880d('0x3b'),'internal','interface','online',_0x880d('0x3c'),'mailPause',_0x880d('0x3d'),_0x880d('0x3e'),_0x880d('0x3f'),_0x880d('0x40'),_0x880d('0x41'),_0x880d('0x42'),_0x880d('0x43')]});})[_0x880d('0x17')](function(_0x2613c2){if(!_0x2613c2){throw new Error(util[_0x880d('0x25')]('User\x20with\x20id\x20%s\x20not\x20found',_0x4aa7d1['params']['id']));}return _0x2613c2[_0x880d('0x44')](_0x4aa7d1['body'][_0x880d('0x38')],_0x880d('0x45'));})[_0x880d('0x1b')](function(_0x23dd65){throw _0x23dd65;});};exports['LogoutUser']=function(_0x21a310){var _0x94f3f6=this;return new Promise(function(_0x44db85,_0x2b737a){var _0x585fac;return db[_0x880d('0xf')][_0x880d('0x3a')]({'where':_0x21a310[_0x880d('0x10')][_0x880d('0x21')]||{},'attributes':['id',_0x880d('0x22')]})[_0x880d('0x17')](function(_0x360dc4){if(_0x360dc4){_0x585fac=_0x360dc4;return db[_0x880d('0x46')][_0x880d('0x47')]({'where':{'membername':_0x585fac[_0x880d('0x22')]},'individualHooks':!![]});}})[_0x880d('0x17')](function(){if(_0x585fac){return db['MemberReport'][_0x880d('0x29')]({'where':{'membername':_0x585fac[_0x880d('0x22')],'exitAt':null}});}})[_0x880d('0x17')](function(_0x746395){if(_0x585fac){if(_0x746395&&_0x746395[_0x880d('0x2b')]){var _0x3edc73=[];_0x746395[_0x880d('0x48')](function(_0x3e28b5){_0x3edc73['push'](_0x3e28b5[_0x880d('0x27')]({'exitAt':moment()[_0x880d('0x25')](_0x880d('0x2c'))}));});return BPromise[_0x880d('0x49')](_0x3edc73);}}})[_0x880d('0x17')](function(){if(_0x585fac){return _0x585fac[_0x880d('0x27')]({'online':![],'voicePause':![],'mailPause':![],'chatPause':![],'faxPause':![],'smsPause':![],'openchannelPause':![]});}})[_0x880d('0x17')](function(_0x534029){_0x44db85(_0x534029);})[_0x880d('0x1b')](function(_0x24736c){_0x2b737a(_0x94f3f6[_0x880d('0x1c')](0x1f4,_0x24736c['message']));});});};exports['LoginUser']=function(_0x1c069a){var _0x2c865a=this;return new Promise(function(_0x5282e3,_0x30906c){var _0x46e8e0;var _0x1ea8f7;var _0x374d86;var _0x5084cd;return db['User'][_0x880d('0x3a')]({'where':_0x1c069a[_0x880d('0x10')][_0x880d('0x21')]||{},'attributes':['id',_0x880d('0x22'),_0x880d('0x3b'),_0x880d('0x4a'),'phone',_0x880d('0x23'),_0x880d('0x4b'),_0x880d('0x24')]})[_0x880d('0x17')](function(_0x2fcc35){if(_0x2fcc35){_0x46e8e0=_0x2fcc35;_0x5084cd=_0x1c069a[_0x880d('0x31')]['interface']?_0x1c069a['body'][_0x880d('0x24')]:util[_0x880d('0x25')](_0x880d('0x30'),_0x46e8e0[_0x880d('0x22')]);return db['User'][_0x880d('0x4c')]({'where':{'role':_0x880d('0x4d'),'online':!![],'id':{'$ne':_0x46e8e0['id']}}});}})[_0x880d('0x17')](function(_0x7b4ea2){if(_0x7b4ea2){_0x374d86=_0x7b4ea2;return require('../../config/license/util')[_0x880d('0x4e')]();}})[_0x880d('0x17')](function(_0x374ac5){if(_0x374ac5&&_0x374ac5[_0x880d('0x4f')]&&_0x374d86>=_0x374ac5[_0x880d('0x4f')]){throw new Error('Maximum\x20login\x20has\x20been\x20reached');}})[_0x880d('0x17')](function(){if(_0x46e8e0){return db[_0x880d('0x46')]['destroy']({'where':{'membername':_0x46e8e0[_0x880d('0x22')]},'individualHooks':!![]});}})[_0x880d('0x17')](function(){if(_0x46e8e0){return _0x46e8e0[_0x880d('0x50')]({'raw':!![]});}})[_0x880d('0x17')](function(_0x3af970){if(_0x46e8e0){if(_0x3af970){var _0x51f761=[];_0x1ea8f7=_0x3af970;if(_0x1ea8f7[_0x880d('0x2b')]){for(var _0x46381c=0x0;_0x46381c<_0x1ea8f7[_0x880d('0x2b')];_0x46381c++){_0x51f761[_0x880d('0x2f')](db[_0x880d('0x46')][_0x880d('0x51')]({'membername':_0x46e8e0[_0x880d('0x22')],'UserId':_0x46e8e0['id'],'queue_name':_0x1ea8f7[_0x46381c][_0x880d('0x22')],'VoiceQueueId':_0x1ea8f7[_0x46381c]['id'],'interface':_0x5084cd,'paused':_0x46e8e0[_0x880d('0x4b')]||![],'penalty':_0x1ea8f7[_0x46381c][_0x880d('0x52')]||0x0}));}return BPromise['all'](_0x51f761);}}}})[_0x880d('0x17')](function(){if(_0x46e8e0){return db[_0x880d('0x28')]['findAll']({'where':{'membername':_0x46e8e0[_0x880d('0x22')],'exitAt':null}});}})[_0x880d('0x17')](function(_0x1e7b49){if(_0x46e8e0){if(_0x1e7b49&&_0x1e7b49['length']){var _0x46ca3d=[];_0x1e7b49[_0x880d('0x48')](function(_0x4b1008){_0x46ca3d[_0x880d('0x2f')](_0x4b1008[_0x880d('0x27')]({'exitAt':moment()[_0x880d('0x25')]('YYYY-MM-DD\x20HH:mm:ss')}));});return BPromise['all'](_0x46ca3d);}}})['then'](function(){if(_0x46e8e0){var _0x481f4c=[];var _0x2370e5=[];var _0x667863=utils[_0x880d('0x2e')]();var _0xf68cb5={'membername':_0x46e8e0[_0x880d('0x22')],'interface':_0x5084cd,'enterAt':moment()[_0x880d('0x25')](_0x880d('0x2c')),'role':_0x46e8e0[_0x880d('0x3b')],'internal':_0x46e8e0[_0x880d('0x23')]};_0x667863[_0x880d('0x48')](function(_0x55b170){_0x481f4c[_0x880d('0x2f')](_[_0x880d('0x53')]({'channel':_0x55b170,'type':_0x880d('0x54'),'data1':_0x880d('0x55'),'data2':_0x5084cd},_0xf68cb5));if(_0x46e8e0['loginInPause']){_0x2370e5[_0x880d('0x2f')](_[_0x880d('0x53')]({'channel':_0x55b170,'type':_0x880d('0x2a'),'data1':'LOGININPAUSE'},_0xf68cb5));}});return db[_0x880d('0x28')][_0x880d('0x33')](_0x481f4c['concat'](_0x2370e5),{'individualHooks':!![]});}})[_0x880d('0x17')](function(){if(_0x46e8e0){return _0x46e8e0[_0x880d('0x27')]({'online':!![],'lastLoginAt':moment()[_0x880d('0x25')](_0x880d('0x2c')),'voicePause':_0x46e8e0['loginInPause']||![],'mailPause':_0x46e8e0[_0x880d('0x4b')]||![],'chatPause':_0x46e8e0['loginInPause']||![],'faxPause':_0x46e8e0[_0x880d('0x4b')]||![],'smsPause':_0x46e8e0['loginInPause']||![],'openchannelPause':_0x46e8e0[_0x880d('0x4b')]||![],'pauseType':_0x46e8e0[_0x880d('0x4b')]?'LOGININPAUSE':null,'lastPauseAt':moment()[_0x880d('0x25')](_0x880d('0x2c')),'interface':_0x5084cd});}})[_0x880d('0x17')](function(_0x20dc05){_0x5282e3(_0x20dc05);})[_0x880d('0x1b')](function(_0x403e1d){_0x30906c(_0x2c865a[_0x880d('0x1c')](0x1f4,_0x403e1d['message']));});});};