Built motion from commit 753c950e.|2.5.42
[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 _0x21aa=['ioredis','../../../config/environment','redis','defaults','localhost','name','online','voicePause','faxPause','smsPause','openchannelPause','chatStatus','unknown','chatStatusTime','chatCapacity','chatCurrentCapacity','mailStatus','mailStatusTime','mailCapacity','mailCurrentCapacity','faxStatus','faxCurrentCapacity','smsStatus','whatsappCapacity','whatsappCurrentCapacity','openchannelStatusTime','openchannelCapacity','openchannelCurrentCapacity','busyQueue','prototype','getChannelStatus','CurrentCapacity','Capacity','updateRealtime','mail','openchannel','fax','sms','whatsapp','length','Status','StatusTime','toNumber','format','chatPause','mailPause','faxStatusTime','faxCapacity','smsCapacity','smsCurrentCapacity','openchannelStatus','busy','stringify','user:save','exports','lodash','md5'];(function(_0x5d2803,_0xf375bd){var _0xdcad2c=function(_0x3c3a98){while(--_0x3c3a98){_0x5d2803['push'](_0x5d2803['shift']());}};_0xdcad2c(++_0xf375bd);}(_0x21aa,0x154));var _0xa21a=function(_0x30f07a,_0x98341){_0x30f07a=_0x30f07a-0x0;var _0xb38461=_0x21aa[_0x30f07a];return _0xb38461;};'use strict';var _=require(_0xa21a('0x0'));var moment=require('moment');var md5=require(_0xa21a('0x1'));var Redis=require(_0xa21a('0x2'));var config=require(_0xa21a('0x3'));config[_0xa21a('0x4')]=_[_0xa21a('0x5')](config[_0xa21a('0x4')],{'host':_0xa21a('0x6'),'port':0x18eb});var io=require('socket.io-emitter')(new Redis(config[_0xa21a('0x4')]));function Agent(_0x2592b3){this['id']=_0x2592b3['id']||0x0;this[_0xa21a('0x7')]=_0x2592b3['name']||'';this['online']=_0x2592b3[_0xa21a('0x8')]||!![];this[_0xa21a('0x9')]=_0x2592b3[_0xa21a('0x9')]||![];this['chatPause']=_0x2592b3['chatPause']||![];this['mailPause']=_0x2592b3['mailPause']||![];this[_0xa21a('0xa')]=_0x2592b3[_0xa21a('0xa')]||![];this[_0xa21a('0xb')]=_0x2592b3[_0xa21a('0xb')]||![];this[_0xa21a('0xc')]=_0x2592b3['openchannelPause']||![];this[_0xa21a('0xd')]=_0xa21a('0xe');this[_0xa21a('0xf')]=0x0;this[_0xa21a('0x10')]=_0x2592b3[_0xa21a('0x10')]||0x0;this[_0xa21a('0x11')]=0x0;this[_0xa21a('0x12')]=_0xa21a('0xe');this[_0xa21a('0x13')]=0x0;this[_0xa21a('0x14')]=_0x2592b3[_0xa21a('0x14')]||0x0;this[_0xa21a('0x15')]=0x0;this[_0xa21a('0x16')]=_0xa21a('0xe');this['faxStatusTime']=0x0;this['faxCapacity']=_0x2592b3['faxCapacity']||0x0;this[_0xa21a('0x17')]=0x0;this[_0xa21a('0x18')]='unknown';this['smsStatusTime']=0x0;this['smsCapacity']=_0x2592b3['smsCapacity']||0x0;this['smsCurrentCapacity']=0x0;this['whatsappStatus']='unknown';this['whatsappStatusTime']=0x0;this[_0xa21a('0x19')]=_0x2592b3[_0xa21a('0x19')]||0x0;this[_0xa21a('0x1a')]=0x0;this['openchannelStatus']=_0xa21a('0xe');this[_0xa21a('0x1b')]=0x0;this[_0xa21a('0x1c')]=_0x2592b3[_0xa21a('0x1c')]||0x0;this[_0xa21a('0x1d')]=0x0;this['busy']=![];this[_0xa21a('0x1e')]=undefined;this[_0xa21a('0x1')]='';this['updateRealtime']();}Agent[_0xa21a('0x1f')][_0xa21a('0x20')]=function(_0x3a9bec){if(this[_0x3a9bec+_0xa21a('0x21')]>0x0){if(this[_0x3a9bec+_0xa21a('0x22')]>0x0&&this[_0x3a9bec+_0xa21a('0x21')]>=this[_0x3a9bec+_0xa21a('0x22')]){return'maxcapacity';}else{return'working';}}else{return'idle';}};Agent['prototype'][_0xa21a('0x23')]=function(){var _0x4de496=[_0xa21a('0x24'),'chat',_0xa21a('0x25'),_0xa21a('0x26'),_0xa21a('0x27'),_0xa21a('0x28')];for(var _0x5b23aa=0x0;_0x5b23aa<_0x4de496[_0xa21a('0x29')];_0x5b23aa+=0x1){var _0x52908a=this['getChannelStatus'](_0x4de496[_0x5b23aa]);if(this[_0x4de496[_0x5b23aa]+_0xa21a('0x2a')]!==_0x52908a){this[_0x4de496[_0x5b23aa]+_0xa21a('0x2b')]=_[_0xa21a('0x2c')](moment()[_0xa21a('0x2d')]('x'));}this[_0x4de496[_0x5b23aa]+'Status']=_0x52908a;}var _0x127549={'id':this['id'],'name':this['name'],'online':this[_0xa21a('0x8')],'voicePause':this[_0xa21a('0x9')],'chatPause':this[_0xa21a('0x2e')],'mailPause':this[_0xa21a('0x2f')],'smsPause':this[_0xa21a('0xb')],'faxPause':this[_0xa21a('0xa')],'openchannelPause':this[_0xa21a('0xc')],'chatStatus':this[_0xa21a('0xd')],'chatStatusTime':this[_0xa21a('0xf')],'chatCapacity':this[_0xa21a('0x10')],'chatCurrentCapacity':this['chatCurrentCapacity'],'mailStatus':this[_0xa21a('0x12')],'mailStatusTime':this[_0xa21a('0x13')],'mailCapacity':this[_0xa21a('0x14')],'mailCurrentCapacity':this['mailCurrentCapacity'],'faxStatus':this['faxStatus'],'faxStatusTime':this[_0xa21a('0x30')],'faxCapacity':this[_0xa21a('0x31')],'faxCurrentCapacity':this[_0xa21a('0x17')],'smsStatus':this[_0xa21a('0x18')],'smsStatusTime':this['smsStatusTime'],'smsCapacity':this[_0xa21a('0x32')],'smsCurrentCapacity':this[_0xa21a('0x33')],'whatsappStatus':this['whatsappStatus'],'whatsappStatusTime':this['whatsappStatusTime'],'whatsappCapacity':this[_0xa21a('0x19')],'whatsappCurrentCapacity':this['whatsappCurrentCapacity'],'openchannelStatus':this[_0xa21a('0x34')],'openchannelStatusTime':this[_0xa21a('0x1b')],'openchannelCapacity':this['openchannelCapacity'],'openchannelCurrentCapacity':this[_0xa21a('0x1d')],'busy':this[_0xa21a('0x35')],'busyQueue':this[_0xa21a('0x1e')]};var _0x18ea10=md5(JSON[_0xa21a('0x36')](_0x127549));if(this['md5']!==_0x18ea10){this[_0xa21a('0x1')]=_0x18ea10;io['emit'](_0xa21a('0x37'),_0x127549);}};module[_0xa21a('0x38')]=Agent;