Built motion from commit (unavailable).|2.5.21
[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 _0x3d7b=['start','moment','ioredis','util','../../config/environment','../../mysqldb','../logger','schedule','redis','defaults','socket.io-emitter','Setting','find','chatTimeout','then','ChatInteraction','lastMsgAt','subtract','minutes','length','map','info','[CHAT]\x20Interactions\x20to\x20close:','join','update','timeout','format','YYYY-MM-DD\x20HH:mm:ss','emit','chatInteraction:update','catch','[CHAT]\x20Error\x20closing\x20interactions','inspect'];(function(_0x2320c7,_0x5e1529){var _0x13cf24=function(_0x174647){while(--_0x174647){_0x2320c7['push'](_0x2320c7['shift']());}};_0x13cf24(++_0x5e1529);}(_0x3d7b,0x12a));var _0xb3d7=function(_0x2f40e1,_0x4ec5c1){_0x2f40e1=_0x2f40e1-0x0;var _0x55294a=_0x3d7b[_0x2f40e1];return _0x55294a;};'use strict';var _=require('lodash');var moment=require(_0xb3d7('0x0'));var Redis=require(_0xb3d7('0x1'));var util=require(_0xb3d7('0x2'));var config=require(_0xb3d7('0x3'));var db=require(_0xb3d7('0x4'))['db'];var logger=require(_0xb3d7('0x5'))(_0xb3d7('0x6'));config[_0xb3d7('0x7')]=_[_0xb3d7('0x8')](config['redis'],{'host':'localhost','port':0x18eb});var io=require(_0xb3d7('0x9'))(new Redis(config[_0xb3d7('0x7')]));function closeInteractions(){var _0x1bd754=0x0;var _0xbc5c0e=[];return db[_0xb3d7('0xa')][_0xb3d7('0xb')]({'raw':!![],'attributes':['id',_0xb3d7('0xc')],'where':{'id':0x1}})[_0xb3d7('0xd')](function(_0x2d4205){_0x1bd754=_0x2d4205[_0xb3d7('0xc')];if(_0x1bd754){return db[_0xb3d7('0xe')]['findAll']({'raw':!![],'attributes':['id',_0xb3d7('0xf')],'where':{'closed':![],'lastMsgAt':{'$lt':moment()[_0xb3d7('0x10')](_0x2d4205[_0xb3d7('0xc')],_0xb3d7('0x11'))}}});}else{return[];}})['then'](function(_0x16d8d8){if(_0x16d8d8&&_0x16d8d8[_0xb3d7('0x12')]){_0xbc5c0e=_[_0xb3d7('0x13')](_0x16d8d8||[],'id');logger[_0xb3d7('0x14')](_0xb3d7('0x15'),_0xbc5c0e[_0xb3d7('0x16')]());return db[_0xb3d7('0xe')][_0xb3d7('0x17')]({'closeReason':'system','disposition':_0xb3d7('0x18'),'closed':!![],'closedAt':moment()[_0xb3d7('0x19')](_0xb3d7('0x1a'))},{'where':{'id':_0xbc5c0e}});}})[_0xb3d7('0xd')](function(){if(_0xbc5c0e&&_0xbc5c0e[_0xb3d7('0x12')]){logger[_0xb3d7('0x14')]('[CHAT]\x20Sending\x20updates\x20for\x20interactions:',_0xbc5c0e[_0xb3d7('0x16')]());for(var _0x155bd0=0x0;_0x155bd0<_0xbc5c0e['length'];_0x155bd0++){io[_0xb3d7('0x1b')](_0xb3d7('0x1c'),{'id':_0xbc5c0e[_0x155bd0],'closed':!![]});}}})[_0xb3d7('0x1d')](function(_0x31696b){logger['error'](_0xb3d7('0x1e'),_0x31696b?util[_0xb3d7('0x1f')](_0x31696b,{'showHidden':![],'depth':null}):'');});}exports[_0xb3d7('0x20')]=function(){setInterval(function(){return closeInteractions();},0x3c*0x3e8);return closeInteractions();};