ba7cd6dfa80dd1a47cdd65ea35db927a2779413f
[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 _0x4c24=['include','map','model','info','GetUser','debug','stringify','catch','error','message','ShowUser','PauseUser','find','role','then','format','User\x20with\x20id\x20%s\x20not\x20found','params','UserVoiceQueueRt','update','name','length','YYYY-MM-DD\x20HH:mm:ss','updateAttributes','getChannels','forEach','push','isNil','interface','SIP/%s','PAUSE','type','DEFAULT\x20PAUSE','uniqueid','MemberReport','bulkCreate','body','resolve','channel','isValidChannel','Channel\x20parameter\x20%s\x20is\x20invalid','findOne','internal','voicePause','mailPause','faxPause','whatsappPause','pauseType','lastPauseAt','unpause','system','LogoutUser','destroy','LoginUser','count','../../config/license/util','getLicense','agents','Maximum\x20login\x20has\x20been\x20reached','upsert','loginInPause','UserVoiceQueue.penalty','all','merge','LOGIN','callysquare','LOGININPAUSE','lodash','util','moment','bluebird','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','redis','localhost','socket.io-emitter','./user.socket','User','findAll','options','raw','where','attributes','limit'];(function(_0x44d48d,_0xf539fd){var _0x2b6985=function(_0x1f3c72){while(--_0x1f3c72){_0x44d48d['push'](_0x44d48d['shift']());}};_0x2b6985(++_0xf539fd);}(_0x4c24,0x14b));var _0x44c2=function(_0x4825c2,_0x33766a){_0x4825c2=_0x4825c2-0x0;var _0x23ece9=_0x4c24[_0x4825c2];return _0x23ece9;};'use strict';var _=require(_0x44c2('0x0'));var util=require(_0x44c2('0x1'));var moment=require(_0x44c2('0x2'));var BPromise=require(_0x44c2('0x3'));var Redis=require(_0x44c2('0x4'));var db=require(_0x44c2('0x5'))['db'];var utils=require(_0x44c2('0x6'));var logger=require(_0x44c2('0x7'))(_0x44c2('0x8'));var config=require(_0x44c2('0x9'));config[_0x44c2('0xa')]=_['defaults'](config[_0x44c2('0xa')],{'host':_0x44c2('0xb'),'port':0x18eb});var socket=require(_0x44c2('0xc'))(new Redis(config[_0x44c2('0xa')]));require(_0x44c2('0xd'))['register'](socket);exports['GetUser']=function(_0xfb2fa3){var _0x20b238=this;return new Promise(function(_0x27a703,_0x350846){return db[_0x44c2('0xe')][_0x44c2('0xf')]({'raw':_0xfb2fa3['options']?_0xfb2fa3[_0x44c2('0x10')][_0x44c2('0x11')]===undefined?!![]:![]:!![],'where':_0xfb2fa3['options']?_0xfb2fa3[_0x44c2('0x10')][_0x44c2('0x12')]||null:null,'attributes':_0xfb2fa3[_0x44c2('0x10')]?_0xfb2fa3[_0x44c2('0x10')][_0x44c2('0x13')]||null:null,'limit':_0xfb2fa3[_0x44c2('0x10')]?_0xfb2fa3[_0x44c2('0x10')][_0x44c2('0x14')]||null:null,'include':_0xfb2fa3[_0x44c2('0x10')]?_0xfb2fa3[_0x44c2('0x10')][_0x44c2('0x15')]?_[_0x44c2('0x16')](_0xfb2fa3['options'][_0x44c2('0x15')],function(_0x429855){return{'model':db[_0x429855[_0x44c2('0x17')]],'as':_0x429855['as'],'attributes':_0x429855[_0x44c2('0x13')],'include':_0x429855[_0x44c2('0x15')]?_['map'](_0x429855['include'],function(_0x1b1d8a){return{'model':db[_0x1b1d8a['model']],'as':_0x1b1d8a['as'],'attributes':_0x1b1d8a[_0x44c2('0x13')],'include':_0x1b1d8a[_0x44c2('0x15')]?_[_0x44c2('0x16')](_0x1b1d8a[_0x44c2('0x15')],function(_0x4ce462){return{'model':db[_0x4ce462[_0x44c2('0x17')]],'as':_0x4ce462['as'],'attributes':_0x4ce462[_0x44c2('0x13')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x14b247){logger[_0x44c2('0x18')](_0x44c2('0x19'),_0xfb2fa3);logger[_0x44c2('0x1a')]('GetUser',_0xfb2fa3,JSON[_0x44c2('0x1b')](_0x14b247));_0x27a703(_0x14b247);})[_0x44c2('0x1c')](function(_0x437693){logger[_0x44c2('0x1d')](_0x44c2('0x19'),_0x437693['message'],_0xfb2fa3);_0x350846(_0x20b238['error'](0x1f4,_0x437693[_0x44c2('0x1e')]));});});};exports[_0x44c2('0x1f')]=function(_0xad620b){var _0x565e6c=this;return new Promise(function(_0x233b15,_0x33acfd){return db['User']['find']({'raw':_0xad620b['options']?_0xad620b[_0x44c2('0x10')][_0x44c2('0x11')]===undefined?!![]:![]:!![],'where':_0xad620b[_0x44c2('0x10')]?_0xad620b[_0x44c2('0x10')][_0x44c2('0x12')]||null:null,'attributes':_0xad620b[_0x44c2('0x10')]?_0xad620b['options']['attributes']||null:null,'include':_0xad620b['options']?_0xad620b['options']['include']?_['map'](_0xad620b[_0x44c2('0x10')][_0x44c2('0x15')],function(_0x4051ee){return{'model':db[_0x4051ee[_0x44c2('0x17')]],'as':_0x4051ee['as'],'attributes':_0x4051ee[_0x44c2('0x13')],'include':_0x4051ee[_0x44c2('0x15')]?_[_0x44c2('0x16')](_0x4051ee[_0x44c2('0x15')],function(_0x2883ce){return{'model':db[_0x2883ce['model']],'as':_0x2883ce['as'],'attributes':_0x2883ce[_0x44c2('0x13')],'include':_0x2883ce[_0x44c2('0x15')]?_[_0x44c2('0x16')](_0x2883ce[_0x44c2('0x15')],function(_0x25054d){return{'model':db[_0x25054d['model']],'as':_0x25054d['as'],'attributes':_0x25054d[_0x44c2('0x13')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x485480){logger[_0x44c2('0x18')]('ShowUser',_0xad620b);logger[_0x44c2('0x1a')](_0x44c2('0x1f'),_0xad620b,JSON['stringify'](_0x485480));_0x233b15(_0x485480);})[_0x44c2('0x1c')](function(_0x5697e6){logger[_0x44c2('0x1d')](_0x44c2('0x1f'),_0x5697e6[_0x44c2('0x1e')],_0xad620b);_0x33acfd(_0x565e6c[_0x44c2('0x1d')](0x1f4,_0x5697e6['message']));});});};exports[_0x44c2('0x20')]=function(_0x417d15){var _0x257a5b;return db['User'][_0x44c2('0x21')]({'where':_0x417d15[_0x44c2('0x10')][_0x44c2('0x12')]||{},'attributes':['id','name',_0x44c2('0x22'),'internal','interface']})[_0x44c2('0x23')](function(_0x4ea950){if(!_0x4ea950){throw new Error(util[_0x44c2('0x24')](_0x44c2('0x25'),_0x417d15[_0x44c2('0x26')]['id']));}_0x257a5b=_0x4ea950;return db[_0x44c2('0x27')][_0x44c2('0x28')]({'paused':0x1},{'where':{'UserId':_0x257a5b['id']},'individualHooks':!![]});})[_0x44c2('0x23')](function(){return db['MemberReport'][_0x44c2('0xf')]({'where':{'membername':_0x257a5b[_0x44c2('0x29')],'type':'PAUSE','exitAt':null}});})[_0x44c2('0x23')](function(_0xe0153e){if(_0xe0153e&&_0xe0153e[_0x44c2('0x2a')]){var _0x4ddd5d=moment()[_0x44c2('0x24')](_0x44c2('0x2b'));for(var _0x3e1dc8=0x0,_0x205cb6=_0xe0153e[_0x44c2('0x2a')];_0x3e1dc8<_0x205cb6;_0x3e1dc8++){_0xe0153e[_0x3e1dc8][_0x44c2('0x2c')]({'exitAt':_0x4ddd5d});}}})[_0x44c2('0x23')](function(){var _0x497baf=[];var _0x1cd231=utils[_0x44c2('0x2d')]();_0x1cd231[_0x44c2('0x2e')](function(_0x3fe80d){_0x497baf[_0x44c2('0x2f')]({'channel':_0x3fe80d,'membername':_0x257a5b[_0x44c2('0x29')],'interface':_[_0x44c2('0x30')](_0x257a5b[_0x44c2('0x31')])?util[_0x44c2('0x24')](_0x44c2('0x32'),_0x257a5b['name']):_0x257a5b['interface'],'type':_0x44c2('0x33'),'enterAt':moment()[_0x44c2('0x24')](_0x44c2('0x2b')),'data1':_0x417d15['body'][_0x44c2('0x34')]||_0x44c2('0x35'),'role':_0x257a5b[_0x44c2('0x22')],'internal':_0x257a5b['internal'],'uniqueid':_0x417d15['body'][_0x44c2('0x36')]||null});});return db[_0x44c2('0x37')][_0x44c2('0x38')](_0x497baf,{'individualHooks':!![]});})[_0x44c2('0x23')](function(){return _0x257a5b[_0x44c2('0x28')]({'voicePause':!![],'mailPause':!![],'chatPause':!![],'faxPause':!![],'smsPause':!![],'openchannelPause':!![],'whatsappPause':!![],'pauseType':_0x417d15[_0x44c2('0x39')][_0x44c2('0x34')]||_0x44c2('0x35'),'lastPauseAt':moment()[_0x44c2('0x24')](_0x44c2('0x2b'))});})[_0x44c2('0x1c')](function(_0x49d466){throw _0x49d466;});};exports['UnpauseUser']=function(_0x453150){return Promise[_0x44c2('0x3a')]()[_0x44c2('0x23')](function(){if(_0x453150['body'][_0x44c2('0x3b')]&&!utils[_0x44c2('0x3c')](_0x453150[_0x44c2('0x39')][_0x44c2('0x3b')])){throw new Error(util[_0x44c2('0x24')](_0x44c2('0x3d'),_0x453150[_0x44c2('0x39')][_0x44c2('0x3b')]));}return db[_0x44c2('0xe')][_0x44c2('0x3e')]({'where':_0x453150[_0x44c2('0x10')][_0x44c2('0x12')]||{},'attributes':['id','name','role',_0x44c2('0x3f'),'interface','online',_0x44c2('0x40'),_0x44c2('0x41'),'chatPause',_0x44c2('0x42'),'openchannelPause','smsPause',_0x44c2('0x43'),_0x44c2('0x44'),_0x44c2('0x45')]});})[_0x44c2('0x23')](function(_0x1d702e){if(!_0x1d702e){throw new Error(util[_0x44c2('0x24')]('User\x20with\x20id\x20%s\x20not\x20found',_0x453150[_0x44c2('0x26')]['id']));}return _0x1d702e[_0x44c2('0x46')](_0x453150[_0x44c2('0x39')][_0x44c2('0x3b')],_0x44c2('0x47'));})[_0x44c2('0x1c')](function(_0x4f9c7f){throw _0x4f9c7f;});};exports[_0x44c2('0x48')]=function(_0x7a4eef){var _0x4ff443=this;return new Promise(function(_0x586b49,_0x37f92e){var _0x5577a2;return db[_0x44c2('0xe')][_0x44c2('0x3e')]({'where':_0x7a4eef['options'][_0x44c2('0x12')]||{},'attributes':['id',_0x44c2('0x29')]})[_0x44c2('0x23')](function(_0x3af0ef){if(_0x3af0ef){_0x5577a2=_0x3af0ef;return db[_0x44c2('0x27')][_0x44c2('0x49')]({'where':{'membername':_0x5577a2[_0x44c2('0x29')]},'individualHooks':!![]});}})[_0x44c2('0x23')](function(){if(_0x5577a2){return db[_0x44c2('0x37')][_0x44c2('0xf')]({'where':{'membername':_0x5577a2[_0x44c2('0x29')],'exitAt':null}});}})[_0x44c2('0x23')](function(_0x5bce2f){if(_0x5577a2){if(_0x5bce2f&&_0x5bce2f[_0x44c2('0x2a')]){var _0x1a4fbe=[];_0x5bce2f[_0x44c2('0x2e')](function(_0x3f9bcf){_0x1a4fbe[_0x44c2('0x2f')](_0x3f9bcf[_0x44c2('0x28')]({'exitAt':moment()['format']('YYYY-MM-DD\x20HH:mm:ss')}));});return BPromise['all'](_0x1a4fbe);}}})['then'](function(){if(_0x5577a2){return _0x5577a2[_0x44c2('0x28')]({'online':![],'voicePause':![],'mailPause':![],'chatPause':![],'faxPause':![],'smsPause':![],'openchannelPause':![]});}})[_0x44c2('0x23')](function(_0x3d8ef0){_0x586b49(_0x3d8ef0);})[_0x44c2('0x1c')](function(_0x3810b8){_0x37f92e(_0x4ff443[_0x44c2('0x1d')](0x1f4,_0x3810b8['message']));});});};exports[_0x44c2('0x4a')]=function(_0x43675d){var _0x23e4c8=this;return new Promise(function(_0x8e2222,_0x4ef3d0){var _0x3c1f15;var _0x5477ae;var _0x1971a5;var _0x526ad8;return db['User'][_0x44c2('0x3e')]({'where':_0x43675d['options']['where']||{},'attributes':['id',_0x44c2('0x29'),_0x44c2('0x22'),'mobile','phone',_0x44c2('0x3f'),'loginInPause','interface']})[_0x44c2('0x23')](function(_0x4fb426){if(_0x4fb426){_0x3c1f15=_0x4fb426;_0x526ad8=_0x43675d[_0x44c2('0x39')][_0x44c2('0x31')]?_0x43675d[_0x44c2('0x39')]['interface']:util[_0x44c2('0x24')](_0x44c2('0x32'),_0x3c1f15['name']);return db[_0x44c2('0xe')][_0x44c2('0x4b')]({'where':{'role':'agent','online':!![],'id':{'$ne':_0x3c1f15['id']}}});}})[_0x44c2('0x23')](function(_0x4ada1e){if(_0x4ada1e){_0x1971a5=_0x4ada1e;return require(_0x44c2('0x4c'))[_0x44c2('0x4d')]();}})[_0x44c2('0x23')](function(_0x332789){if(_0x332789&&_0x332789[_0x44c2('0x4e')]&&_0x1971a5>=_0x332789[_0x44c2('0x4e')]){throw new Error(_0x44c2('0x4f'));}})[_0x44c2('0x23')](function(){if(_0x3c1f15){return db['UserVoiceQueueRt'][_0x44c2('0x49')]({'where':{'membername':_0x3c1f15[_0x44c2('0x29')]},'individualHooks':!![]});}})['then'](function(){if(_0x3c1f15){return _0x3c1f15['getVoiceQueues']({'raw':!![]});}})[_0x44c2('0x23')](function(_0x952836){if(_0x3c1f15){if(_0x952836){var _0x3d6489=[];_0x5477ae=_0x952836;if(_0x5477ae[_0x44c2('0x2a')]){for(var _0x4993db=0x0;_0x4993db<_0x5477ae[_0x44c2('0x2a')];_0x4993db++){_0x3d6489[_0x44c2('0x2f')](db[_0x44c2('0x27')][_0x44c2('0x50')]({'membername':_0x3c1f15[_0x44c2('0x29')],'UserId':_0x3c1f15['id'],'queue_name':_0x5477ae[_0x4993db]['name'],'VoiceQueueId':_0x5477ae[_0x4993db]['id'],'interface':_0x526ad8,'paused':_0x3c1f15[_0x44c2('0x51')]||![],'penalty':_0x5477ae[_0x4993db][_0x44c2('0x52')]||0x0}));}return BPromise['all'](_0x3d6489);}}}})['then'](function(){if(_0x3c1f15){return db[_0x44c2('0x37')][_0x44c2('0xf')]({'where':{'membername':_0x3c1f15[_0x44c2('0x29')],'exitAt':null}});}})[_0x44c2('0x23')](function(_0x3c4e44){if(_0x3c1f15){if(_0x3c4e44&&_0x3c4e44[_0x44c2('0x2a')]){var _0x2d9138=[];_0x3c4e44[_0x44c2('0x2e')](function(_0x13f842){_0x2d9138['push'](_0x13f842[_0x44c2('0x28')]({'exitAt':moment()[_0x44c2('0x24')](_0x44c2('0x2b'))}));});return BPromise[_0x44c2('0x53')](_0x2d9138);}}})[_0x44c2('0x23')](function(){if(_0x3c1f15){var _0x4abc97=[];var _0x1e7e6f=[];var _0x4d76b2=utils[_0x44c2('0x2d')]();var _0x12b722={'membername':_0x3c1f15[_0x44c2('0x29')],'interface':_0x526ad8,'enterAt':moment()[_0x44c2('0x24')](_0x44c2('0x2b')),'role':_0x3c1f15[_0x44c2('0x22')],'internal':_0x3c1f15[_0x44c2('0x3f')]};_0x4d76b2[_0x44c2('0x2e')](function(_0x148294){_0x4abc97[_0x44c2('0x2f')](_[_0x44c2('0x54')]({'channel':_0x148294,'type':_0x44c2('0x55'),'data1':_0x44c2('0x56'),'data2':_0x526ad8},_0x12b722));if(_0x3c1f15['loginInPause']){_0x1e7e6f[_0x44c2('0x2f')](_[_0x44c2('0x54')]({'channel':_0x148294,'type':_0x44c2('0x33'),'data1':_0x44c2('0x57')},_0x12b722));}});return db[_0x44c2('0x37')][_0x44c2('0x38')](_0x4abc97['concat'](_0x1e7e6f),{'individualHooks':!![]});}})[_0x44c2('0x23')](function(){if(_0x3c1f15){return _0x3c1f15[_0x44c2('0x28')]({'online':!![],'lastLoginAt':moment()[_0x44c2('0x24')]('YYYY-MM-DD\x20HH:mm:ss'),'voicePause':_0x3c1f15[_0x44c2('0x51')]||![],'mailPause':_0x3c1f15['loginInPause']||![],'chatPause':_0x3c1f15['loginInPause']||![],'faxPause':_0x3c1f15[_0x44c2('0x51')]||![],'smsPause':_0x3c1f15[_0x44c2('0x51')]||![],'openchannelPause':_0x3c1f15[_0x44c2('0x51')]||![],'pauseType':_0x3c1f15[_0x44c2('0x51')]?'LOGININPAUSE':null,'lastPauseAt':moment()[_0x44c2('0x24')](_0x44c2('0x2b')),'interface':_0x526ad8});}})[_0x44c2('0x23')](function(_0x58a3e2){_0x8e2222(_0x58a3e2);})[_0x44c2('0x1c')](function(_0x36280e){_0x4ef3d0(_0x23e4c8[_0x44c2('0x1d')](0x1f4,_0x36280e[_0x44c2('0x1e')]));});});};