60d88e926295c28c1c48737057b24bef6ff5fcef
[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 _0xafba=['moment','util','../../mysqldb','schedule','defaults','localhost','socket.io-emitter','Setting','find','chatTimeout','then','findAll','lastMsgAt','subtract','length','[CHAT]\x20Interactions\x20to\x20close:','join','update','system','timeout','YYYY-MM-DD\x20HH:mm:ss','info','[CHAT]\x20Sending\x20updates\x20for\x20interactions:','emit','chatInteraction:update','catch','error','[CHAT]\x20Error\x20closing\x20interactions','inspect','start','lodash'];(function(_0x163e36,_0x1a0fc9){var _0x500fc1=function(_0x4144d6){while(--_0x4144d6){_0x163e36['push'](_0x163e36['shift']());}};_0x500fc1(++_0x1a0fc9);}(_0xafba,0xb9));var _0xaafb=function(_0x10efce,_0x5004cb){_0x10efce=_0x10efce-0x0;var _0x4c5573=_0xafba[_0x10efce];return _0x4c5573;};'use strict';var _=require(_0xaafb('0x0'));var moment=require(_0xaafb('0x1'));var Redis=require('ioredis');var util=require(_0xaafb('0x2'));var config=require('../../config/environment');var db=require(_0xaafb('0x3'))['db'];var logger=require('../logger')(_0xaafb('0x4'));config['redis']=_[_0xaafb('0x5')](config['redis'],{'host':_0xaafb('0x6'),'port':0x18eb});var io=require(_0xaafb('0x7'))(new Redis(config['redis']));function closeInteractions(){var _0x481cc2=0x0;var _0x34ed61=[];return db[_0xaafb('0x8')][_0xaafb('0x9')]({'raw':!![],'attributes':['id',_0xaafb('0xa')],'where':{'id':0x1}})[_0xaafb('0xb')](function(_0x15225c){_0x481cc2=_0x15225c[_0xaafb('0xa')];if(_0x481cc2){return db['ChatInteraction'][_0xaafb('0xc')]({'raw':!![],'attributes':['id',_0xaafb('0xd')],'where':{'closed':![],'lastMsgAt':{'$lt':moment()[_0xaafb('0xe')](_0x15225c[_0xaafb('0xa')],'minutes')}}});}else{return[];}})[_0xaafb('0xb')](function(_0x3ecd6a){if(_0x3ecd6a&&_0x3ecd6a[_0xaafb('0xf')]){_0x34ed61=_['map'](_0x3ecd6a||[],'id');logger['info'](_0xaafb('0x10'),_0x34ed61[_0xaafb('0x11')]());return db['ChatInteraction'][_0xaafb('0x12')]({'closeReason':_0xaafb('0x13'),'disposition':_0xaafb('0x14'),'closed':!![],'closedAt':moment()['format'](_0xaafb('0x15'))},{'where':{'id':_0x34ed61}});}})['then'](function(){if(_0x34ed61&&_0x34ed61[_0xaafb('0xf')]){logger[_0xaafb('0x16')](_0xaafb('0x17'),_0x34ed61[_0xaafb('0x11')]());for(var _0x5c3ff8=0x0;_0x5c3ff8<_0x34ed61['length'];_0x5c3ff8++){io[_0xaafb('0x18')](_0xaafb('0x19'),{'id':_0x34ed61[_0x5c3ff8],'closed':!![]});}}})[_0xaafb('0x1a')](function(_0x374814){logger[_0xaafb('0x1b')](_0xaafb('0x1c'),_0x374814?util[_0xaafb('0x1d')](_0x374814,{'showHidden':![],'depth':null}):'');});}exports[_0xaafb('0x1e')]=function(){setInterval(function(){return closeInteractions();},0x3c*0x3e8);return closeInteractions();};