b5282cf1add0cbede07a9cc816fb4fb07b12ea12
[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 _0xbabe=['util','ioredis','../../../config/environment','redis','defaults','localhost','name','timeout','strategy','beepall','Agents','waiting','updateRealtime','prototype','updateRouting','mapAgentsId','map','_rr','loggedIn','paused','length','online','chatPause','available','stringify','md5','format','chat:queue:%s','emit','chat_queue:save','exports','lodash'];(function(_0x38f967,_0xe1e2dd){var _0x3831be=function(_0x10c530){while(--_0x10c530){_0x38f967['push'](_0x38f967['shift']());}};_0x3831be(++_0xe1e2dd);}(_0xbabe,0x17f));var _0xebab=function(_0xdaf61,_0x3e5392){_0xdaf61=_0xdaf61-0x0;var _0x5c7da9=_0xbabe[_0xdaf61];return _0x5c7da9;};'use strict';var _=require(_0xebab('0x0'));var md5=require('md5');var util=require(_0xebab('0x1'));var Redis=require(_0xebab('0x2'));var config=require(_0xebab('0x3'));config[_0xebab('0x4')]=_[_0xebab('0x5')](config[_0xebab('0x4')],{'host':_0xebab('0x6'),'port':0x18eb});var io=require('socket.io-emitter')(new Redis(config[_0xebab('0x4')]));function ChatQueue(_0x20cb0b){this['id']=_0x20cb0b['id']||0x0;this[_0xebab('0x7')]=_0x20cb0b[_0xebab('0x7')]||'';this[_0xebab('0x8')]=_0x20cb0b[_0xebab('0x8')]||0xa;this['strategy']=_0x20cb0b[_0xebab('0x9')]||_0xebab('0xa');this['Agents']=_0x20cb0b[_0xebab('0xb')];this['mapAgentsId']={};this[_0xebab('0xc')]=0x0;this['md5']='';this['updateRouting']();this[_0xebab('0xd')]();}ChatQueue[_0xebab('0xe')][_0xebab('0xf')]=function(){var _0xc12f92=this[_0xebab('0x10')]['_rr'];this['mapAgentsId']=_[_0xebab('0x11')](this[_0xebab('0xb')],'id');this[_0xebab('0x10')][_0xebab('0x12')]=_0xc12f92;};ChatQueue[_0xebab('0xe')][_0xebab('0xd')]=function(){this[_0xebab('0x13')]=0x0;this[_0xebab('0x14')]=0x0;for(var _0x1dfeab=0x0;_0x1dfeab<this['Agents'][_0xebab('0x15')];_0x1dfeab+=0x1){if(this[_0xebab('0xb')][_0x1dfeab][_0xebab('0x16')]){this[_0xebab('0x13')]+=0x1;}if(this[_0xebab('0xb')][_0x1dfeab][_0xebab('0x17')]){this[_0xebab('0x14')]+=0x1;}}this[_0xebab('0x18')]=this[_0xebab('0x13')]-this['paused'];this[_0xebab('0x18')]=this[_0xebab('0x18')]>=0x0?this[_0xebab('0x18')]:0x0;var _0x1e1a6f={'id':this['id'],'available':this[_0xebab('0x18')],'loggedIn':this[_0xebab('0x13')],'name':this[_0xebab('0x7')],'paused':this['paused'],'waiting':this['waiting']};var _0x4bbe6f=md5(JSON[_0xebab('0x19')](_0x1e1a6f));if(this[_0xebab('0x1a')]!==_0x4bbe6f){this[_0xebab('0x1a')]=_0x4bbe6f;io['to'](util[_0xebab('0x1b')](_0xebab('0x1c'),_0x1e1a6f[_0xebab('0x7')]))[_0xebab('0x1d')](_0xebab('0x1e'),_0x1e1a6f);}};module[_0xebab('0x1f')]=ChatQueue;