39 lines
1.3 KiB
JavaScript
39 lines
1.3 KiB
JavaScript
//environment variables
|
|
require('dotenv').config();
|
|
|
|
//libraries
|
|
let CronJob = require('cron').CronJob;
|
|
|
|
//utilities
|
|
let { log } = require('../common/utilities.js');
|
|
|
|
const runDailyDiagnostics = (connection) => {
|
|
let dailyJob = new CronJob('0 0 * * * *', () => {
|
|
let query = 'INSERT INTO diagnostics (playerCount, totalGold, totalRecruitments, totalDeaths, totalCombats) VALUES ((SELECT COUNT(*) FROM profiles), (SELECT SUM(gold) FROM profiles), (IFNULL((SELECT SUM(quantity) FROM diagnosticsEvents WHERE eventName = "recruit"), 0)), (IFNULL((SELECT SUM(quantity) FROM diagnosticsEvents WHERE eventName = "death"), 0)), (SELECT COUNT(*) FROM pastCombat WHERE eventTime >= DATE_SUB(CURRENT_TIMESTAMP(), INTERVAL 1 DAY)));';
|
|
connection.query(query, (err) => {
|
|
if (err) throw err;
|
|
|
|
let query = 'DELETE FROM diagnosticsEvents;';
|
|
connection.query(query, (err) => {
|
|
if (err) throw err;
|
|
|
|
log('Daily diagnostics taken');
|
|
});
|
|
});
|
|
});
|
|
|
|
dailyJob.start();
|
|
};
|
|
|
|
//current name parameters: 'recruit', 'death'
|
|
const logDiagnostics = (connection, name, quantity) => {
|
|
let query = 'INSERT INTO diagnosticsEvents (eventName, quantity) VALUES (?, ?);';
|
|
connection.query(query, [name, quantity], (err) => {
|
|
if (err) throw err;
|
|
});
|
|
};
|
|
|
|
module.exports = {
|
|
runDailyDiagnostics: runDailyDiagnostics,
|
|
logDiagnostics: logDiagnostics
|
|
}; |