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