Built motion from commit 3c2ce842.|2.6.31
[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 _0x33eb=['defaults','redis','localhost','./user.socket','register','User','findAll','options','where','limit','include','map','attributes','model','then','GetUser','debug','catch','error','message','find','raw','info','stringify','ShowUser','PauseUser','name','role','interface','params','UserVoiceQueueRt','update','MemberReport','PAUSE','length','format','YYYY-MM-DD\x20HH:mm:ss','getChannels','push','isNil','SIP/%s','body','type','DEFAULT\x20PAUSE','internal','uniqueid','bulkCreate','UnpauseUser','resolve','isValidChannel','channel','online','voicePause','mailPause','faxPause','openchannelPause','smsPause','whatsappPause','pauseType','lastPauseAt','User\x20with\x20id\x20%s\x20not\x20found','system','findOne','forEach','all','LoginUser','mobile','loginInPause','agent','../../config/license/util','getLicense','agents','Maximum\x20login\x20has\x20been\x20reached','destroy','getVoiceQueues','upsert','UserVoiceQueue.penalty','LOGIN','callysquare','merge','LOGININPAUSE','lodash','moment','bluebird','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment'];(function(_0x1e7479,_0x5428c7){var _0x734446=function(_0x1ffaf5){while(--_0x1ffaf5){_0x1e7479['push'](_0x1e7479['shift']());}};_0x734446(++_0x5428c7);}(_0x33eb,0x15f));var _0xb33e=function(_0x321bb2,_0x202794){_0x321bb2=_0x321bb2-0x0;var _0x9c12ed=_0x33eb[_0x321bb2];return _0x9c12ed;};'use strict';var _=require(_0xb33e('0x0'));var util=require('util');var moment=require(_0xb33e('0x1'));var BPromise=require(_0xb33e('0x2'));var Redis=require(_0xb33e('0x3'));var db=require(_0xb33e('0x4'))['db'];var utils=require(_0xb33e('0x5'));var logger=require(_0xb33e('0x6'))(_0xb33e('0x7'));var config=require(_0xb33e('0x8'));config['redis']=_[_0xb33e('0x9')](config[_0xb33e('0xa')],{'host':_0xb33e('0xb'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config['redis']));require(_0xb33e('0xc'))[_0xb33e('0xd')](socket);exports['GetUser']=function(_0x366909){var _0x2b3b39=this;return new Promise(function(_0x503689,_0x3be1fd){return db[_0xb33e('0xe')][_0xb33e('0xf')]({'raw':_0x366909[_0xb33e('0x10')]?_0x366909[_0xb33e('0x10')]['raw']===undefined?!![]:![]:!![],'where':_0x366909[_0xb33e('0x10')]?_0x366909['options'][_0xb33e('0x11')]||null:null,'attributes':_0x366909['options']?_0x366909['options']['attributes']||null:null,'limit':_0x366909[_0xb33e('0x10')]?_0x366909[_0xb33e('0x10')][_0xb33e('0x12')]||null:null,'include':_0x366909[_0xb33e('0x10')]?_0x366909[_0xb33e('0x10')][_0xb33e('0x13')]?_[_0xb33e('0x14')](_0x366909[_0xb33e('0x10')][_0xb33e('0x13')],function(_0x5719f5){return{'model':db[_0x5719f5['model']],'as':_0x5719f5['as'],'attributes':_0x5719f5[_0xb33e('0x15')],'include':_0x5719f5[_0xb33e('0x13')]?_[_0xb33e('0x14')](_0x5719f5[_0xb33e('0x13')],function(_0x4f0ecd){return{'model':db[_0x4f0ecd[_0xb33e('0x16')]],'as':_0x4f0ecd['as'],'attributes':_0x4f0ecd[_0xb33e('0x15')],'include':_0x4f0ecd[_0xb33e('0x13')]?_[_0xb33e('0x14')](_0x4f0ecd['include'],function(_0x939320){return{'model':db[_0x939320[_0xb33e('0x16')]],'as':_0x939320['as'],'attributes':_0x939320[_0xb33e('0x15')]};}):[]};}):[]};}):[]:[]})[_0xb33e('0x17')](function(_0x2c2287){logger['info'](_0xb33e('0x18'),_0x366909);logger[_0xb33e('0x19')](_0xb33e('0x18'),_0x366909,JSON['stringify'](_0x2c2287));_0x503689(_0x2c2287);})[_0xb33e('0x1a')](function(_0x25443d){logger[_0xb33e('0x1b')]('GetUser',_0x25443d[_0xb33e('0x1c')],_0x366909);_0x3be1fd(_0x2b3b39[_0xb33e('0x1b')](0x1f4,_0x25443d[_0xb33e('0x1c')]));});});};exports['ShowUser']=function(_0x23d28a){var _0x306817=this;return new Promise(function(_0x4ea72c,_0x197cc5){return db[_0xb33e('0xe')][_0xb33e('0x1d')]({'raw':_0x23d28a['options']?_0x23d28a['options'][_0xb33e('0x1e')]===undefined?!![]:![]:!![],'where':_0x23d28a[_0xb33e('0x10')]?_0x23d28a[_0xb33e('0x10')][_0xb33e('0x11')]||null:null,'attributes':_0x23d28a['options']?_0x23d28a[_0xb33e('0x10')][_0xb33e('0x15')]||null:null,'include':_0x23d28a[_0xb33e('0x10')]?_0x23d28a['options'][_0xb33e('0x13')]?_[_0xb33e('0x14')](_0x23d28a['options'][_0xb33e('0x13')],function(_0x59ad14){return{'model':db[_0x59ad14[_0xb33e('0x16')]],'as':_0x59ad14['as'],'attributes':_0x59ad14[_0xb33e('0x15')],'include':_0x59ad14[_0xb33e('0x13')]?_['map'](_0x59ad14[_0xb33e('0x13')],function(_0x2f757d){return{'model':db[_0x2f757d['model']],'as':_0x2f757d['as'],'attributes':_0x2f757d['attributes'],'include':_0x2f757d['include']?_[_0xb33e('0x14')](_0x2f757d[_0xb33e('0x13')],function(_0x47fec6){return{'model':db[_0x47fec6[_0xb33e('0x16')]],'as':_0x47fec6['as'],'attributes':_0x47fec6[_0xb33e('0x15')]};}):[]};}):[]};}):[]:[]})[_0xb33e('0x17')](function(_0x2be5fe){logger[_0xb33e('0x1f')]('ShowUser',_0x23d28a);logger[_0xb33e('0x19')]('ShowUser',_0x23d28a,JSON[_0xb33e('0x20')](_0x2be5fe));_0x4ea72c(_0x2be5fe);})[_0xb33e('0x1a')](function(_0x53fc4f){logger[_0xb33e('0x1b')](_0xb33e('0x21'),_0x53fc4f[_0xb33e('0x1c')],_0x23d28a);_0x197cc5(_0x306817['error'](0x1f4,_0x53fc4f['message']));});});};exports[_0xb33e('0x22')]=function(_0x39ab1a){var _0x9dda0e;return db['User']['find']({'where':_0x39ab1a[_0xb33e('0x10')][_0xb33e('0x11')]||{},'attributes':['id',_0xb33e('0x23'),_0xb33e('0x24'),'internal',_0xb33e('0x25')]})['then'](function(_0x5b7e73){if(!_0x5b7e73){throw new Error(util['format']('User\x20with\x20id\x20%s\x20not\x20found',_0x39ab1a[_0xb33e('0x26')]['id']));}_0x9dda0e=_0x5b7e73;return db[_0xb33e('0x27')][_0xb33e('0x28')]({'paused':0x1},{'where':{'UserId':_0x9dda0e['id']},'individualHooks':!![]});})['then'](function(){return db[_0xb33e('0x29')][_0xb33e('0xf')]({'where':{'membername':_0x9dda0e['name'],'type':_0xb33e('0x2a'),'exitAt':null}});})['then'](function(_0x1fa426){if(_0x1fa426&&_0x1fa426[_0xb33e('0x2b')]){var _0x411cff=moment()[_0xb33e('0x2c')](_0xb33e('0x2d'));for(var _0x38a05d=0x0,_0x286e67=_0x1fa426['length'];_0x38a05d<_0x286e67;_0x38a05d++){_0x1fa426[_0x38a05d]['updateAttributes']({'exitAt':_0x411cff});}}})[_0xb33e('0x17')](function(){var _0x1e6e2b=[];var _0xf52281=utils[_0xb33e('0x2e')]();_0xf52281['forEach'](function(_0x30ef0f){_0x1e6e2b[_0xb33e('0x2f')]({'channel':_0x30ef0f,'membername':_0x9dda0e[_0xb33e('0x23')],'interface':_[_0xb33e('0x30')](_0x9dda0e[_0xb33e('0x25')])?util[_0xb33e('0x2c')](_0xb33e('0x31'),_0x9dda0e['name']):_0x9dda0e['interface'],'type':'PAUSE','enterAt':moment()[_0xb33e('0x2c')](_0xb33e('0x2d')),'data1':_0x39ab1a[_0xb33e('0x32')][_0xb33e('0x33')]||_0xb33e('0x34'),'role':_0x9dda0e[_0xb33e('0x24')],'internal':_0x9dda0e[_0xb33e('0x35')],'uniqueid':_0x39ab1a[_0xb33e('0x32')][_0xb33e('0x36')]||null});});return db['MemberReport'][_0xb33e('0x37')](_0x1e6e2b,{'individualHooks':!![]});})[_0xb33e('0x17')](function(){return _0x9dda0e['update']({'voicePause':!![],'mailPause':!![],'chatPause':!![],'faxPause':!![],'smsPause':!![],'openchannelPause':!![],'whatsappPause':!![],'pauseType':_0x39ab1a[_0xb33e('0x32')][_0xb33e('0x33')]||'DEFAULT\x20PAUSE','lastPauseAt':moment()[_0xb33e('0x2c')](_0xb33e('0x2d'))});})[_0xb33e('0x1a')](function(_0x48683e){throw _0x48683e;});};exports[_0xb33e('0x38')]=function(_0x5c9c7c){return Promise[_0xb33e('0x39')]()['then'](function(){if(_0x5c9c7c[_0xb33e('0x32')]['channel']&&!utils[_0xb33e('0x3a')](_0x5c9c7c[_0xb33e('0x32')][_0xb33e('0x3b')])){throw new Error(util['format']('Channel\x20parameter\x20%s\x20is\x20invalid',_0x5c9c7c['body']['channel']));}return db[_0xb33e('0xe')]['findOne']({'where':_0x5c9c7c[_0xb33e('0x10')]['where']||{},'attributes':['id',_0xb33e('0x23'),_0xb33e('0x24'),_0xb33e('0x35'),_0xb33e('0x25'),_0xb33e('0x3c'),_0xb33e('0x3d'),_0xb33e('0x3e'),'chatPause',_0xb33e('0x3f'),_0xb33e('0x40'),_0xb33e('0x41'),_0xb33e('0x42'),_0xb33e('0x43'),_0xb33e('0x44')]});})[_0xb33e('0x17')](function(_0x397af2){if(!_0x397af2){throw new Error(util[_0xb33e('0x2c')](_0xb33e('0x45'),_0x5c9c7c[_0xb33e('0x26')]['id']));}return _0x397af2['unpause'](_0x5c9c7c[_0xb33e('0x32')][_0xb33e('0x3b')],_0xb33e('0x46'));})[_0xb33e('0x1a')](function(_0x4ab1ef){throw _0x4ab1ef;});};exports['LogoutUser']=function(_0x3a6fc7){var _0x7f4568=this;return new Promise(function(_0x4a25ac,_0x5f2ae0){var _0x5a3f9a;return db[_0xb33e('0xe')][_0xb33e('0x47')]({'where':_0x3a6fc7[_0xb33e('0x10')]['where']||{},'attributes':['id',_0xb33e('0x23')]})[_0xb33e('0x17')](function(_0x18b764){if(_0x18b764){_0x5a3f9a=_0x18b764;return db[_0xb33e('0x27')]['destroy']({'where':{'membername':_0x5a3f9a[_0xb33e('0x23')]},'individualHooks':!![]});}})[_0xb33e('0x17')](function(){if(_0x5a3f9a){return db[_0xb33e('0x29')]['findAll']({'where':{'membername':_0x5a3f9a[_0xb33e('0x23')],'exitAt':null}});}})[_0xb33e('0x17')](function(_0x2f9dde){if(_0x5a3f9a){if(_0x2f9dde&&_0x2f9dde[_0xb33e('0x2b')]){var _0x29ae0f=[];_0x2f9dde[_0xb33e('0x48')](function(_0x1858c3){_0x29ae0f['push'](_0x1858c3['update']({'exitAt':moment()[_0xb33e('0x2c')](_0xb33e('0x2d'))}));});return BPromise[_0xb33e('0x49')](_0x29ae0f);}}})[_0xb33e('0x17')](function(){if(_0x5a3f9a){return _0x5a3f9a[_0xb33e('0x28')]({'online':![],'voicePause':![],'mailPause':![],'chatPause':![],'faxPause':![],'smsPause':![],'openchannelPause':![]});}})[_0xb33e('0x17')](function(_0x551b5b){_0x4a25ac(_0x551b5b);})[_0xb33e('0x1a')](function(_0x5f4a13){_0x5f2ae0(_0x7f4568['error'](0x1f4,_0x5f4a13[_0xb33e('0x1c')]));});});};exports[_0xb33e('0x4a')]=function(_0x15c85f){var _0x21892f=this;return new Promise(function(_0x471437,_0x14b5ec){var _0x5144e4;var _0x3fffeb;var _0x34f4a4;var _0x37f8ee;return db[_0xb33e('0xe')][_0xb33e('0x47')]({'where':_0x15c85f[_0xb33e('0x10')][_0xb33e('0x11')]||{},'attributes':['id',_0xb33e('0x23'),'role',_0xb33e('0x4b'),'phone',_0xb33e('0x35'),_0xb33e('0x4c'),_0xb33e('0x25')]})[_0xb33e('0x17')](function(_0x3f2da6){if(_0x3f2da6){_0x5144e4=_0x3f2da6;_0x37f8ee=_0x15c85f[_0xb33e('0x32')][_0xb33e('0x25')]?_0x15c85f[_0xb33e('0x32')][_0xb33e('0x25')]:util['format'](_0xb33e('0x31'),_0x5144e4[_0xb33e('0x23')]);return db['User']['count']({'where':{'role':_0xb33e('0x4d'),'online':!![],'id':{'$ne':_0x5144e4['id']}}});}})[_0xb33e('0x17')](function(_0x49902c){if(_0x49902c){_0x34f4a4=_0x49902c;return require(_0xb33e('0x4e'))[_0xb33e('0x4f')]();}})[_0xb33e('0x17')](function(_0x445a41){if(_0x445a41&&_0x445a41[_0xb33e('0x50')]&&_0x34f4a4>=_0x445a41['agents']){throw new Error(_0xb33e('0x51'));}})[_0xb33e('0x17')](function(){if(_0x5144e4){return db['UserVoiceQueueRt'][_0xb33e('0x52')]({'where':{'membername':_0x5144e4[_0xb33e('0x23')]},'individualHooks':!![]});}})['then'](function(){if(_0x5144e4){return _0x5144e4[_0xb33e('0x53')]({'raw':!![]});}})[_0xb33e('0x17')](function(_0x32333b){if(_0x5144e4){if(_0x32333b){var _0x4b18b1=[];_0x3fffeb=_0x32333b;if(_0x3fffeb[_0xb33e('0x2b')]){for(var _0x1e7808=0x0;_0x1e7808<_0x3fffeb[_0xb33e('0x2b')];_0x1e7808++){_0x4b18b1['push'](db[_0xb33e('0x27')][_0xb33e('0x54')]({'membername':_0x5144e4[_0xb33e('0x23')],'UserId':_0x5144e4['id'],'queue_name':_0x3fffeb[_0x1e7808][_0xb33e('0x23')],'VoiceQueueId':_0x3fffeb[_0x1e7808]['id'],'interface':_0x37f8ee,'paused':_0x5144e4['loginInPause']||![],'penalty':_0x3fffeb[_0x1e7808][_0xb33e('0x55')]||0x0}));}return BPromise['all'](_0x4b18b1);}}}})[_0xb33e('0x17')](function(){if(_0x5144e4){return db[_0xb33e('0x29')]['findAll']({'where':{'membername':_0x5144e4['name'],'exitAt':null}});}})[_0xb33e('0x17')](function(_0x1d3b8a){if(_0x5144e4){if(_0x1d3b8a&&_0x1d3b8a[_0xb33e('0x2b')]){var _0x44b058=[];_0x1d3b8a[_0xb33e('0x48')](function(_0x2eb315){_0x44b058[_0xb33e('0x2f')](_0x2eb315[_0xb33e('0x28')]({'exitAt':moment()[_0xb33e('0x2c')](_0xb33e('0x2d'))}));});return BPromise[_0xb33e('0x49')](_0x44b058);}}})[_0xb33e('0x17')](function(){if(_0x5144e4){var _0x1e6ca5=[];var _0x17cc75=[];var _0x29a565=utils['getChannels']();var _0x534738={'membername':_0x5144e4['name'],'interface':_0x37f8ee,'enterAt':moment()[_0xb33e('0x2c')]('YYYY-MM-DD\x20HH:mm:ss'),'role':_0x5144e4[_0xb33e('0x24')],'internal':_0x5144e4[_0xb33e('0x35')]};_0x29a565[_0xb33e('0x48')](function(_0x2c25cb){_0x1e6ca5['push'](_['merge']({'channel':_0x2c25cb,'type':_0xb33e('0x56'),'data1':_0xb33e('0x57'),'data2':_0x37f8ee},_0x534738));if(_0x5144e4[_0xb33e('0x4c')]){_0x17cc75['push'](_[_0xb33e('0x58')]({'channel':_0x2c25cb,'type':'PAUSE','data1':_0xb33e('0x59')},_0x534738));}});return db[_0xb33e('0x29')]['bulkCreate'](_0x1e6ca5['concat'](_0x17cc75),{'individualHooks':!![]});}})[_0xb33e('0x17')](function(){if(_0x5144e4){return _0x5144e4['update']({'online':!![],'lastLoginAt':moment()[_0xb33e('0x2c')](_0xb33e('0x2d')),'voicePause':_0x5144e4['loginInPause']||![],'mailPause':_0x5144e4['loginInPause']||![],'chatPause':_0x5144e4[_0xb33e('0x4c')]||![],'faxPause':_0x5144e4[_0xb33e('0x4c')]||![],'smsPause':_0x5144e4[_0xb33e('0x4c')]||![],'openchannelPause':_0x5144e4[_0xb33e('0x4c')]||![],'pauseType':_0x5144e4[_0xb33e('0x4c')]?_0xb33e('0x59'):null,'lastPauseAt':moment()[_0xb33e('0x2c')](_0xb33e('0x2d')),'interface':_0x37f8ee});}})[_0xb33e('0x17')](function(_0xce067f){_0x471437(_0xce067f);})[_0xb33e('0x1a')](function(_0x91d0b9){_0x14b5ec(_0x21892f[_0xb33e('0x1b')](0x1f4,_0x91d0b9[_0xb33e('0x1c')]));});});};