Created diagnostic tools
This commit is contained in:
@@ -0,0 +1,39 @@
|
||||
//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
|
||||
};
|
||||
Reference in New Issue
Block a user