Built motion from commit e6806ed6.|2.6.0
[motion2.git] / server / config / schedule / chat.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 _0x5e3c=['redis','defaults','socket.io-emitter','Setting','find','then','findAll','subtract','chatTimeout','minutes','length','map','info','join','ChatInteraction','update','system','format','YYYY-MM-DD\x20HH:mm:ss','emit','chatInteraction:update','catch','error','lodash','moment','ioredis','util','../../mysqldb','../logger','schedule'];(function(_0x5db429,_0x438c9b){var _0x5a8dc7=function(_0x355d34){while(--_0x355d34){_0x5db429['push'](_0x5db429['shift']());}};_0x5a8dc7(++_0x438c9b);}(_0x5e3c,0x1bb));var _0xc5e3=function(_0x6b8f5b,_0x4362b9){_0x6b8f5b=_0x6b8f5b-0x0;var _0x41f58b=_0x5e3c[_0x6b8f5b];return _0x41f58b;};'use strict';var _=require(_0xc5e3('0x0'));var moment=require(_0xc5e3('0x1'));var Redis=require(_0xc5e3('0x2'));var util=require(_0xc5e3('0x3'));var config=require('../../config/environment');var db=require(_0xc5e3('0x4'))['db'];var logger=require(_0xc5e3('0x5'))(_0xc5e3('0x6'));config[_0xc5e3('0x7')]=_[_0xc5e3('0x8')](config[_0xc5e3('0x7')],{'host':'localhost','port':0x18eb});var io=require(_0xc5e3('0x9'))(new Redis(config[_0xc5e3('0x7')]));function closeInteractions(){var _0x1219f0=0x0;var _0x36e6a5=[];return db[_0xc5e3('0xa')][_0xc5e3('0xb')]({'raw':!![],'attributes':['id','chatTimeout'],'where':{'id':0x1}})[_0xc5e3('0xc')](function(_0x4532b1){_0x1219f0=_0x4532b1['chatTimeout'];if(_0x1219f0){return db['ChatInteraction'][_0xc5e3('0xd')]({'raw':!![],'attributes':['id','lastMsgAt'],'where':{'closed':![],'lastMsgAt':{'$lt':moment()[_0xc5e3('0xe')](_0x4532b1[_0xc5e3('0xf')],_0xc5e3('0x10'))}}});}else{return[];}})[_0xc5e3('0xc')](function(_0x54703e){if(_0x54703e&&_0x54703e[_0xc5e3('0x11')]){_0x36e6a5=_[_0xc5e3('0x12')](_0x54703e||[],'id');logger[_0xc5e3('0x13')]('[CHAT]\x20Interactions\x20to\x20close:',_0x36e6a5[_0xc5e3('0x14')]());return db[_0xc5e3('0x15')][_0xc5e3('0x16')]({'closeReason':_0xc5e3('0x17'),'disposition':'timeout','closed':!![],'closedAt':moment()[_0xc5e3('0x18')](_0xc5e3('0x19'))},{'where':{'id':_0x36e6a5}});}})[_0xc5e3('0xc')](function(){if(_0x36e6a5&&_0x36e6a5['length']){logger[_0xc5e3('0x13')]('[CHAT]\x20Sending\x20updates\x20for\x20interactions:',_0x36e6a5[_0xc5e3('0x14')]());for(var _0x369764=0x0;_0x369764<_0x36e6a5[_0xc5e3('0x11')];_0x369764++){io[_0xc5e3('0x1a')](_0xc5e3('0x1b'),{'id':_0x36e6a5[_0x369764],'closed':!![]});}}})[_0xc5e3('0x1c')](function(_0x54fa6c){logger[_0xc5e3('0x1d')]('[CHAT]\x20Error\x20closing\x20interactions',_0x54fa6c?util['inspect'](_0x54fa6c,{'showHidden':![],'depth':null}):'');});}exports['start']=function(){setInterval(function(){return closeInteractions();},0x3c*0x3e8);return closeInteractions();};