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