76ddfd918d8bbd2b6cabe67026380b7bc31cf2c0
[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 _0xbee0=['getChannelStatus','CurrentCapacity','Capacity','maxcapacity','mail','chat','fax','Status','format','voicePause','mailStatus','mailStatusTime','mailCapacity','mailCurrentCapacity','faxCurrentCapacity','smsCurrentCapacity','openchannelStatus','emit','lodash','moment','ioredis','../../../config/environment','redis','defaults','localhost','name','online','chatPause','mailPause','faxPause','smsPause','openchannelPause','chatStatus','unknown','chatStatusTime','chatCapacity','chatCurrentCapacity','faxStatus','faxStatusTime','faxCapacity','smsStatus','smsStatusTime','smsCapacity','openchannelStatusTime','openchannelCapacity','openchannelCurrentCapacity','busy','busyQueue','md5','updateRealtime','prototype'];(function(_0x289a67,_0x1e5a3c){var _0x572b49=function(_0x22e036){while(--_0x22e036){_0x289a67['push'](_0x289a67['shift']());}};_0x572b49(++_0x1e5a3c);}(_0xbee0,0xab));var _0x0bee=function(_0x4d64e5,_0x1a99e5){_0x4d64e5=_0x4d64e5-0x0;var _0xd99957=_0xbee0[_0x4d64e5];return _0xd99957;};'use strict';var _=require(_0x0bee('0x0'));var moment=require(_0x0bee('0x1'));var md5=require('md5');var Redis=require(_0x0bee('0x2'));var config=require(_0x0bee('0x3'));config[_0x0bee('0x4')]=_[_0x0bee('0x5')](config[_0x0bee('0x4')],{'host':_0x0bee('0x6'),'port':0x18eb});var io=require('socket.io-emitter')(new Redis(config[_0x0bee('0x4')]));function Agent(_0x203f8f){this['id']=_0x203f8f['id']||0x0;this[_0x0bee('0x7')]=_0x203f8f['name']||'';this[_0x0bee('0x8')]=_0x203f8f['online']||!![];this['voicePause']=_0x203f8f['voicePause']||![];this[_0x0bee('0x9')]=_0x203f8f[_0x0bee('0x9')]||![];this['mailPause']=_0x203f8f[_0x0bee('0xa')]||![];this[_0x0bee('0xb')]=_0x203f8f[_0x0bee('0xb')]||![];this[_0x0bee('0xc')]=_0x203f8f[_0x0bee('0xc')]||![];this[_0x0bee('0xd')]=_0x203f8f[_0x0bee('0xd')]||![];this[_0x0bee('0xe')]=_0x0bee('0xf');this[_0x0bee('0x10')]=0x0;this[_0x0bee('0x11')]=_0x203f8f[_0x0bee('0x11')]||0x0;this[_0x0bee('0x12')]=0x0;this['mailStatus']=_0x0bee('0xf');this['mailStatusTime']=0x0;this['mailCapacity']=_0x203f8f['mailCapacity']||0x0;this['mailCurrentCapacity']=0x0;this[_0x0bee('0x13')]=_0x0bee('0xf');this[_0x0bee('0x14')]=0x0;this[_0x0bee('0x15')]=_0x203f8f['faxCapacity']||0x0;this['faxCurrentCapacity']=0x0;this[_0x0bee('0x16')]=_0x0bee('0xf');this[_0x0bee('0x17')]=0x0;this['smsCapacity']=_0x203f8f[_0x0bee('0x18')]||0x0;this['smsCurrentCapacity']=0x0;this['openchannelStatus']='unknown';this[_0x0bee('0x19')]=0x0;this[_0x0bee('0x1a')]=_0x203f8f['openchannelCapacity']||0x0;this[_0x0bee('0x1b')]=0x0;this[_0x0bee('0x1c')]=![];this[_0x0bee('0x1d')]=undefined;this[_0x0bee('0x1e')]='';this[_0x0bee('0x1f')]();}Agent[_0x0bee('0x20')][_0x0bee('0x21')]=function(_0x5c72bd){if(this[_0x5c72bd+_0x0bee('0x22')]>0x0){if(this[_0x5c72bd+'Capacity']>0x0&&this[_0x5c72bd+_0x0bee('0x22')]>=this[_0x5c72bd+_0x0bee('0x23')]){return _0x0bee('0x24');}else{return'working';}}else{return'idle';}};Agent[_0x0bee('0x20')][_0x0bee('0x1f')]=function(){var _0x28da72=[_0x0bee('0x25'),_0x0bee('0x26'),'openchannel',_0x0bee('0x27'),'sms'];for(var _0x516995=0x0;_0x516995<_0x28da72['length'];_0x516995+=0x1){var _0x1ec361=this[_0x0bee('0x21')](_0x28da72[_0x516995]);if(this[_0x28da72[_0x516995]+_0x0bee('0x28')]!==_0x1ec361){this[_0x28da72[_0x516995]+'StatusTime']=_['toNumber'](moment()[_0x0bee('0x29')]('x'));}this[_0x28da72[_0x516995]+_0x0bee('0x28')]=_0x1ec361;}var _0x24b605={'id':this['id'],'name':this[_0x0bee('0x7')],'online':this[_0x0bee('0x8')],'voicePause':this[_0x0bee('0x2a')],'chatPause':this['chatPause'],'mailPause':this['mailPause'],'smsPause':this[_0x0bee('0xc')],'faxPause':this[_0x0bee('0xb')],'openchannelPause':this[_0x0bee('0xd')],'chatStatus':this[_0x0bee('0xe')],'chatStatusTime':this['chatStatusTime'],'chatCapacity':this[_0x0bee('0x11')],'chatCurrentCapacity':this[_0x0bee('0x12')],'mailStatus':this[_0x0bee('0x2b')],'mailStatusTime':this[_0x0bee('0x2c')],'mailCapacity':this[_0x0bee('0x2d')],'mailCurrentCapacity':this[_0x0bee('0x2e')],'faxStatus':this['faxStatus'],'faxStatusTime':this[_0x0bee('0x14')],'faxCapacity':this[_0x0bee('0x15')],'faxCurrentCapacity':this[_0x0bee('0x2f')],'smsStatus':this['smsStatus'],'smsStatusTime':this['smsStatusTime'],'smsCapacity':this[_0x0bee('0x18')],'smsCurrentCapacity':this[_0x0bee('0x30')],'openchannelStatus':this[_0x0bee('0x31')],'openchannelStatusTime':this['openchannelStatusTime'],'openchannelCapacity':this[_0x0bee('0x1a')],'openchannelCurrentCapacity':this[_0x0bee('0x1b')],'busy':this[_0x0bee('0x1c')],'busyQueue':this['busyQueue']};var _0x5aeb10=md5(JSON['stringify'](_0x24b605));if(this[_0x0bee('0x1e')]!==_0x5aeb10){this[_0x0bee('0x1e')]=_0x5aeb10;io[_0x0bee('0x32')]('user:save',_0x24b605);}};module['exports']=Agent;