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