Built motion from commit d5e4af8c.|2.6.23
[motion2.git] / server / services / routing / model / agent.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 _0xbbbc=['chatStatusTime','chatCapacity','mailStatus','mailStatusTime','mailCapacity','faxStatus','faxStatusTime','faxCapacity','smsStatus','smsStatusTime','smsCapacity','smsCurrentCapacity','whatsappStatusTime','whatsappCapacity','openchannelStatusTime','openchannelCapacity','openchannelCurrentCapacity','busy','busyQueue','chatWaitingInteractions','faxWaitingInteractions','openchannelWaitingInteractions','smsWaitingInteractions','whatsappWaitingInteractions','updateRealtime','prototype','getChannelStatus','CurrentCapacity','Capacity','maxcapacity','idle','mail','sms','length','Status','StatusTime','toNumber','format','chatStatus','chatCurrentCapacity','mailCurrentCapacity','faxCurrentCapacity','whatsappStatus','whatsappCurrentCapacity','openchannelStatus','mailWaitingInteractions','stringify','emit','lodash','md5','moment','ioredis','../../../config/environment','redis','defaults','localhost','socket.io-emitter','name','online','voicePause','chatPause','mailPause','faxPause','smsPause','openchannelPause','unknown'];(function(_0x3f8fa5,_0xa2656){var _0x42542e=function(_0x5dc8ad){while(--_0x5dc8ad){_0x3f8fa5['push'](_0x3f8fa5['shift']());}};_0x42542e(++_0xa2656);}(_0xbbbc,0xf6));var _0xcbbb=function(_0x487f47,_0x32b30b){_0x487f47=_0x487f47-0x0;var _0x35988b=_0xbbbc[_0x487f47];return _0x35988b;};'use strict';var _=require(_0xcbbb('0x0'));var md5=require(_0xcbbb('0x1'));var moment=require(_0xcbbb('0x2'));var Redis=require(_0xcbbb('0x3'));var config=require(_0xcbbb('0x4'));config[_0xcbbb('0x5')]=_[_0xcbbb('0x6')](config['redis'],{'host':_0xcbbb('0x7'),'port':0x18eb});var io=require(_0xcbbb('0x8'))(new Redis(config[_0xcbbb('0x5')]));function Agent(_0x3ccbf6){this['id']=_0x3ccbf6['id']||0x0;this[_0xcbbb('0x9')]=_0x3ccbf6['name']||'';this[_0xcbbb('0xa')]=_0x3ccbf6[_0xcbbb('0xa')]||!![];this[_0xcbbb('0xb')]=_0x3ccbf6[_0xcbbb('0xb')]||![];this[_0xcbbb('0xc')]=_0x3ccbf6[_0xcbbb('0xc')]||![];this[_0xcbbb('0xd')]=_0x3ccbf6['mailPause']||![];this[_0xcbbb('0xe')]=_0x3ccbf6['faxPause']||![];this['smsPause']=_0x3ccbf6[_0xcbbb('0xf')]||![];this['openchannelPause']=_0x3ccbf6[_0xcbbb('0x10')]||![];this['chatStatus']=_0xcbbb('0x11');this[_0xcbbb('0x12')]=0x0;this['chatCapacity']=_0x3ccbf6[_0xcbbb('0x13')]||0x0;this['chatCurrentCapacity']=0x0;this[_0xcbbb('0x14')]='unknown';this[_0xcbbb('0x15')]=0x0;this[_0xcbbb('0x16')]=_0x3ccbf6[_0xcbbb('0x16')]||0x0;this['mailCurrentCapacity']=0x0;this[_0xcbbb('0x17')]=_0xcbbb('0x11');this[_0xcbbb('0x18')]=0x0;this[_0xcbbb('0x19')]=_0x3ccbf6['faxCapacity']||0x0;this['faxCurrentCapacity']=0x0;this[_0xcbbb('0x1a')]=_0xcbbb('0x11');this[_0xcbbb('0x1b')]=0x0;this[_0xcbbb('0x1c')]=_0x3ccbf6['smsCapacity']||0x0;this[_0xcbbb('0x1d')]=0x0;this['whatsappStatus']=_0xcbbb('0x11');this[_0xcbbb('0x1e')]=0x0;this[_0xcbbb('0x1f')]=_0x3ccbf6['whatsappCapacity']||0x0;this['whatsappCurrentCapacity']=0x0;this['openchannelStatus']=_0xcbbb('0x11');this[_0xcbbb('0x20')]=0x0;this[_0xcbbb('0x21')]=_0x3ccbf6[_0xcbbb('0x21')]||0x0;this[_0xcbbb('0x22')]=0x0;this[_0xcbbb('0x23')]=![];this[_0xcbbb('0x24')]=undefined;this[_0xcbbb('0x1')]='';this[_0xcbbb('0x25')]={};this[_0xcbbb('0x26')]={};this['mailWaitingInteractions']={};this[_0xcbbb('0x27')]={};this[_0xcbbb('0x28')]={};this[_0xcbbb('0x29')]={};this[_0xcbbb('0x2a')]();}Agent[_0xcbbb('0x2b')][_0xcbbb('0x2c')]=function(_0x297eae){if(this[_0x297eae+_0xcbbb('0x2d')]>0x0){if(this[_0x297eae+_0xcbbb('0x2e')]>0x0&&this[_0x297eae+'CurrentCapacity']>=this[_0x297eae+_0xcbbb('0x2e')]){return _0xcbbb('0x2f');}else{return'working';}}else{return _0xcbbb('0x30');}};Agent['prototype']['updateRealtime']=function(){var _0x575d56=[_0xcbbb('0x31'),'chat','openchannel','fax',_0xcbbb('0x32'),'whatsapp'];for(var _0x4da775=0x0;_0x4da775<_0x575d56[_0xcbbb('0x33')];_0x4da775+=0x1){var _0x2902c6=this[_0xcbbb('0x2c')](_0x575d56[_0x4da775]);if(this[_0x575d56[_0x4da775]+_0xcbbb('0x34')]!==_0x2902c6){this[_0x575d56[_0x4da775]+_0xcbbb('0x35')]=_[_0xcbbb('0x36')](moment()[_0xcbbb('0x37')]('x'));}this[_0x575d56[_0x4da775]+_0xcbbb('0x34')]=_0x2902c6;}var _0x2a023f={'id':this['id'],'name':this[_0xcbbb('0x9')],'online':this[_0xcbbb('0xa')],'voicePause':this[_0xcbbb('0xb')],'chatPause':this[_0xcbbb('0xc')],'mailPause':this[_0xcbbb('0xd')],'smsPause':this[_0xcbbb('0xf')],'faxPause':this[_0xcbbb('0xe')],'openchannelPause':this[_0xcbbb('0x10')],'chatStatus':this[_0xcbbb('0x38')],'chatStatusTime':this['chatStatusTime'],'chatCapacity':this[_0xcbbb('0x13')],'chatCurrentCapacity':this[_0xcbbb('0x39')],'mailStatus':this['mailStatus'],'mailStatusTime':this[_0xcbbb('0x15')],'mailCapacity':this['mailCapacity'],'mailCurrentCapacity':this[_0xcbbb('0x3a')],'faxStatus':this[_0xcbbb('0x17')],'faxStatusTime':this[_0xcbbb('0x18')],'faxCapacity':this['faxCapacity'],'faxCurrentCapacity':this[_0xcbbb('0x3b')],'smsStatus':this[_0xcbbb('0x1a')],'smsStatusTime':this[_0xcbbb('0x1b')],'smsCapacity':this[_0xcbbb('0x1c')],'smsCurrentCapacity':this[_0xcbbb('0x1d')],'whatsappStatus':this[_0xcbbb('0x3c')],'whatsappStatusTime':this[_0xcbbb('0x1e')],'whatsappCapacity':this[_0xcbbb('0x1f')],'whatsappCurrentCapacity':this[_0xcbbb('0x3d')],'openchannelStatus':this[_0xcbbb('0x3e')],'openchannelStatusTime':this['openchannelStatusTime'],'openchannelCapacity':this['openchannelCapacity'],'openchannelCurrentCapacity':this['openchannelCurrentCapacity'],'busy':this['busy'],'busyQueue':this[_0xcbbb('0x24')],'chatWaitingInteractions':this[_0xcbbb('0x25')],'faxWaitingInteractions':this[_0xcbbb('0x26')],'mailWaitingInteractions':this[_0xcbbb('0x3f')],'openchannelWaitingInteractions':this[_0xcbbb('0x27')],'smsWaitingInteractions':this[_0xcbbb('0x28')],'whatsappWaitingInteractions':this[_0xcbbb('0x29')]};var _0x39a417=md5(JSON[_0xcbbb('0x40')](_0x2a023f));if(this[_0xcbbb('0x1')]!==_0x39a417){this[_0xcbbb('0x1')]=_0x39a417;io[_0xcbbb('0x41')]('user:routing:update',_['omit'](_0x2a023f,[_0xcbbb('0xa')]));}};module['exports']=Agent;