95f97c016e744b887e9e2e37ece904f555f45f2f
[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 _0x4d7c=['prototype','_rr','online','loggedIn','chatPause','paused','available','stringify','chat:queue:%s','emit','chat_queue:save','lodash','util','ioredis','../../../config/environment','redis','defaults','name','timeout','Agents','mapAgentsId','waiting','md5','updateRouting','updateRealtime'];(function(_0x462b1a,_0x3b4cd1){var _0x4eab5f=function(_0x2a266b){while(--_0x2a266b){_0x462b1a['push'](_0x462b1a['shift']());}};_0x4eab5f(++_0x3b4cd1);}(_0x4d7c,0x1cd));var _0xc4d7=function(_0x1f5f1b,_0x51be51){_0x1f5f1b=_0x1f5f1b-0x0;var _0x23c05d=_0x4d7c[_0x1f5f1b];return _0x23c05d;};'use strict';var _=require(_0xc4d7('0x0'));var md5=require('md5');var util=require(_0xc4d7('0x1'));var Redis=require(_0xc4d7('0x2'));var config=require(_0xc4d7('0x3'));config[_0xc4d7('0x4')]=_[_0xc4d7('0x5')](config[_0xc4d7('0x4')],{'host':'localhost','port':0x18eb});var io=require('socket.io-emitter')(new Redis(config[_0xc4d7('0x4')]));function ChatQueue(_0x579028){this['id']=_0x579028['id']||0x0;this[_0xc4d7('0x6')]=_0x579028[_0xc4d7('0x6')]||'';this['timeout']=_0x579028[_0xc4d7('0x7')]||0xa;this['strategy']=_0x579028['strategy']||'beepall';this['Agents']=_0x579028[_0xc4d7('0x8')];this[_0xc4d7('0x9')]={};this[_0xc4d7('0xa')]=0x0;this[_0xc4d7('0xb')]='';this[_0xc4d7('0xc')]();this[_0xc4d7('0xd')]();}ChatQueue[_0xc4d7('0xe')][_0xc4d7('0xc')]=function(){var _0x40eeb3=this[_0xc4d7('0x9')][_0xc4d7('0xf')];this[_0xc4d7('0x9')]=_['map'](this['Agents'],'id');this[_0xc4d7('0x9')][_0xc4d7('0xf')]=_0x40eeb3;};ChatQueue[_0xc4d7('0xe')][_0xc4d7('0xd')]=function(){this['loggedIn']=0x0;this['paused']=0x0;for(var _0x40dfd1=0x0;_0x40dfd1<this['Agents']['length'];_0x40dfd1+=0x1){if(this['Agents'][_0x40dfd1][_0xc4d7('0x10')]){this[_0xc4d7('0x11')]+=0x1;}if(this[_0xc4d7('0x8')][_0x40dfd1][_0xc4d7('0x12')]){this[_0xc4d7('0x13')]+=0x1;}}this[_0xc4d7('0x14')]=this['loggedIn']-this[_0xc4d7('0x13')];this['available']=this['available']>=0x0?this[_0xc4d7('0x14')]:0x0;var _0xb3214d={'id':this['id'],'available':this[_0xc4d7('0x14')],'loggedIn':this[_0xc4d7('0x11')],'name':this[_0xc4d7('0x6')],'paused':this['paused'],'waiting':this[_0xc4d7('0xa')]};var _0x316ad2=md5(JSON[_0xc4d7('0x15')](_0xb3214d));if(this[_0xc4d7('0xb')]!==_0x316ad2){this['md5']=_0x316ad2;io['to'](util['format'](_0xc4d7('0x16'),_0xb3214d['name']))[_0xc4d7('0x17')](_0xc4d7('0x18'),_0xb3214d);}};module['exports']=ChatQueue;