Built motion from commit 5ba5b610.|2.5.33
[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 _0xfac3=['chatInteraction:update','catch','error','inspect','moment','ioredis','util','../../config/environment','../logger','schedule','redis','defaults','Setting','find','chatTimeout','then','ChatInteraction','lastMsgAt','minutes','length','map','info','[CHAT]\x20Interactions\x20to\x20close:','join','update','timeout','YYYY-MM-DD\x20HH:mm:ss','[CHAT]\x20Sending\x20updates\x20for\x20interactions:'];(function(_0x26c99a,_0x391482){var _0x578783=function(_0x2b95ce){while(--_0x2b95ce){_0x26c99a['push'](_0x26c99a['shift']());}};_0x578783(++_0x391482);}(_0xfac3,0xac));var _0x3fac=function(_0x2c1fdb,_0x23f716){_0x2c1fdb=_0x2c1fdb-0x0;var _0x230235=_0xfac3[_0x2c1fdb];return _0x230235;};'use strict';var _=require('lodash');var moment=require(_0x3fac('0x0'));var Redis=require(_0x3fac('0x1'));var util=require(_0x3fac('0x2'));var config=require(_0x3fac('0x3'));var db=require('../../mysqldb')['db'];var logger=require(_0x3fac('0x4'))(_0x3fac('0x5'));config[_0x3fac('0x6')]=_[_0x3fac('0x7')](config[_0x3fac('0x6')],{'host':'localhost','port':0x18eb});var io=require('socket.io-emitter')(new Redis(config['redis']));function closeInteractions(){var _0x2b298b=0x0;var _0x223a27=[];return db[_0x3fac('0x8')][_0x3fac('0x9')]({'raw':!![],'attributes':['id',_0x3fac('0xa')],'where':{'id':0x1}})[_0x3fac('0xb')](function(_0x280e37){_0x2b298b=_0x280e37[_0x3fac('0xa')];if(_0x2b298b){return db[_0x3fac('0xc')]['findAll']({'raw':!![],'attributes':['id',_0x3fac('0xd')],'where':{'closed':![],'lastMsgAt':{'$lt':moment()['subtract'](_0x280e37[_0x3fac('0xa')],_0x3fac('0xe'))}}});}else{return[];}})[_0x3fac('0xb')](function(_0x31c304){if(_0x31c304&&_0x31c304[_0x3fac('0xf')]){_0x223a27=_[_0x3fac('0x10')](_0x31c304||[],'id');logger[_0x3fac('0x11')](_0x3fac('0x12'),_0x223a27[_0x3fac('0x13')]());return db[_0x3fac('0xc')][_0x3fac('0x14')]({'closeReason':'system','disposition':_0x3fac('0x15'),'closed':!![],'closedAt':moment()['format'](_0x3fac('0x16'))},{'where':{'id':_0x223a27}});}})['then'](function(){if(_0x223a27&&_0x223a27[_0x3fac('0xf')]){logger[_0x3fac('0x11')](_0x3fac('0x17'),_0x223a27['join']());for(var _0x4ba94f=0x0;_0x4ba94f<_0x223a27['length'];_0x4ba94f++){io['emit'](_0x3fac('0x18'),{'id':_0x223a27[_0x4ba94f],'closed':!![]});}}})[_0x3fac('0x19')](function(_0xe2525b){logger[_0x3fac('0x1a')]('[CHAT]\x20Error\x20closing\x20interactions',_0xe2525b?util[_0x3fac('0x1b')](_0xe2525b,{'showHidden':![],'depth':null}):'');});}exports['start']=function(){setInterval(function(){return closeInteractions();},0x3c*0x3e8);return closeInteractions();};