5b6e0599a03e3e70b6d9139c905995565c7a7538
[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 _0xb1d7=['concat','lodash','util','bluebird','../../mysqldb','../../config/logger','rpc','redis','defaults','localhost','socket.io-emitter','./user.socket','User','findAll','options','where','attributes','map','include','model','info','GetUser','debug','error','ShowUser','find','raw','then','stringify','catch','message','name','role','internal','interface','format','User\x20with\x20id\x20%s\x20not\x20found','UserVoiceQueueRt','MemberReport','PAUSE','length','updateAttributes','getChannels','forEach','push','YYYY-MM-DD\x20HH:mm:ss','body','type','DEFAULT\x20PAUSE','uniqueid','bulkCreate','update','UnpauseUser','resolve','channel','isValidChannel','Channel\x20parameter\x20%s\x20is\x20invalid','findOne','online','voicePause','chatPause','faxPause','openchannelPause','whatsappPause','pauseType','lastPauseAt','params','system','LogoutUser','destroy','LoginUser','mobile','phone','loginInPause','count','../../config/license/util','agents','Maximum\x20login\x20has\x20been\x20reached','getVoiceQueues','upsert','all','merge','callysquare','LOGININPAUSE'];(function(_0x10b48a,_0x1a0a3f){var _0x2c4533=function(_0x5e4be6){while(--_0x5e4be6){_0x10b48a['push'](_0x10b48a['shift']());}};_0x2c4533(++_0x1a0a3f);}(_0xb1d7,0x1a5));var _0x7b1d=function(_0x195b7d,_0x2d10d6){_0x195b7d=_0x195b7d-0x0;var _0x1f2aef=_0xb1d7[_0x195b7d];return _0x1f2aef;};'use strict';var _=require(_0x7b1d('0x0'));var util=require(_0x7b1d('0x1'));var moment=require('moment');var BPromise=require(_0x7b1d('0x2'));var Redis=require('ioredis');var db=require(_0x7b1d('0x3'))['db'];var utils=require('../../config/utils');var logger=require(_0x7b1d('0x4'))(_0x7b1d('0x5'));var config=require('../../config/environment');config[_0x7b1d('0x6')]=_[_0x7b1d('0x7')](config[_0x7b1d('0x6')],{'host':_0x7b1d('0x8'),'port':0x18eb});var socket=require(_0x7b1d('0x9'))(new Redis(config[_0x7b1d('0x6')]));require(_0x7b1d('0xa'))['register'](socket);exports['GetUser']=function(_0x5bb4a2){var _0x3940c6=this;return new Promise(function(_0x57f06e,_0x108794){return db[_0x7b1d('0xb')][_0x7b1d('0xc')]({'raw':_0x5bb4a2[_0x7b1d('0xd')]?_0x5bb4a2[_0x7b1d('0xd')]['raw']===undefined?!![]:![]:!![],'where':_0x5bb4a2['options']?_0x5bb4a2['options'][_0x7b1d('0xe')]||null:null,'attributes':_0x5bb4a2[_0x7b1d('0xd')]?_0x5bb4a2[_0x7b1d('0xd')][_0x7b1d('0xf')]||null:null,'limit':_0x5bb4a2['options']?_0x5bb4a2[_0x7b1d('0xd')]['limit']||null:null,'include':_0x5bb4a2['options']?_0x5bb4a2[_0x7b1d('0xd')]['include']?_[_0x7b1d('0x10')](_0x5bb4a2[_0x7b1d('0xd')]['include'],function(_0x520338){return{'model':db[_0x520338['model']],'as':_0x520338['as'],'attributes':_0x520338[_0x7b1d('0xf')],'include':_0x520338[_0x7b1d('0x11')]?_['map'](_0x520338[_0x7b1d('0x11')],function(_0x3bcae4){return{'model':db[_0x3bcae4[_0x7b1d('0x12')]],'as':_0x3bcae4['as'],'attributes':_0x3bcae4[_0x7b1d('0xf')],'include':_0x3bcae4['include']?_[_0x7b1d('0x10')](_0x3bcae4[_0x7b1d('0x11')],function(_0x34be16){return{'model':db[_0x34be16['model']],'as':_0x34be16['as'],'attributes':_0x34be16[_0x7b1d('0xf')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x37036c){logger[_0x7b1d('0x13')](_0x7b1d('0x14'),_0x5bb4a2);logger[_0x7b1d('0x15')]('GetUser',_0x5bb4a2,JSON['stringify'](_0x37036c));_0x57f06e(_0x37036c);})['catch'](function(_0x271d82){logger[_0x7b1d('0x16')](_0x7b1d('0x14'),_0x271d82['message'],_0x5bb4a2);_0x108794(_0x3940c6['error'](0x1f4,_0x271d82['message']));});});};exports[_0x7b1d('0x17')]=function(_0x1cc270){var _0x621bcb=this;return new Promise(function(_0x25fbb7,_0x5aa412){return db[_0x7b1d('0xb')][_0x7b1d('0x18')]({'raw':_0x1cc270[_0x7b1d('0xd')]?_0x1cc270['options'][_0x7b1d('0x19')]===undefined?!![]:![]:!![],'where':_0x1cc270[_0x7b1d('0xd')]?_0x1cc270[_0x7b1d('0xd')][_0x7b1d('0xe')]||null:null,'attributes':_0x1cc270[_0x7b1d('0xd')]?_0x1cc270['options']['attributes']||null:null,'include':_0x1cc270['options']?_0x1cc270[_0x7b1d('0xd')][_0x7b1d('0x11')]?_[_0x7b1d('0x10')](_0x1cc270['options'][_0x7b1d('0x11')],function(_0x23b6e0){return{'model':db[_0x23b6e0[_0x7b1d('0x12')]],'as':_0x23b6e0['as'],'attributes':_0x23b6e0[_0x7b1d('0xf')],'include':_0x23b6e0[_0x7b1d('0x11')]?_[_0x7b1d('0x10')](_0x23b6e0[_0x7b1d('0x11')],function(_0x14a103){return{'model':db[_0x14a103[_0x7b1d('0x12')]],'as':_0x14a103['as'],'attributes':_0x14a103[_0x7b1d('0xf')],'include':_0x14a103[_0x7b1d('0x11')]?_['map'](_0x14a103['include'],function(_0x37e92a){return{'model':db[_0x37e92a['model']],'as':_0x37e92a['as'],'attributes':_0x37e92a[_0x7b1d('0xf')]};}):[]};}):[]};}):[]:[]})[_0x7b1d('0x1a')](function(_0x23980c){logger[_0x7b1d('0x13')]('ShowUser',_0x1cc270);logger['debug'](_0x7b1d('0x17'),_0x1cc270,JSON[_0x7b1d('0x1b')](_0x23980c));_0x25fbb7(_0x23980c);})[_0x7b1d('0x1c')](function(_0x475745){logger[_0x7b1d('0x16')](_0x7b1d('0x17'),_0x475745['message'],_0x1cc270);_0x5aa412(_0x621bcb[_0x7b1d('0x16')](0x1f4,_0x475745[_0x7b1d('0x1d')]));});});};exports['PauseUser']=function(_0x26be49){var _0x200185;return db[_0x7b1d('0xb')][_0x7b1d('0x18')]({'where':_0x26be49[_0x7b1d('0xd')][_0x7b1d('0xe')]||{},'attributes':['id',_0x7b1d('0x1e'),_0x7b1d('0x1f'),_0x7b1d('0x20'),_0x7b1d('0x21')]})[_0x7b1d('0x1a')](function(_0xdf3825){if(!_0xdf3825){throw new Error(util[_0x7b1d('0x22')](_0x7b1d('0x23'),_0x26be49['params']['id']));}_0x200185=_0xdf3825;return db[_0x7b1d('0x24')]['update']({'paused':0x1},{'where':{'UserId':_0x200185['id']},'individualHooks':!![]});})[_0x7b1d('0x1a')](function(){return db[_0x7b1d('0x25')][_0x7b1d('0xc')]({'where':{'membername':_0x200185[_0x7b1d('0x1e')],'type':_0x7b1d('0x26'),'exitAt':null}});})[_0x7b1d('0x1a')](function(_0x13348a){if(_0x13348a&&_0x13348a[_0x7b1d('0x27')]){var _0x389665=moment()[_0x7b1d('0x22')]('YYYY-MM-DD\x20HH:mm:ss');for(var _0x32b33c=0x0,_0x26c394=_0x13348a[_0x7b1d('0x27')];_0x32b33c<_0x26c394;_0x32b33c++){_0x13348a[_0x32b33c][_0x7b1d('0x28')]({'exitAt':_0x389665});}}})[_0x7b1d('0x1a')](function(){var _0x12b431=[];var _0x3df51d=utils[_0x7b1d('0x29')]();_0x3df51d[_0x7b1d('0x2a')](function(_0x59a99e){_0x12b431[_0x7b1d('0x2b')]({'channel':_0x59a99e,'membername':_0x200185[_0x7b1d('0x1e')],'interface':_['isNil'](_0x200185['interface'])?util[_0x7b1d('0x22')]('SIP/%s',_0x200185[_0x7b1d('0x1e')]):_0x200185[_0x7b1d('0x21')],'type':_0x7b1d('0x26'),'enterAt':moment()[_0x7b1d('0x22')](_0x7b1d('0x2c')),'data1':_0x26be49[_0x7b1d('0x2d')][_0x7b1d('0x2e')]||_0x7b1d('0x2f'),'role':_0x200185[_0x7b1d('0x1f')],'internal':_0x200185[_0x7b1d('0x20')],'uniqueid':_0x26be49[_0x7b1d('0x2d')][_0x7b1d('0x30')]||null});});return db[_0x7b1d('0x25')][_0x7b1d('0x31')](_0x12b431,{'individualHooks':!![]});})['then'](function(){return _0x200185[_0x7b1d('0x32')]({'voicePause':!![],'mailPause':!![],'chatPause':!![],'faxPause':!![],'smsPause':!![],'openchannelPause':!![],'whatsappPause':!![],'pauseType':_0x26be49['body'][_0x7b1d('0x2e')]||_0x7b1d('0x2f'),'lastPauseAt':moment()['format'](_0x7b1d('0x2c'))});})['catch'](function(_0x285327){throw _0x285327;});};exports[_0x7b1d('0x33')]=function(_0x594990){return Promise[_0x7b1d('0x34')]()[_0x7b1d('0x1a')](function(){if(_0x594990[_0x7b1d('0x2d')][_0x7b1d('0x35')]&&!utils[_0x7b1d('0x36')](_0x594990['body'][_0x7b1d('0x35')])){throw new Error(util['format'](_0x7b1d('0x37'),_0x594990['body'][_0x7b1d('0x35')]));}return db[_0x7b1d('0xb')][_0x7b1d('0x38')]({'where':_0x594990['options'][_0x7b1d('0xe')]||{},'attributes':['id','name',_0x7b1d('0x1f'),'internal','interface',_0x7b1d('0x39'),_0x7b1d('0x3a'),'mailPause',_0x7b1d('0x3b'),_0x7b1d('0x3c'),_0x7b1d('0x3d'),'smsPause',_0x7b1d('0x3e'),_0x7b1d('0x3f'),_0x7b1d('0x40')]});})['then'](function(_0x30ca4){if(!_0x30ca4){throw new Error(util[_0x7b1d('0x22')]('User\x20with\x20id\x20%s\x20not\x20found',_0x594990[_0x7b1d('0x41')]['id']));}return _0x30ca4['unpause'](_0x594990['body'][_0x7b1d('0x35')],_0x7b1d('0x42'));})[_0x7b1d('0x1c')](function(_0xd05a2f){throw _0xd05a2f;});};exports[_0x7b1d('0x43')]=function(_0x3dc63b){var _0x212bbe=this;return new Promise(function(_0x223421,_0xf49e4f){var _0x28f49a;return db['User']['findOne']({'where':_0x3dc63b[_0x7b1d('0xd')]['where']||{},'attributes':['id',_0x7b1d('0x1e')]})[_0x7b1d('0x1a')](function(_0x4f23dd){if(_0x4f23dd){_0x28f49a=_0x4f23dd;return db[_0x7b1d('0x24')][_0x7b1d('0x44')]({'where':{'membername':_0x28f49a[_0x7b1d('0x1e')]},'individualHooks':!![]});}})[_0x7b1d('0x1a')](function(){if(_0x28f49a){return db[_0x7b1d('0x25')][_0x7b1d('0xc')]({'where':{'membername':_0x28f49a['name'],'exitAt':null}});}})[_0x7b1d('0x1a')](function(_0x3c3adc){if(_0x28f49a){if(_0x3c3adc&&_0x3c3adc[_0x7b1d('0x27')]){var _0xfb85d3=[];_0x3c3adc[_0x7b1d('0x2a')](function(_0x46895c){_0xfb85d3[_0x7b1d('0x2b')](_0x46895c[_0x7b1d('0x32')]({'exitAt':moment()[_0x7b1d('0x22')]('YYYY-MM-DD\x20HH:mm:ss')}));});return BPromise['all'](_0xfb85d3);}}})['then'](function(){if(_0x28f49a){return _0x28f49a[_0x7b1d('0x32')]({'online':![],'voicePause':![],'mailPause':![],'chatPause':![],'faxPause':![],'smsPause':![],'openchannelPause':![]});}})[_0x7b1d('0x1a')](function(_0x363b77){_0x223421(_0x363b77);})[_0x7b1d('0x1c')](function(_0x52a465){_0xf49e4f(_0x212bbe[_0x7b1d('0x16')](0x1f4,_0x52a465[_0x7b1d('0x1d')]));});});};exports[_0x7b1d('0x45')]=function(_0x3ebc86){var _0x1cc9b0=this;return new Promise(function(_0x5b685b,_0x1980e5){var _0x54ce90;var _0x3a8714;var _0x3c3615;var _0x15f2ac;return db[_0x7b1d('0xb')][_0x7b1d('0x38')]({'where':_0x3ebc86[_0x7b1d('0xd')][_0x7b1d('0xe')]||{},'attributes':['id',_0x7b1d('0x1e'),_0x7b1d('0x1f'),_0x7b1d('0x46'),_0x7b1d('0x47'),_0x7b1d('0x20'),_0x7b1d('0x48'),'interface']})[_0x7b1d('0x1a')](function(_0x495061){if(_0x495061){_0x54ce90=_0x495061;_0x15f2ac=_0x3ebc86['body']['interface']?_0x3ebc86[_0x7b1d('0x2d')]['interface']:util[_0x7b1d('0x22')]('SIP/%s',_0x54ce90['name']);return db[_0x7b1d('0xb')][_0x7b1d('0x49')]({'where':{'role':'agent','online':!![],'id':{'$ne':_0x54ce90['id']}}});}})['then'](function(_0x451da8){if(_0x451da8){_0x3c3615=_0x451da8;return require(_0x7b1d('0x4a'))['getLicense']();}})[_0x7b1d('0x1a')](function(_0x912613){if(_0x912613&&_0x912613[_0x7b1d('0x4b')]&&_0x3c3615>=_0x912613[_0x7b1d('0x4b')]){throw new Error(_0x7b1d('0x4c'));}})['then'](function(){if(_0x54ce90){return db[_0x7b1d('0x24')]['destroy']({'where':{'membername':_0x54ce90[_0x7b1d('0x1e')]},'individualHooks':!![]});}})['then'](function(){if(_0x54ce90){return _0x54ce90[_0x7b1d('0x4d')]({'raw':!![]});}})['then'](function(_0x124d2f){if(_0x54ce90){if(_0x124d2f){var _0xc9c8da=[];_0x3a8714=_0x124d2f;if(_0x3a8714[_0x7b1d('0x27')]){for(var _0x3c37f4=0x0;_0x3c37f4<_0x3a8714[_0x7b1d('0x27')];_0x3c37f4++){_0xc9c8da[_0x7b1d('0x2b')](db[_0x7b1d('0x24')][_0x7b1d('0x4e')]({'membername':_0x54ce90[_0x7b1d('0x1e')],'UserId':_0x54ce90['id'],'queue_name':_0x3a8714[_0x3c37f4][_0x7b1d('0x1e')],'VoiceQueueId':_0x3a8714[_0x3c37f4]['id'],'interface':_0x15f2ac,'paused':_0x54ce90[_0x7b1d('0x48')]||![],'penalty':_0x3a8714[_0x3c37f4]['UserVoiceQueue.penalty']||0x0}));}return BPromise[_0x7b1d('0x4f')](_0xc9c8da);}}}})[_0x7b1d('0x1a')](function(){if(_0x54ce90){return db[_0x7b1d('0x25')][_0x7b1d('0xc')]({'where':{'membername':_0x54ce90[_0x7b1d('0x1e')],'exitAt':null}});}})[_0x7b1d('0x1a')](function(_0x44e0a3){if(_0x54ce90){if(_0x44e0a3&&_0x44e0a3['length']){var _0x2fdfff=[];_0x44e0a3[_0x7b1d('0x2a')](function(_0xea1636){_0x2fdfff[_0x7b1d('0x2b')](_0xea1636[_0x7b1d('0x32')]({'exitAt':moment()[_0x7b1d('0x22')](_0x7b1d('0x2c'))}));});return BPromise[_0x7b1d('0x4f')](_0x2fdfff);}}})[_0x7b1d('0x1a')](function(){if(_0x54ce90){var _0x257a38=[];var _0x13b4ee=[];var _0x5570c4=utils[_0x7b1d('0x29')]();var _0x15c92c={'membername':_0x54ce90[_0x7b1d('0x1e')],'interface':_0x15f2ac,'enterAt':moment()[_0x7b1d('0x22')](_0x7b1d('0x2c')),'role':_0x54ce90[_0x7b1d('0x1f')],'internal':_0x54ce90[_0x7b1d('0x20')]};_0x5570c4[_0x7b1d('0x2a')](function(_0x326b4b){_0x257a38[_0x7b1d('0x2b')](_[_0x7b1d('0x50')]({'channel':_0x326b4b,'type':'LOGIN','data1':_0x7b1d('0x51'),'data2':_0x15f2ac},_0x15c92c));if(_0x54ce90[_0x7b1d('0x48')]){_0x13b4ee['push'](_[_0x7b1d('0x50')]({'channel':_0x326b4b,'type':_0x7b1d('0x26'),'data1':_0x7b1d('0x52')},_0x15c92c));}});return db[_0x7b1d('0x25')][_0x7b1d('0x31')](_0x257a38[_0x7b1d('0x53')](_0x13b4ee),{'individualHooks':!![]});}})[_0x7b1d('0x1a')](function(){if(_0x54ce90){return _0x54ce90['update']({'online':!![],'lastLoginAt':moment()['format'](_0x7b1d('0x2c')),'voicePause':_0x54ce90[_0x7b1d('0x48')]||![],'mailPause':_0x54ce90[_0x7b1d('0x48')]||![],'chatPause':_0x54ce90[_0x7b1d('0x48')]||![],'faxPause':_0x54ce90[_0x7b1d('0x48')]||![],'smsPause':_0x54ce90['loginInPause']||![],'openchannelPause':_0x54ce90[_0x7b1d('0x48')]||![],'pauseType':_0x54ce90[_0x7b1d('0x48')]?_0x7b1d('0x52'):null,'lastPauseAt':moment()[_0x7b1d('0x22')](_0x7b1d('0x2c')),'interface':_0x15f2ac});}})[_0x7b1d('0x1a')](function(_0x213734){_0x5b685b(_0x213734);})[_0x7b1d('0x1c')](function(_0x2fc249){_0x1980e5(_0x1cc9b0[_0x7b1d('0x16')](0x1f4,_0x2fc249[_0x7b1d('0x1d')]));});});};