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