Built motion from commit (unavailable).|2.4.18
[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 _0x7bb8=['available','paused','stringify','format','chat:queue:%s','emit','chat_queue:save','exports','lodash','md5','util','ioredis','../../../config/environment','name','timeout','strategy','beepall','Agents','mapAgentsId','waiting','updateRouting','updateRealtime','map','_rr','prototype','loggedIn','length','online','chatPause'];(function(_0x4b7b69,_0x3ab075){var _0x173b4c=function(_0x234d5f){while(--_0x234d5f){_0x4b7b69['push'](_0x4b7b69['shift']());}};_0x173b4c(++_0x3ab075);}(_0x7bb8,0x12a));var _0x87bb=function(_0x2d8d64,_0x4c4da7){_0x2d8d64=_0x2d8d64-0x0;var _0x47b482=_0x7bb8[_0x2d8d64];return _0x47b482;};'use strict';var _=require(_0x87bb('0x0'));var md5=require(_0x87bb('0x1'));var util=require(_0x87bb('0x2'));var Redis=require(_0x87bb('0x3'));var config=require(_0x87bb('0x4'));config['redis']=_['defaults'](config['redis'],{'host':'localhost','port':0x18eb});var io=require('socket.io-emitter')(new Redis(config['redis']));function ChatQueue(_0x234ec9){this['id']=_0x234ec9['id']||0x0;this['name']=_0x234ec9[_0x87bb('0x5')]||'';this[_0x87bb('0x6')]=_0x234ec9['timeout']||0xa;this[_0x87bb('0x7')]=_0x234ec9[_0x87bb('0x7')]||_0x87bb('0x8');this[_0x87bb('0x9')]=_0x234ec9[_0x87bb('0x9')];this[_0x87bb('0xa')]={};this[_0x87bb('0xb')]=0x0;this['md5']='';this[_0x87bb('0xc')]();this[_0x87bb('0xd')]();}ChatQueue['prototype'][_0x87bb('0xc')]=function(){var _0x1a9dd8=this[_0x87bb('0xa')]['_rr'];this[_0x87bb('0xa')]=_[_0x87bb('0xe')](this[_0x87bb('0x9')],'id');this[_0x87bb('0xa')][_0x87bb('0xf')]=_0x1a9dd8;};ChatQueue[_0x87bb('0x10')]['updateRealtime']=function(){this[_0x87bb('0x11')]=0x0;this['paused']=0x0;for(var _0x19362b=0x0;_0x19362b<this[_0x87bb('0x9')][_0x87bb('0x12')];_0x19362b+=0x1){if(this[_0x87bb('0x9')][_0x19362b][_0x87bb('0x13')]){this[_0x87bb('0x11')]+=0x1;}if(this[_0x87bb('0x9')][_0x19362b][_0x87bb('0x14')]){this['paused']+=0x1;}}this[_0x87bb('0x15')]=this[_0x87bb('0x11')]-this[_0x87bb('0x16')];this[_0x87bb('0x15')]=this[_0x87bb('0x15')]>=0x0?this[_0x87bb('0x15')]:0x0;var _0x4468d3={'id':this['id'],'available':this[_0x87bb('0x15')],'loggedIn':this['loggedIn'],'name':this[_0x87bb('0x5')],'paused':this[_0x87bb('0x16')],'waiting':this[_0x87bb('0xb')]};var _0x572463=md5(JSON[_0x87bb('0x17')](_0x4468d3));if(this[_0x87bb('0x1')]!==_0x572463){this[_0x87bb('0x1')]=_0x572463;io['to'](util[_0x87bb('0x18')](_0x87bb('0x19'),_0x4468d3[_0x87bb('0x5')]))[_0x87bb('0x1a')](_0x87bb('0x1b'),_0x4468d3);}};module[_0x87bb('0x1c')]=ChatQueue;