0d2642a854483689bde6f7bef9786c93979c9445
[motion2.git] / server / services / routing / model / chatQueue.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 _0x304a=['chatPause','available','chat:queue:%s','chat_queue:save','exports','lodash','md5','ioredis','redis','defaults','name','timeout','strategy','beepall','mapAgentsId','waiting','updateRouting','prototype','_rr','map','Agents','updateRealtime','loggedIn','paused','length','online'];(function(_0x39be49,_0x42ec38){var _0x4c5179=function(_0x442244){while(--_0x442244){_0x39be49['push'](_0x39be49['shift']());}};_0x4c5179(++_0x42ec38);}(_0x304a,0x1f3));var _0xa304=function(_0xbe70cb,_0x1b9d25){_0xbe70cb=_0xbe70cb-0x0;var _0x231051=_0x304a[_0xbe70cb];return _0x231051;};'use strict';var _=require(_0xa304('0x0'));var md5=require(_0xa304('0x1'));var util=require('util');var Redis=require(_0xa304('0x2'));var config=require('../../../config/environment');config[_0xa304('0x3')]=_[_0xa304('0x4')](config['redis'],{'host':'localhost','port':0x18eb});var io=require('socket.io-emitter')(new Redis(config['redis']));function ChatQueue(_0x43064b){this['id']=_0x43064b['id']||0x0;this[_0xa304('0x5')]=_0x43064b[_0xa304('0x5')]||'';this[_0xa304('0x6')]=_0x43064b['timeout']||0xa;this[_0xa304('0x7')]=_0x43064b['strategy']||_0xa304('0x8');this['Agents']=_0x43064b['Agents'];this[_0xa304('0x9')]={};this[_0xa304('0xa')]=0x0;this[_0xa304('0x1')]='';this[_0xa304('0xb')]();this['updateRealtime']();}ChatQueue[_0xa304('0xc')]['updateRouting']=function(){var _0x29c279=this[_0xa304('0x9')][_0xa304('0xd')];this[_0xa304('0x9')]=_[_0xa304('0xe')](this[_0xa304('0xf')],'id');this['mapAgentsId'][_0xa304('0xd')]=_0x29c279;};ChatQueue[_0xa304('0xc')][_0xa304('0x10')]=function(){this[_0xa304('0x11')]=0x0;this[_0xa304('0x12')]=0x0;for(var _0x4ee652=0x0;_0x4ee652<this[_0xa304('0xf')][_0xa304('0x13')];_0x4ee652+=0x1){if(this[_0xa304('0xf')][_0x4ee652][_0xa304('0x14')]){this[_0xa304('0x11')]+=0x1;}if(this['Agents'][_0x4ee652][_0xa304('0x15')]){this[_0xa304('0x12')]+=0x1;}}this[_0xa304('0x16')]=this['loggedIn']-this[_0xa304('0x12')];this[_0xa304('0x16')]=this[_0xa304('0x16')]>=0x0?this[_0xa304('0x16')]:0x0;var _0x274d50={'id':this['id'],'available':this['available'],'loggedIn':this[_0xa304('0x11')],'name':this['name'],'paused':this[_0xa304('0x12')],'waiting':this[_0xa304('0xa')]};var _0x24bd46=md5(JSON['stringify'](_0x274d50));if(this[_0xa304('0x1')]!==_0x24bd46){this[_0xa304('0x1')]=_0x24bd46;io['to'](util['format'](_0xa304('0x17'),_0x274d50[_0xa304('0x5')]))['emit'](_0xa304('0x18'),_0x274d50);}};module[_0xa304('0x19')]=ChatQueue;