Built motion from commit c738b9ac.|2.6.25
[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 _0x01c5=['map','attributes','model','then','info','stringify','catch','error','message','ShowUser','find','raw','debug','PauseUser','where','name','role','interface','format','User\x20with\x20id\x20%s\x20not\x20found','UserVoiceQueueRt','update','MemberReport','PAUSE','YYYY-MM-DD\x20HH:mm:ss','length','updateAttributes','forEach','push','isNil','SIP/%s','body','type','uniqueid','bulkCreate','DEFAULT\x20PAUSE','UnpauseUser','channel','isValidChannel','Channel\x20parameter\x20%s\x20is\x20invalid','User','findOne','online','chatPause','faxPause','openchannelPause','smsPause','whatsappPause','params','unpause','system','LogoutUser','LoginUser','phone','internal','count','agent','../../config/license/util','getLicense','agents','Maximum\x20login\x20has\x20been\x20reached','destroy','getVoiceQueues','upsert','loginInPause','all','getChannels','merge','LOGIN','callysquare','LOGININPAUSE','concat','lodash','util','bluebird','ioredis','redis','defaults','localhost','./user.socket','GetUser','findAll','options','include'];(function(_0x26eed3,_0x239482){var _0x109a1c=function(_0x4151e4){while(--_0x4151e4){_0x26eed3['push'](_0x26eed3['shift']());}};_0x109a1c(++_0x239482);}(_0x01c5,0x1ec));var _0x501c=function(_0x1b1389,_0x213f8d){_0x1b1389=_0x1b1389-0x0;var _0x4f5e73=_0x01c5[_0x1b1389];return _0x4f5e73;};'use strict';var _=require(_0x501c('0x0'));var util=require(_0x501c('0x1'));var moment=require('moment');var BPromise=require(_0x501c('0x2'));var Redis=require(_0x501c('0x3'));var db=require('../../mysqldb')['db'];var utils=require('../../config/utils');var logger=require('../../config/logger')('rpc');var config=require('../../config/environment');config[_0x501c('0x4')]=_[_0x501c('0x5')](config[_0x501c('0x4')],{'host':_0x501c('0x6'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config['redis']));require(_0x501c('0x7'))['register'](socket);exports[_0x501c('0x8')]=function(_0x557841){var _0x492376=this;return new Promise(function(_0x19aa71,_0x27b063){return db['User'][_0x501c('0x9')]({'raw':_0x557841[_0x501c('0xa')]?_0x557841[_0x501c('0xa')]['raw']===undefined?!![]:![]:!![],'where':_0x557841['options']?_0x557841[_0x501c('0xa')]['where']||null:null,'attributes':_0x557841['options']?_0x557841[_0x501c('0xa')]['attributes']||null:null,'limit':_0x557841[_0x501c('0xa')]?_0x557841[_0x501c('0xa')]['limit']||null:null,'include':_0x557841['options']?_0x557841[_0x501c('0xa')][_0x501c('0xb')]?_[_0x501c('0xc')](_0x557841[_0x501c('0xa')]['include'],function(_0x58dab1){return{'model':db[_0x58dab1['model']],'as':_0x58dab1['as'],'attributes':_0x58dab1[_0x501c('0xd')],'include':_0x58dab1['include']?_[_0x501c('0xc')](_0x58dab1[_0x501c('0xb')],function(_0x34b667){return{'model':db[_0x34b667[_0x501c('0xe')]],'as':_0x34b667['as'],'attributes':_0x34b667['attributes'],'include':_0x34b667[_0x501c('0xb')]?_[_0x501c('0xc')](_0x34b667['include'],function(_0x2cab80){return{'model':db[_0x2cab80[_0x501c('0xe')]],'as':_0x2cab80['as'],'attributes':_0x2cab80[_0x501c('0xd')]};}):[]};}):[]};}):[]:[]})[_0x501c('0xf')](function(_0x397002){logger[_0x501c('0x10')](_0x501c('0x8'),_0x557841);logger['debug']('GetUser',_0x557841,JSON[_0x501c('0x11')](_0x397002));_0x19aa71(_0x397002);})[_0x501c('0x12')](function(_0x293ddb){logger[_0x501c('0x13')](_0x501c('0x8'),_0x293ddb[_0x501c('0x14')],_0x557841);_0x27b063(_0x492376['error'](0x1f4,_0x293ddb[_0x501c('0x14')]));});});};exports[_0x501c('0x15')]=function(_0xfa3ce){var _0xd5e52f=this;return new Promise(function(_0x5c01cf,_0x8239b0){return db['User'][_0x501c('0x16')]({'raw':_0xfa3ce[_0x501c('0xa')]?_0xfa3ce[_0x501c('0xa')][_0x501c('0x17')]===undefined?!![]:![]:!![],'where':_0xfa3ce[_0x501c('0xa')]?_0xfa3ce[_0x501c('0xa')]['where']||null:null,'attributes':_0xfa3ce[_0x501c('0xa')]?_0xfa3ce[_0x501c('0xa')]['attributes']||null:null,'include':_0xfa3ce[_0x501c('0xa')]?_0xfa3ce[_0x501c('0xa')]['include']?_['map'](_0xfa3ce[_0x501c('0xa')]['include'],function(_0x5c6be4){return{'model':db[_0x5c6be4[_0x501c('0xe')]],'as':_0x5c6be4['as'],'attributes':_0x5c6be4[_0x501c('0xd')],'include':_0x5c6be4['include']?_['map'](_0x5c6be4[_0x501c('0xb')],function(_0x5c17b3){return{'model':db[_0x5c17b3[_0x501c('0xe')]],'as':_0x5c17b3['as'],'attributes':_0x5c17b3['attributes'],'include':_0x5c17b3[_0x501c('0xb')]?_[_0x501c('0xc')](_0x5c17b3[_0x501c('0xb')],function(_0x465b18){return{'model':db[_0x465b18[_0x501c('0xe')]],'as':_0x465b18['as'],'attributes':_0x465b18['attributes']};}):[]};}):[]};}):[]:[]})[_0x501c('0xf')](function(_0x483f9a){logger[_0x501c('0x10')]('ShowUser',_0xfa3ce);logger[_0x501c('0x18')]('ShowUser',_0xfa3ce,JSON['stringify'](_0x483f9a));_0x5c01cf(_0x483f9a);})['catch'](function(_0x91ea1){logger[_0x501c('0x13')]('ShowUser',_0x91ea1['message'],_0xfa3ce);_0x8239b0(_0xd5e52f[_0x501c('0x13')](0x1f4,_0x91ea1[_0x501c('0x14')]));});});};exports[_0x501c('0x19')]=function(_0x3dc5c1){var _0x41edda;return db['User'][_0x501c('0x16')]({'where':_0x3dc5c1[_0x501c('0xa')][_0x501c('0x1a')]||{},'attributes':['id',_0x501c('0x1b'),_0x501c('0x1c'),'internal',_0x501c('0x1d')]})[_0x501c('0xf')](function(_0x58c9cd){if(!_0x58c9cd){throw new Error(util[_0x501c('0x1e')](_0x501c('0x1f'),_0x3dc5c1['params']['id']));}_0x41edda=_0x58c9cd;return db[_0x501c('0x20')][_0x501c('0x21')]({'paused':0x1},{'where':{'UserId':_0x41edda['id']},'individualHooks':!![]});})[_0x501c('0xf')](function(){return db[_0x501c('0x22')][_0x501c('0x9')]({'where':{'membername':_0x41edda[_0x501c('0x1b')],'type':_0x501c('0x23'),'exitAt':null}});})[_0x501c('0xf')](function(_0x355ca6){if(_0x355ca6&&_0x355ca6['length']){var _0x2b663a=moment()[_0x501c('0x1e')](_0x501c('0x24'));for(var _0x4be546=0x0,_0x10fdfb=_0x355ca6[_0x501c('0x25')];_0x4be546<_0x10fdfb;_0x4be546++){_0x355ca6[_0x4be546][_0x501c('0x26')]({'exitAt':_0x2b663a});}}})['then'](function(){var _0x405120=[];var _0x15cd06=utils['getChannels']();_0x15cd06[_0x501c('0x27')](function(_0x3db54a){_0x405120[_0x501c('0x28')]({'channel':_0x3db54a,'membername':_0x41edda[_0x501c('0x1b')],'interface':_[_0x501c('0x29')](_0x41edda[_0x501c('0x1d')])?util[_0x501c('0x1e')](_0x501c('0x2a'),_0x41edda[_0x501c('0x1b')]):_0x41edda['interface'],'type':_0x501c('0x23'),'enterAt':moment()['format'](_0x501c('0x24')),'data1':_0x3dc5c1[_0x501c('0x2b')][_0x501c('0x2c')]||'DEFAULT\x20PAUSE','role':_0x41edda['role'],'internal':_0x41edda['internal'],'uniqueid':_0x3dc5c1[_0x501c('0x2b')][_0x501c('0x2d')]||null});});return db[_0x501c('0x22')][_0x501c('0x2e')](_0x405120,{'individualHooks':!![]});})[_0x501c('0xf')](function(){return _0x41edda['update']({'voicePause':!![],'mailPause':!![],'chatPause':!![],'faxPause':!![],'smsPause':!![],'openchannelPause':!![],'whatsappPause':!![],'pauseType':_0x3dc5c1[_0x501c('0x2b')][_0x501c('0x2c')]||_0x501c('0x2f'),'lastPauseAt':moment()['format'](_0x501c('0x24'))});})[_0x501c('0x12')](function(_0x8e7830){throw _0x8e7830;});};exports[_0x501c('0x30')]=function(_0x47cf79){return Promise['resolve']()[_0x501c('0xf')](function(){if(_0x47cf79[_0x501c('0x2b')][_0x501c('0x31')]&&!utils[_0x501c('0x32')](_0x47cf79[_0x501c('0x2b')]['channel'])){throw new Error(util[_0x501c('0x1e')](_0x501c('0x33'),_0x47cf79[_0x501c('0x2b')][_0x501c('0x31')]));}return db[_0x501c('0x34')][_0x501c('0x35')]({'where':_0x47cf79[_0x501c('0xa')]['where']||{},'attributes':['id','name','role','internal',_0x501c('0x1d'),_0x501c('0x36'),'voicePause','mailPause',_0x501c('0x37'),_0x501c('0x38'),_0x501c('0x39'),_0x501c('0x3a'),_0x501c('0x3b'),'pauseType','lastPauseAt']});})[_0x501c('0xf')](function(_0x4357be){if(!_0x4357be){throw new Error(util[_0x501c('0x1e')](_0x501c('0x1f'),_0x47cf79[_0x501c('0x3c')]['id']));}return _0x4357be[_0x501c('0x3d')](_0x47cf79[_0x501c('0x2b')]['channel'],_0x501c('0x3e'));})[_0x501c('0x12')](function(_0x57c21c){throw _0x57c21c;});};exports[_0x501c('0x3f')]=function(_0x250183){var _0x4affc6=this;return new Promise(function(_0x550529,_0x44757c){var _0x306b22;return db[_0x501c('0x34')][_0x501c('0x35')]({'where':_0x250183[_0x501c('0xa')][_0x501c('0x1a')]||{},'attributes':['id',_0x501c('0x1b')]})['then'](function(_0x2ea83e){if(_0x2ea83e){_0x306b22=_0x2ea83e;return db['UserVoiceQueueRt']['destroy']({'where':{'membername':_0x306b22[_0x501c('0x1b')]},'individualHooks':!![]});}})['then'](function(){if(_0x306b22){return db[_0x501c('0x22')][_0x501c('0x9')]({'where':{'membername':_0x306b22[_0x501c('0x1b')],'exitAt':null}});}})['then'](function(_0x266b99){if(_0x306b22){if(_0x266b99&&_0x266b99[_0x501c('0x25')]){var _0x3c06ff=[];_0x266b99[_0x501c('0x27')](function(_0x53a45a){_0x3c06ff[_0x501c('0x28')](_0x53a45a[_0x501c('0x21')]({'exitAt':moment()[_0x501c('0x1e')](_0x501c('0x24'))}));});return BPromise['all'](_0x3c06ff);}}})[_0x501c('0xf')](function(){if(_0x306b22){return _0x306b22[_0x501c('0x21')]({'online':![],'voicePause':![],'mailPause':![],'chatPause':![],'faxPause':![],'smsPause':![],'openchannelPause':![]});}})[_0x501c('0xf')](function(_0x20d8fa){_0x550529(_0x20d8fa);})[_0x501c('0x12')](function(_0x22a7f5){_0x44757c(_0x4affc6['error'](0x1f4,_0x22a7f5[_0x501c('0x14')]));});});};exports[_0x501c('0x40')]=function(_0x46e86c){var _0x109ea3=this;return new Promise(function(_0x3db6ff,_0x299e5a){var _0x7367aa;var _0x50c290;var _0xfa165d;var _0x3a4ec9;return db[_0x501c('0x34')][_0x501c('0x35')]({'where':_0x46e86c[_0x501c('0xa')]['where']||{},'attributes':['id',_0x501c('0x1b'),'role','mobile',_0x501c('0x41'),_0x501c('0x42'),'loginInPause','interface']})[_0x501c('0xf')](function(_0x1e9a28){if(_0x1e9a28){_0x7367aa=_0x1e9a28;_0x3a4ec9=_0x46e86c[_0x501c('0x2b')][_0x501c('0x1d')]?_0x46e86c[_0x501c('0x2b')][_0x501c('0x1d')]:util[_0x501c('0x1e')](_0x501c('0x2a'),_0x7367aa[_0x501c('0x1b')]);return db['User'][_0x501c('0x43')]({'where':{'role':_0x501c('0x44'),'online':!![],'id':{'$ne':_0x7367aa['id']}}});}})[_0x501c('0xf')](function(_0x2ad7e3){if(_0x2ad7e3){_0xfa165d=_0x2ad7e3;return require(_0x501c('0x45'))[_0x501c('0x46')]();}})['then'](function(_0x2dbeae){if(_0x2dbeae&&_0x2dbeae[_0x501c('0x47')]&&_0xfa165d>=_0x2dbeae[_0x501c('0x47')]){throw new Error(_0x501c('0x48'));}})[_0x501c('0xf')](function(){if(_0x7367aa){return db[_0x501c('0x20')][_0x501c('0x49')]({'where':{'membername':_0x7367aa[_0x501c('0x1b')]},'individualHooks':!![]});}})['then'](function(){if(_0x7367aa){return _0x7367aa[_0x501c('0x4a')]({'raw':!![]});}})[_0x501c('0xf')](function(_0xd20185){if(_0x7367aa){if(_0xd20185){var _0x247347=[];_0x50c290=_0xd20185;if(_0x50c290[_0x501c('0x25')]){for(var _0x15a1da=0x0;_0x15a1da<_0x50c290[_0x501c('0x25')];_0x15a1da++){_0x247347[_0x501c('0x28')](db[_0x501c('0x20')][_0x501c('0x4b')]({'membername':_0x7367aa[_0x501c('0x1b')],'UserId':_0x7367aa['id'],'queue_name':_0x50c290[_0x15a1da][_0x501c('0x1b')],'VoiceQueueId':_0x50c290[_0x15a1da]['id'],'interface':_0x3a4ec9,'paused':_0x7367aa[_0x501c('0x4c')]||![],'penalty':_0x50c290[_0x15a1da]['UserVoiceQueue.penalty']||0x0}));}return BPromise[_0x501c('0x4d')](_0x247347);}}}})[_0x501c('0xf')](function(){if(_0x7367aa){return db[_0x501c('0x22')]['findAll']({'where':{'membername':_0x7367aa[_0x501c('0x1b')],'exitAt':null}});}})['then'](function(_0x40bbca){if(_0x7367aa){if(_0x40bbca&&_0x40bbca[_0x501c('0x25')]){var _0x6d8ad5=[];_0x40bbca[_0x501c('0x27')](function(_0x3d2b56){_0x6d8ad5[_0x501c('0x28')](_0x3d2b56['update']({'exitAt':moment()['format'](_0x501c('0x24'))}));});return BPromise[_0x501c('0x4d')](_0x6d8ad5);}}})[_0x501c('0xf')](function(){if(_0x7367aa){var _0x4d6caa=[];var _0x5870a1=[];var _0x5933e2=utils[_0x501c('0x4e')]();var _0x41321a={'membername':_0x7367aa[_0x501c('0x1b')],'interface':_0x3a4ec9,'enterAt':moment()['format'](_0x501c('0x24')),'role':_0x7367aa[_0x501c('0x1c')],'internal':_0x7367aa[_0x501c('0x42')]};_0x5933e2[_0x501c('0x27')](function(_0x4582f7){_0x4d6caa['push'](_[_0x501c('0x4f')]({'channel':_0x4582f7,'type':_0x501c('0x50'),'data1':_0x501c('0x51'),'data2':_0x3a4ec9},_0x41321a));if(_0x7367aa[_0x501c('0x4c')]){_0x5870a1[_0x501c('0x28')](_['merge']({'channel':_0x4582f7,'type':_0x501c('0x23'),'data1':_0x501c('0x52')},_0x41321a));}});return db[_0x501c('0x22')][_0x501c('0x2e')](_0x4d6caa[_0x501c('0x53')](_0x5870a1),{'individualHooks':!![]});}})[_0x501c('0xf')](function(){if(_0x7367aa){return _0x7367aa[_0x501c('0x21')]({'online':!![],'lastLoginAt':moment()[_0x501c('0x1e')](_0x501c('0x24')),'voicePause':_0x7367aa[_0x501c('0x4c')]||![],'mailPause':_0x7367aa[_0x501c('0x4c')]||![],'chatPause':_0x7367aa[_0x501c('0x4c')]||![],'faxPause':_0x7367aa[_0x501c('0x4c')]||![],'smsPause':_0x7367aa[_0x501c('0x4c')]||![],'openchannelPause':_0x7367aa['loginInPause']||![],'pauseType':_0x7367aa[_0x501c('0x4c')]?_0x501c('0x52'):null,'lastPauseAt':moment()[_0x501c('0x1e')]('YYYY-MM-DD\x20HH:mm:ss'),'interface':_0x3a4ec9});}})[_0x501c('0xf')](function(_0x43d2ab){_0x3db6ff(_0x43d2ab);})[_0x501c('0x12')](function(_0x457101){_0x299e5a(_0x109ea3[_0x501c('0x13')](0x1f4,_0x457101[_0x501c('0x14')]));});});};