81b15ebcf7ae38dbfe5b25f63cd0bd3e44fe8f07
[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 _0x8440=['whatsappCurrentCapacity','openchannelCapacity','openchannelCurrentCapacity','busy','busyQueue','chatWaitingInteractions','faxWaitingInteractions','mailWaitingInteractions','openchannelWaitingInteractions','smsWaitingInteractions','whatsappWaitingInteractions','prototype','CurrentCapacity','Capacity','maxcapacity','working','idle','updateRealtime','chat','fax','whatsapp','getChannelStatus','Status','StatusTime','format','name','mailPause','mailStatusTime','whatsappStatusTime','openchannelStatusTime','stringify','md5','emit','lodash','moment','ioredis','../../../config/environment','redis','localhost','socket.io-emitter','online','voicePause','chatPause','faxPause','smsPause','openchannelPause','chatStatus','unknown','chatStatusTime','chatCapacity','chatCurrentCapacity','mailStatus','mailCapacity','faxStatus','faxStatusTime','faxCapacity','faxCurrentCapacity','smsStatus','smsStatusTime','smsCapacity','smsCurrentCapacity','whatsappCapacity'];(function(_0x347f41,_0x2cbc52){var _0x2637c2=function(_0x27f641){while(--_0x27f641){_0x347f41['push'](_0x347f41['shift']());}};_0x2637c2(++_0x2cbc52);}(_0x8440,0x9d));var _0x0844=function(_0x26482a,_0x9b689e){_0x26482a=_0x26482a-0x0;var _0x1c5528=_0x8440[_0x26482a];return _0x1c5528;};'use strict';var _=require(_0x0844('0x0'));var moment=require(_0x0844('0x1'));var md5=require('md5');var Redis=require(_0x0844('0x2'));var config=require(_0x0844('0x3'));config['redis']=_['defaults'](config[_0x0844('0x4')],{'host':_0x0844('0x5'),'port':0x18eb});var io=require(_0x0844('0x6'))(new Redis(config['redis']));function Agent(_0x5ea794){this['id']=_0x5ea794['id']||0x0;this['name']=_0x5ea794['name']||'';this[_0x0844('0x7')]=_0x5ea794[_0x0844('0x7')]||!![];this[_0x0844('0x8')]=_0x5ea794[_0x0844('0x8')]||![];this[_0x0844('0x9')]=_0x5ea794[_0x0844('0x9')]||![];this['mailPause']=_0x5ea794['mailPause']||![];this[_0x0844('0xa')]=_0x5ea794[_0x0844('0xa')]||![];this['smsPause']=_0x5ea794[_0x0844('0xb')]||![];this[_0x0844('0xc')]=_0x5ea794[_0x0844('0xc')]||![];this[_0x0844('0xd')]=_0x0844('0xe');this[_0x0844('0xf')]=0x0;this['chatCapacity']=_0x5ea794[_0x0844('0x10')]||0x0;this[_0x0844('0x11')]=0x0;this[_0x0844('0x12')]='unknown';this['mailStatusTime']=0x0;this[_0x0844('0x13')]=_0x5ea794[_0x0844('0x13')]||0x0;this['mailCurrentCapacity']=0x0;this[_0x0844('0x14')]='unknown';this[_0x0844('0x15')]=0x0;this[_0x0844('0x16')]=_0x5ea794[_0x0844('0x16')]||0x0;this[_0x0844('0x17')]=0x0;this[_0x0844('0x18')]=_0x0844('0xe');this[_0x0844('0x19')]=0x0;this[_0x0844('0x1a')]=_0x5ea794['smsCapacity']||0x0;this[_0x0844('0x1b')]=0x0;this['whatsappStatus']=_0x0844('0xe');this['whatsappStatusTime']=0x0;this[_0x0844('0x1c')]=_0x5ea794[_0x0844('0x1c')]||0x0;this[_0x0844('0x1d')]=0x0;this['openchannelStatus']=_0x0844('0xe');this['openchannelStatusTime']=0x0;this[_0x0844('0x1e')]=_0x5ea794[_0x0844('0x1e')]||0x0;this[_0x0844('0x1f')]=0x0;this[_0x0844('0x20')]=![];this[_0x0844('0x21')]=undefined;this['md5']='';this[_0x0844('0x22')]={};this[_0x0844('0x23')]={};this[_0x0844('0x24')]={};this[_0x0844('0x25')]={};this[_0x0844('0x26')]={};this[_0x0844('0x27')]={};this['updateRealtime']();}Agent[_0x0844('0x28')]['getChannelStatus']=function(_0x6c45d7){if(this[_0x6c45d7+_0x0844('0x29')]>0x0){if(this[_0x6c45d7+_0x0844('0x2a')]>0x0&&this[_0x6c45d7+_0x0844('0x29')]>=this[_0x6c45d7+_0x0844('0x2a')]){return _0x0844('0x2b');}else{return _0x0844('0x2c');}}else{return _0x0844('0x2d');}};Agent[_0x0844('0x28')][_0x0844('0x2e')]=function(){var _0x1a4ac4=['mail',_0x0844('0x2f'),'openchannel',_0x0844('0x30'),'sms',_0x0844('0x31')];for(var _0x2fca5e=0x0;_0x2fca5e<_0x1a4ac4['length'];_0x2fca5e+=0x1){var _0x5bd19b=this[_0x0844('0x32')](_0x1a4ac4[_0x2fca5e]);if(this[_0x1a4ac4[_0x2fca5e]+_0x0844('0x33')]!==_0x5bd19b){this[_0x1a4ac4[_0x2fca5e]+_0x0844('0x34')]=_['toNumber'](moment()[_0x0844('0x35')]('x'));}this[_0x1a4ac4[_0x2fca5e]+_0x0844('0x33')]=_0x5bd19b;}var _0x3f6810={'id':this['id'],'name':this[_0x0844('0x36')],'online':this[_0x0844('0x7')],'voicePause':this[_0x0844('0x8')],'chatPause':this[_0x0844('0x9')],'mailPause':this[_0x0844('0x37')],'smsPause':this['smsPause'],'faxPause':this['faxPause'],'openchannelPause':this[_0x0844('0xc')],'chatStatus':this[_0x0844('0xd')],'chatStatusTime':this[_0x0844('0xf')],'chatCapacity':this[_0x0844('0x10')],'chatCurrentCapacity':this[_0x0844('0x11')],'mailStatus':this[_0x0844('0x12')],'mailStatusTime':this[_0x0844('0x38')],'mailCapacity':this[_0x0844('0x13')],'mailCurrentCapacity':this['mailCurrentCapacity'],'faxStatus':this[_0x0844('0x14')],'faxStatusTime':this[_0x0844('0x15')],'faxCapacity':this[_0x0844('0x16')],'faxCurrentCapacity':this['faxCurrentCapacity'],'smsStatus':this[_0x0844('0x18')],'smsStatusTime':this[_0x0844('0x19')],'smsCapacity':this['smsCapacity'],'smsCurrentCapacity':this[_0x0844('0x1b')],'whatsappStatus':this['whatsappStatus'],'whatsappStatusTime':this[_0x0844('0x39')],'whatsappCapacity':this[_0x0844('0x1c')],'whatsappCurrentCapacity':this[_0x0844('0x1d')],'openchannelStatus':this['openchannelStatus'],'openchannelStatusTime':this[_0x0844('0x3a')],'openchannelCapacity':this['openchannelCapacity'],'openchannelCurrentCapacity':this[_0x0844('0x1f')],'busy':this[_0x0844('0x20')],'busyQueue':this[_0x0844('0x21')],'chatWaitingInteractions':this['chatWaitingInteractions'],'faxWaitingInteractions':this[_0x0844('0x23')],'mailWaitingInteractions':this[_0x0844('0x24')],'openchannelWaitingInteractions':this[_0x0844('0x25')],'smsWaitingInteractions':this[_0x0844('0x26')],'whatsappWaitingInteractions':this[_0x0844('0x27')]};var _0x508675=md5(JSON[_0x0844('0x3b')](_0x3f6810));if(this[_0x0844('0x3c')]!==_0x508675){this['md5']=_0x508675;io[_0x0844('0x3d')]('user:save',_0x3f6810);}};module['exports']=Agent;