Built motion from commit b5413ace.|2.6.9
[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 _0x6964=['phone','loginInPause','count','agent','../../config/license/util','agents','getVoiceQueues','upsert','UserVoiceQueue.penalty','LOGIN','callysquare','LOGININPAUSE','concat','lodash','moment','bluebird','ioredis','../../mysqldb','../../config/logger','rpc','../../config/environment','redis','defaults','localhost','socket.io-emitter','./user.socket','register','GetUser','options','raw','where','limit','include','map','model','attributes','then','info','stringify','error','message','ShowUser','User','debug','catch','PauseUser','find','role','internal','interface','UserVoiceQueueRt','MemberReport','findAll','name','length','YYYY-MM-DD\x20HH:mm:ss','getChannels','forEach','push','SIP/%s','PAUSE','format','type','uniqueid','bulkCreate','body','DEFAULT\x20PAUSE','UnpauseUser','channel','isValidChannel','Channel\x20parameter\x20%s\x20is\x20invalid','mailPause','chatPause','smsPause','whatsappPause','pauseType','User\x20with\x20id\x20%s\x20not\x20found','unpause','system','LogoutUser','findOne','destroy','all','update','LoginUser'];(function(_0x5d4607,_0x6b5e7b){var _0x5e4a86=function(_0x46891a){while(--_0x46891a){_0x5d4607['push'](_0x5d4607['shift']());}};_0x5e4a86(++_0x6b5e7b);}(_0x6964,0x1b6));var _0x4696=function(_0xe3e0af,_0x4564ed){_0xe3e0af=_0xe3e0af-0x0;var _0x4828e9=_0x6964[_0xe3e0af];return _0x4828e9;};'use strict';var _=require(_0x4696('0x0'));var util=require('util');var moment=require(_0x4696('0x1'));var BPromise=require(_0x4696('0x2'));var Redis=require(_0x4696('0x3'));var db=require(_0x4696('0x4'))['db'];var utils=require('../../config/utils');var logger=require(_0x4696('0x5'))(_0x4696('0x6'));var config=require(_0x4696('0x7'));config[_0x4696('0x8')]=_[_0x4696('0x9')](config[_0x4696('0x8')],{'host':_0x4696('0xa'),'port':0x18eb});var socket=require(_0x4696('0xb'))(new Redis(config[_0x4696('0x8')]));require(_0x4696('0xc'))[_0x4696('0xd')](socket);exports[_0x4696('0xe')]=function(_0x488c7b){var _0x1cdb6f=this;return new Promise(function(_0x4c241a,_0x2dcc80){return db['User']['findAll']({'raw':_0x488c7b[_0x4696('0xf')]?_0x488c7b[_0x4696('0xf')][_0x4696('0x10')]===undefined?!![]:![]:!![],'where':_0x488c7b['options']?_0x488c7b[_0x4696('0xf')][_0x4696('0x11')]||null:null,'attributes':_0x488c7b[_0x4696('0xf')]?_0x488c7b['options']['attributes']||null:null,'limit':_0x488c7b[_0x4696('0xf')]?_0x488c7b[_0x4696('0xf')][_0x4696('0x12')]||null:null,'include':_0x488c7b[_0x4696('0xf')]?_0x488c7b[_0x4696('0xf')][_0x4696('0x13')]?_[_0x4696('0x14')](_0x488c7b['options'][_0x4696('0x13')],function(_0x134a49){return{'model':db[_0x134a49[_0x4696('0x15')]],'as':_0x134a49['as'],'attributes':_0x134a49['attributes'],'include':_0x134a49[_0x4696('0x13')]?_[_0x4696('0x14')](_0x134a49[_0x4696('0x13')],function(_0x527f96){return{'model':db[_0x527f96['model']],'as':_0x527f96['as'],'attributes':_0x527f96[_0x4696('0x16')],'include':_0x527f96[_0x4696('0x13')]?_[_0x4696('0x14')](_0x527f96[_0x4696('0x13')],function(_0x49ef10){return{'model':db[_0x49ef10[_0x4696('0x15')]],'as':_0x49ef10['as'],'attributes':_0x49ef10[_0x4696('0x16')]};}):[]};}):[]};}):[]:[]})[_0x4696('0x17')](function(_0x39611){logger[_0x4696('0x18')]('GetUser',_0x488c7b);logger['debug'](_0x4696('0xe'),_0x488c7b,JSON[_0x4696('0x19')](_0x39611));_0x4c241a(_0x39611);})['catch'](function(_0x32dd98){logger[_0x4696('0x1a')]('GetUser',_0x32dd98[_0x4696('0x1b')],_0x488c7b);_0x2dcc80(_0x1cdb6f[_0x4696('0x1a')](0x1f4,_0x32dd98[_0x4696('0x1b')]));});});};exports[_0x4696('0x1c')]=function(_0x1ac9cf){var _0x164a4f=this;return new Promise(function(_0x1cc6c5,_0x86c1c0){return db[_0x4696('0x1d')]['find']({'raw':_0x1ac9cf['options']?_0x1ac9cf[_0x4696('0xf')][_0x4696('0x10')]===undefined?!![]:![]:!![],'where':_0x1ac9cf[_0x4696('0xf')]?_0x1ac9cf[_0x4696('0xf')][_0x4696('0x11')]||null:null,'attributes':_0x1ac9cf[_0x4696('0xf')]?_0x1ac9cf[_0x4696('0xf')][_0x4696('0x16')]||null:null,'include':_0x1ac9cf[_0x4696('0xf')]?_0x1ac9cf['options'][_0x4696('0x13')]?_['map'](_0x1ac9cf[_0x4696('0xf')][_0x4696('0x13')],function(_0x571127){return{'model':db[_0x571127[_0x4696('0x15')]],'as':_0x571127['as'],'attributes':_0x571127[_0x4696('0x16')],'include':_0x571127[_0x4696('0x13')]?_[_0x4696('0x14')](_0x571127[_0x4696('0x13')],function(_0x48edda){return{'model':db[_0x48edda[_0x4696('0x15')]],'as':_0x48edda['as'],'attributes':_0x48edda['attributes'],'include':_0x48edda[_0x4696('0x13')]?_['map'](_0x48edda[_0x4696('0x13')],function(_0x23351f){return{'model':db[_0x23351f['model']],'as':_0x23351f['as'],'attributes':_0x23351f['attributes']};}):[]};}):[]};}):[]:[]})[_0x4696('0x17')](function(_0x351cae){logger['info'](_0x4696('0x1c'),_0x1ac9cf);logger[_0x4696('0x1e')]('ShowUser',_0x1ac9cf,JSON[_0x4696('0x19')](_0x351cae));_0x1cc6c5(_0x351cae);})[_0x4696('0x1f')](function(_0x4dd024){logger['error'](_0x4696('0x1c'),_0x4dd024[_0x4696('0x1b')],_0x1ac9cf);_0x86c1c0(_0x164a4f[_0x4696('0x1a')](0x1f4,_0x4dd024['message']));});});};exports[_0x4696('0x20')]=function(_0x460def){var _0x5cfda4=this;return new Promise(function(_0x45e865,_0x3686fe){var _0x2ad700;return db[_0x4696('0x1d')][_0x4696('0x21')]({'where':_0x460def[_0x4696('0xf')][_0x4696('0x11')]||{},'attributes':['id','name',_0x4696('0x22'),_0x4696('0x23'),_0x4696('0x24')]})[_0x4696('0x17')](function(_0x2f0576){if(_0x2f0576){_0x2ad700=_0x2f0576;return db[_0x4696('0x25')]['update']({'paused':0x1},{'where':{'UserId':_0x2ad700['id']},'individualHooks':!![]});}})[_0x4696('0x17')](function(){if(_0x2ad700){return db[_0x4696('0x26')][_0x4696('0x27')]({'where':{'membername':_0x2ad700[_0x4696('0x28')],'type':'PAUSE','exitAt':null}});}})[_0x4696('0x17')](function(_0x2cfbec){if(_0x2ad700){if(_0x2cfbec&&_0x2cfbec[_0x4696('0x29')]){var _0x7792af=moment()['format'](_0x4696('0x2a'));for(var _0x4e4009=0x0,_0x49d3c8=_0x2cfbec[_0x4696('0x29')];_0x4e4009<_0x49d3c8;_0x4e4009++){_0x2cfbec[_0x4e4009]['updateAttributes']({'exitAt':_0x7792af});}}}})[_0x4696('0x17')](function(){if(_0x2ad700){var _0x2ff67c=[];var _0x2a1c23=utils[_0x4696('0x2b')]();_0x2a1c23[_0x4696('0x2c')](function(_0x5bc370){_0x2ff67c[_0x4696('0x2d')]({'channel':_0x5bc370,'membername':_0x2ad700['name'],'interface':_['isNil'](_0x2ad700[_0x4696('0x24')])?util['format'](_0x4696('0x2e'),_0x2ad700[_0x4696('0x28')]):_0x2ad700[_0x4696('0x24')],'type':_0x4696('0x2f'),'enterAt':moment()[_0x4696('0x30')](_0x4696('0x2a')),'data1':_0x460def['body'][_0x4696('0x31')]||'DEFAULT\x20PAUSE','role':_0x2ad700['role'],'internal':_0x2ad700[_0x4696('0x23')],'uniqueid':_0x460def['body'][_0x4696('0x32')]||null});});return db['MemberReport'][_0x4696('0x33')](_0x2ff67c,{'individualHooks':!![]});}})[_0x4696('0x17')](function(){if(_0x2ad700){return _0x2ad700['update']({'voicePause':!![],'mailPause':!![],'chatPause':!![],'faxPause':!![],'smsPause':!![],'openchannelPause':!![],'whatsappPause':!![],'pauseType':_0x460def[_0x4696('0x34')][_0x4696('0x31')]||_0x4696('0x35'),'lastPauseAt':moment()[_0x4696('0x30')]('YYYY-MM-DD\x20HH:mm:ss')});}})[_0x4696('0x17')](function(_0x4454bf){_0x45e865(_0x4454bf);})[_0x4696('0x1f')](function(_0x589167){_0x3686fe(_0x5cfda4[_0x4696('0x1a')](0x1f4,_0x589167[_0x4696('0x1b')]));});});};exports[_0x4696('0x36')]=function(_0x16d0ef){var _0x5c1f2f=this;return new Promise(function(_0x5754ef,_0x100d4b){if(_0x16d0ef[_0x4696('0x34')][_0x4696('0x37')]&&!utils[_0x4696('0x38')](_0x16d0ef['body'][_0x4696('0x37')])){throw new Error(util['format'](_0x4696('0x39'),_0x16d0ef['body']['channel']));}return db[_0x4696('0x1d')]['findOne']({'where':_0x16d0ef[_0x4696('0xf')][_0x4696('0x11')]||{},'attributes':['id',_0x4696('0x28'),'role',_0x4696('0x23'),_0x4696('0x24'),'online','voicePause',_0x4696('0x3a'),_0x4696('0x3b'),'faxPause','openchannelPause',_0x4696('0x3c'),_0x4696('0x3d'),_0x4696('0x3e'),'lastPauseAt']})[_0x4696('0x17')](function(_0x36d6b6){if(!_0x36d6b6){throw new Error(util[_0x4696('0x30')](_0x4696('0x3f'),_0x16d0ef['params']['id']));}return _0x36d6b6[_0x4696('0x40')](_0x16d0ef[_0x4696('0x34')][_0x4696('0x37')],_0x4696('0x41'));})[_0x4696('0x17')](function(_0x511b60){_0x5754ef(_0x511b60);})[_0x4696('0x1f')](function(_0x4763db){_0x100d4b(_0x5c1f2f[_0x4696('0x1a')](0x1f4,_0x4763db[_0x4696('0x1b')]));});});};exports[_0x4696('0x42')]=function(_0xb5e572){var _0x369303=this;return new Promise(function(_0x33ae7e,_0x431401){var _0x51fffa;return db['User'][_0x4696('0x43')]({'where':_0xb5e572[_0x4696('0xf')]['where']||{},'attributes':['id',_0x4696('0x28')]})['then'](function(_0x386121){if(_0x386121){_0x51fffa=_0x386121;return db['UserVoiceQueueRt'][_0x4696('0x44')]({'where':{'membername':_0x51fffa[_0x4696('0x28')]},'individualHooks':!![]});}})[_0x4696('0x17')](function(){if(_0x51fffa){return db[_0x4696('0x26')]['findAll']({'where':{'membername':_0x51fffa[_0x4696('0x28')],'exitAt':null}});}})[_0x4696('0x17')](function(_0x55106b){if(_0x51fffa){if(_0x55106b&&_0x55106b['length']){var _0x4961cc=[];_0x55106b[_0x4696('0x2c')](function(_0x919b01){_0x4961cc[_0x4696('0x2d')](_0x919b01['update']({'exitAt':moment()[_0x4696('0x30')](_0x4696('0x2a'))}));});return BPromise[_0x4696('0x45')](_0x4961cc);}}})[_0x4696('0x17')](function(){if(_0x51fffa){return _0x51fffa[_0x4696('0x46')]({'online':![],'voicePause':![],'mailPause':![],'chatPause':![],'faxPause':![],'smsPause':![],'openchannelPause':![]});}})[_0x4696('0x17')](function(_0x459d85){_0x33ae7e(_0x459d85);})[_0x4696('0x1f')](function(_0x39865c){_0x431401(_0x369303['error'](0x1f4,_0x39865c['message']));});});};exports[_0x4696('0x47')]=function(_0xa48f4a){var _0x35e7ac=this;return new Promise(function(_0x49c257,_0x2070cf){var _0x1d3fd8;var _0x159b67;var _0x3f6ce4;var _0x5b8c67;return db[_0x4696('0x1d')][_0x4696('0x43')]({'where':_0xa48f4a[_0x4696('0xf')][_0x4696('0x11')]||{},'attributes':['id',_0x4696('0x28'),_0x4696('0x22'),'mobile',_0x4696('0x48'),'internal',_0x4696('0x49'),'interface']})[_0x4696('0x17')](function(_0x1564f4){if(_0x1564f4){_0x1d3fd8=_0x1564f4;_0x5b8c67=_0xa48f4a[_0x4696('0x34')]['interface']?_0xa48f4a['body'][_0x4696('0x24')]:util[_0x4696('0x30')](_0x4696('0x2e'),_0x1d3fd8['name']);return db[_0x4696('0x1d')][_0x4696('0x4a')]({'where':{'role':_0x4696('0x4b'),'online':!![],'id':{'$ne':_0x1d3fd8['id']}}});}})[_0x4696('0x17')](function(_0x11bb20){if(_0x11bb20){_0x3f6ce4=_0x11bb20;return require(_0x4696('0x4c'))['getLicense']();}})[_0x4696('0x17')](function(_0x287b08){if(_0x287b08&&_0x287b08[_0x4696('0x4d')]&&_0x3f6ce4>=_0x287b08[_0x4696('0x4d')]){throw new Error('Maximum\x20login\x20has\x20been\x20reached');}})['then'](function(){if(_0x1d3fd8){return db[_0x4696('0x25')]['destroy']({'where':{'membername':_0x1d3fd8[_0x4696('0x28')]},'individualHooks':!![]});}})[_0x4696('0x17')](function(){if(_0x1d3fd8){return _0x1d3fd8[_0x4696('0x4e')]({'raw':!![]});}})[_0x4696('0x17')](function(_0xf62edc){if(_0x1d3fd8){if(_0xf62edc){var _0x36f0d3=[];_0x159b67=_0xf62edc;if(_0x159b67[_0x4696('0x29')]){for(var _0x3bc857=0x0;_0x3bc857<_0x159b67[_0x4696('0x29')];_0x3bc857++){_0x36f0d3[_0x4696('0x2d')](db[_0x4696('0x25')][_0x4696('0x4f')]({'membername':_0x1d3fd8[_0x4696('0x28')],'UserId':_0x1d3fd8['id'],'queue_name':_0x159b67[_0x3bc857][_0x4696('0x28')],'VoiceQueueId':_0x159b67[_0x3bc857]['id'],'interface':_0x5b8c67,'paused':_0x1d3fd8[_0x4696('0x49')]||![],'penalty':_0x159b67[_0x3bc857][_0x4696('0x50')]||0x0}));}return BPromise['all'](_0x36f0d3);}}}})[_0x4696('0x17')](function(){if(_0x1d3fd8){return db[_0x4696('0x26')][_0x4696('0x27')]({'where':{'membername':_0x1d3fd8[_0x4696('0x28')],'exitAt':null}});}})[_0x4696('0x17')](function(_0xc0dc1e){if(_0x1d3fd8){if(_0xc0dc1e&&_0xc0dc1e['length']){var _0x205a69=[];_0xc0dc1e[_0x4696('0x2c')](function(_0x360fc4){_0x205a69[_0x4696('0x2d')](_0x360fc4[_0x4696('0x46')]({'exitAt':moment()[_0x4696('0x30')](_0x4696('0x2a'))}));});return BPromise['all'](_0x205a69);}}})[_0x4696('0x17')](function(){if(_0x1d3fd8){var _0x5a3203=[];var _0xf7ae07=[];var _0x884b40=utils['getChannels']();var _0x5e0313={'membername':_0x1d3fd8['name'],'interface':_0x5b8c67,'enterAt':moment()[_0x4696('0x30')](_0x4696('0x2a')),'role':_0x1d3fd8[_0x4696('0x22')],'internal':_0x1d3fd8['internal']};_0x884b40[_0x4696('0x2c')](function(_0x520dcd){_0x5a3203[_0x4696('0x2d')](_['merge']({'channel':_0x520dcd,'type':_0x4696('0x51'),'data1':_0x4696('0x52'),'data2':_0x5b8c67},_0x5e0313));if(_0x1d3fd8[_0x4696('0x49')]){_0xf7ae07[_0x4696('0x2d')](_['merge']({'channel':_0x520dcd,'type':_0x4696('0x2f'),'data1':_0x4696('0x53')},_0x5e0313));}});return db['MemberReport'][_0x4696('0x33')](_0x5a3203[_0x4696('0x54')](_0xf7ae07),{'individualHooks':!![]});}})[_0x4696('0x17')](function(){if(_0x1d3fd8){return _0x1d3fd8[_0x4696('0x46')]({'online':!![],'lastLoginAt':moment()['format'](_0x4696('0x2a')),'voicePause':_0x1d3fd8[_0x4696('0x49')]||![],'mailPause':_0x1d3fd8[_0x4696('0x49')]||![],'chatPause':_0x1d3fd8['loginInPause']||![],'faxPause':_0x1d3fd8[_0x4696('0x49')]||![],'smsPause':_0x1d3fd8['loginInPause']||![],'openchannelPause':_0x1d3fd8['loginInPause']||![],'pauseType':_0x1d3fd8[_0x4696('0x49')]?'LOGININPAUSE':null,'lastPauseAt':moment()[_0x4696('0x30')](_0x4696('0x2a')),'interface':_0x5b8c67});}})[_0x4696('0x17')](function(_0x2df30f){_0x49c257(_0x2df30f);})['catch'](function(_0x5367fc){_0x2070cf(_0x35e7ac[_0x4696('0x1a')](0x1f4,_0x5367fc[_0x4696('0x1b')]));});});};