6d25d5194ba3de66d9bfe1edca06180aac47e3f3
[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 _0x1d5d=['updateRouting','updateRealtime','map','Agents','paused','length','online','chatPause','available','loggedIn','waiting','format','chat:queue:%s','emit','chat_queue:save','exports','lodash','md5','ioredis','../../../config/environment','redis','defaults','localhost','name','timeout','strategy','beepall','mapAgentsId'];(function(_0x109d14,_0x497cae){var _0x136ce5=function(_0x8ce50e){while(--_0x8ce50e){_0x109d14['push'](_0x109d14['shift']());}};_0x136ce5(++_0x497cae);}(_0x1d5d,0x1b4));var _0xd1d5=function(_0x3947c9,_0x4d6c97){_0x3947c9=_0x3947c9-0x0;var _0x2e7871=_0x1d5d[_0x3947c9];return _0x2e7871;};'use strict';var _=require(_0xd1d5('0x0'));var md5=require(_0xd1d5('0x1'));var util=require('util');var Redis=require(_0xd1d5('0x2'));var config=require(_0xd1d5('0x3'));config[_0xd1d5('0x4')]=_[_0xd1d5('0x5')](config[_0xd1d5('0x4')],{'host':_0xd1d5('0x6'),'port':0x18eb});var io=require('socket.io-emitter')(new Redis(config['redis']));function ChatQueue(_0x570cda){this['id']=_0x570cda['id']||0x0;this[_0xd1d5('0x7')]=_0x570cda[_0xd1d5('0x7')]||'';this[_0xd1d5('0x8')]=_0x570cda[_0xd1d5('0x8')]||0xa;this['strategy']=_0x570cda[_0xd1d5('0x9')]||_0xd1d5('0xa');this['Agents']=_0x570cda['Agents'];this[_0xd1d5('0xb')]={};this['waiting']=0x0;this[_0xd1d5('0x1')]='';this[_0xd1d5('0xc')]();this[_0xd1d5('0xd')]();}ChatQueue['prototype'][_0xd1d5('0xc')]=function(){var _0xe6cd78=this[_0xd1d5('0xb')]['_rr'];this[_0xd1d5('0xb')]=_[_0xd1d5('0xe')](this[_0xd1d5('0xf')],'id');this[_0xd1d5('0xb')]['_rr']=_0xe6cd78;};ChatQueue['prototype'][_0xd1d5('0xd')]=function(){this['loggedIn']=0x0;this[_0xd1d5('0x10')]=0x0;for(var _0x566344=0x0;_0x566344<this['Agents'][_0xd1d5('0x11')];_0x566344+=0x1){if(this['Agents'][_0x566344][_0xd1d5('0x12')]){this['loggedIn']+=0x1;}if(this[_0xd1d5('0xf')][_0x566344][_0xd1d5('0x13')]){this[_0xd1d5('0x10')]+=0x1;}}this[_0xd1d5('0x14')]=this[_0xd1d5('0x15')]-this[_0xd1d5('0x10')];this[_0xd1d5('0x14')]=this['available']>=0x0?this[_0xd1d5('0x14')]:0x0;var _0x3e23d7={'id':this['id'],'available':this[_0xd1d5('0x14')],'loggedIn':this['loggedIn'],'name':this[_0xd1d5('0x7')],'paused':this[_0xd1d5('0x10')],'waiting':this[_0xd1d5('0x16')]};var _0x18b31e=md5(JSON['stringify'](_0x3e23d7));if(this[_0xd1d5('0x1')]!==_0x18b31e){this['md5']=_0x18b31e;io['to'](util[_0xd1d5('0x17')](_0xd1d5('0x18'),_0x3e23d7[_0xd1d5('0x7')]))[_0xd1d5('0x19')](_0xd1d5('0x1a'),_0x3e23d7);}};module[_0xd1d5('0x1b')]=ChatQueue;