Built motion from commit (unavailable).|2.4.4
[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 _0x58b4=['chatCurrentCapacity','mailStatus','mailStatusTime','mailCapacity','faxStatus','faxCapacity','faxCurrentCapacity','smsStatusTime','smsCapacity','openchannelStatus','openchannelCapacity','busyQueue','updateRealtime','prototype','CurrentCapacity','Capacity','idle','openchannel','fax','sms','length','getChannelStatus','Status','StatusTime','format','smsPause','mailCurrentCapacity','faxStatusTime','smsStatus','openchannelStatusTime','openchannelCurrentCapacity','busy','emit','user:save','lodash','moment','md5','redis','defaults','localhost','name','online','voicePause','chatPause','mailPause','faxPause','openchannelPause','chatStatus','unknown','chatStatusTime','chatCapacity'];(function(_0xef8146,_0x459c34){var _0x5a6cb0=function(_0x2f84ec){while(--_0x2f84ec){_0xef8146['push'](_0xef8146['shift']());}};_0x5a6cb0(++_0x459c34);}(_0x58b4,0x121));var _0x458b=function(_0x57ea94,_0x4bd0bd){_0x57ea94=_0x57ea94-0x0;var _0x5393ed=_0x58b4[_0x57ea94];return _0x5393ed;};'use strict';var _=require(_0x458b('0x0'));var moment=require(_0x458b('0x1'));var md5=require(_0x458b('0x2'));var Redis=require('ioredis');var config=require('../../../config/environment');config[_0x458b('0x3')]=_[_0x458b('0x4')](config[_0x458b('0x3')],{'host':_0x458b('0x5'),'port':0x18eb});var io=require('socket.io-emitter')(new Redis(config[_0x458b('0x3')]));function Agent(_0x51a63f){this['id']=_0x51a63f['id']||0x0;this['name']=_0x51a63f[_0x458b('0x6')]||'';this[_0x458b('0x7')]=_0x51a63f[_0x458b('0x7')]||!![];this['voicePause']=_0x51a63f[_0x458b('0x8')]||![];this['chatPause']=_0x51a63f[_0x458b('0x9')]||![];this[_0x458b('0xa')]=_0x51a63f[_0x458b('0xa')]||![];this[_0x458b('0xb')]=_0x51a63f['faxPause']||![];this['smsPause']=_0x51a63f['smsPause']||![];this[_0x458b('0xc')]=_0x51a63f[_0x458b('0xc')]||![];this[_0x458b('0xd')]=_0x458b('0xe');this[_0x458b('0xf')]=0x0;this['chatCapacity']=_0x51a63f[_0x458b('0x10')]||0x0;this[_0x458b('0x11')]=0x0;this[_0x458b('0x12')]='unknown';this[_0x458b('0x13')]=0x0;this[_0x458b('0x14')]=_0x51a63f[_0x458b('0x14')]||0x0;this['mailCurrentCapacity']=0x0;this[_0x458b('0x15')]=_0x458b('0xe');this['faxStatusTime']=0x0;this[_0x458b('0x16')]=_0x51a63f[_0x458b('0x16')]||0x0;this[_0x458b('0x17')]=0x0;this['smsStatus']=_0x458b('0xe');this[_0x458b('0x18')]=0x0;this['smsCapacity']=_0x51a63f[_0x458b('0x19')]||0x0;this['smsCurrentCapacity']=0x0;this[_0x458b('0x1a')]='unknown';this['openchannelStatusTime']=0x0;this[_0x458b('0x1b')]=_0x51a63f[_0x458b('0x1b')]||0x0;this['openchannelCurrentCapacity']=0x0;this['busy']=![];this[_0x458b('0x1c')]=undefined;this['md5']='';this[_0x458b('0x1d')]();}Agent[_0x458b('0x1e')]['getChannelStatus']=function(_0x22f9e8){if(this[_0x22f9e8+_0x458b('0x1f')]>0x0){if(this[_0x22f9e8+_0x458b('0x20')]>0x0&&this[_0x22f9e8+_0x458b('0x1f')]>=this[_0x22f9e8+'Capacity']){return'maxcapacity';}else{return'working';}}else{return _0x458b('0x21');}};Agent['prototype']['updateRealtime']=function(){var _0x11d705=['mail','chat',_0x458b('0x22'),_0x458b('0x23'),_0x458b('0x24')];for(var _0x43a3ba=0x0;_0x43a3ba<_0x11d705[_0x458b('0x25')];_0x43a3ba+=0x1){var _0x3984e6=this[_0x458b('0x26')](_0x11d705[_0x43a3ba]);if(this[_0x11d705[_0x43a3ba]+_0x458b('0x27')]!==_0x3984e6){this[_0x11d705[_0x43a3ba]+_0x458b('0x28')]=_['toNumber'](moment()[_0x458b('0x29')]('x'));}this[_0x11d705[_0x43a3ba]+_0x458b('0x27')]=_0x3984e6;}var _0x4ccab4={'id':this['id'],'name':this['name'],'online':this[_0x458b('0x7')],'voicePause':this['voicePause'],'chatPause':this[_0x458b('0x9')],'mailPause':this[_0x458b('0xa')],'smsPause':this[_0x458b('0x2a')],'faxPause':this['faxPause'],'openchannelPause':this[_0x458b('0xc')],'chatStatus':this['chatStatus'],'chatStatusTime':this['chatStatusTime'],'chatCapacity':this[_0x458b('0x10')],'chatCurrentCapacity':this[_0x458b('0x11')],'mailStatus':this[_0x458b('0x12')],'mailStatusTime':this[_0x458b('0x13')],'mailCapacity':this[_0x458b('0x14')],'mailCurrentCapacity':this[_0x458b('0x2b')],'faxStatus':this['faxStatus'],'faxStatusTime':this[_0x458b('0x2c')],'faxCapacity':this[_0x458b('0x16')],'faxCurrentCapacity':this['faxCurrentCapacity'],'smsStatus':this[_0x458b('0x2d')],'smsStatusTime':this[_0x458b('0x18')],'smsCapacity':this[_0x458b('0x19')],'smsCurrentCapacity':this['smsCurrentCapacity'],'openchannelStatus':this[_0x458b('0x1a')],'openchannelStatusTime':this[_0x458b('0x2e')],'openchannelCapacity':this[_0x458b('0x1b')],'openchannelCurrentCapacity':this[_0x458b('0x2f')],'busy':this[_0x458b('0x30')],'busyQueue':this[_0x458b('0x1c')]};var _0x5db36b=md5(JSON['stringify'](_0x4ccab4));if(this[_0x458b('0x2')]!==_0x5db36b){this['md5']=_0x5db36b;io[_0x458b('0x31')](_0x458b('0x32'),_0x4ccab4);}};module['exports']=Agent;