99534548b43f4b624623e0ade76689a8a3db4826
[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 _0x808f=['then','length','map','[CHAT]\x20Interactions\x20to\x20close:','update','timeout','YYYY-MM-DD\x20HH:mm:ss','chatInteraction:update','catch','error','lodash','moment','ioredis','util','../../config/environment','../logger','schedule','redis','defaults','localhost','Setting','chatTimeout','ChatInteraction','lastMsgAt','subtract'];(function(_0x19e35c,_0x29cd1e){var _0x3e1fe8=function(_0x17258b){while(--_0x17258b){_0x19e35c['push'](_0x19e35c['shift']());}};_0x3e1fe8(++_0x29cd1e);}(_0x808f,0xeb));var _0xf808=function(_0x1c479a,_0x2d4fb2){_0x1c479a=_0x1c479a-0x0;var _0x94bde3=_0x808f[_0x1c479a];return _0x94bde3;};'use strict';var _=require(_0xf808('0x0'));var moment=require(_0xf808('0x1'));var Redis=require(_0xf808('0x2'));var util=require(_0xf808('0x3'));var config=require(_0xf808('0x4'));var db=require('../../mysqldb')['db'];var logger=require(_0xf808('0x5'))(_0xf808('0x6'));config[_0xf808('0x7')]=_[_0xf808('0x8')](config['redis'],{'host':_0xf808('0x9'),'port':0x18eb});var io=require('socket.io-emitter')(new Redis(config[_0xf808('0x7')]));function closeInteractions(){var _0x39deb0=0x0;var _0x336fb0=[];return db[_0xf808('0xa')]['find']({'raw':!![],'attributes':['id',_0xf808('0xb')],'where':{'id':0x1}})['then'](function(_0x3fe642){_0x39deb0=_0x3fe642[_0xf808('0xb')];if(_0x39deb0){return db[_0xf808('0xc')]['findAll']({'raw':!![],'attributes':['id',_0xf808('0xd')],'where':{'closed':![],'lastMsgAt':{'$lt':moment()[_0xf808('0xe')](_0x3fe642[_0xf808('0xb')],'minutes')}}});}else{return[];}})[_0xf808('0xf')](function(_0x49de42){if(_0x49de42&&_0x49de42[_0xf808('0x10')]){_0x336fb0=_[_0xf808('0x11')](_0x49de42||[],'id');logger['info'](_0xf808('0x12'),_0x336fb0['join']());return db[_0xf808('0xc')][_0xf808('0x13')]({'closeReason':'system','disposition':_0xf808('0x14'),'closed':!![],'closedAt':moment()['format'](_0xf808('0x15'))},{'where':{'id':_0x336fb0}});}})[_0xf808('0xf')](function(){if(_0x336fb0&&_0x336fb0['length']){logger['info']('[CHAT]\x20Sending\x20updates\x20for\x20interactions:',_0x336fb0['join']());for(var _0x4f7110=0x0;_0x4f7110<_0x336fb0[_0xf808('0x10')];_0x4f7110++){io['emit'](_0xf808('0x16'),{'id':_0x336fb0[_0x4f7110],'closed':!![]});}}})[_0xf808('0x17')](function(_0xaaf99f){logger[_0xf808('0x18')]('[CHAT]\x20Error\x20closing\x20interactions',_0xaaf99f?util['inspect'](_0xaaf99f,{'showHidden':![],'depth':null}):'');});}exports['start']=function(){setInterval(function(){return closeInteractions();},0x3c*0x3e8);return closeInteractions();};