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