From 8a44e170da08e4af7c828ce4b3ad29d805664cef Mon Sep 17 00:00:00 2001 From: Miodec Date: Sat, 12 Jun 2021 13:39:30 +0100 Subject: [PATCH] added public stats dao --- backend/dao/publicstatsDAO.js | 32 ++++++++++++++++++++++++++++++++ backend/handlers/stats.js | 26 -------------------------- 2 files changed, 32 insertions(+), 26 deletions(-) create mode 100644 backend/dao/publicstatsDAO.js delete mode 100644 backend/handlers/stats.js diff --git a/backend/dao/publicstatsDAO.js b/backend/dao/publicstatsDAO.js new file mode 100644 index 000000000..6657db6f6 --- /dev/null +++ b/backend/dao/publicstatsDAO.js @@ -0,0 +1,32 @@ +const MonkeyError = require("../handlers/error"); +const { mongoDB } = require("../init/mongodb"); +const { roundTo2 } = require("../handlers/misc"); + +class PublicStatsDAO { + + static async increment(started, completed, time){ + time = roundTo2(time); + await mongoDB() + .collection("users") + .updateOne( + { name: 'startedTests' }, + { $inc: { value: started } } + ); + await mongoDB() + .collection("users") + .updateOne( + { name: 'completedTests' }, + { $inc: { value: completed } } + ); + await mongoDB() + .collection("users") + .updateOne( + { name: 'timeTyping' }, + { $inc: { value: time } } + ); + return true; + } + +} + +module.exports = PublicStatsDAO; diff --git a/backend/handlers/stats.js b/backend/handlers/stats.js deleted file mode 100644 index 825daf00c..000000000 --- a/backend/handlers/stats.js +++ /dev/null @@ -1,26 +0,0 @@ -async function incrementPublicTypingStats(started, completed, time) { - try { - time = roundTo2(time); - Stats.findOne({}, (err, stats) => { - stats.completedTests += completed; - stats.startedTests += started; - stats.timeTyping += time; - stats.save(); - }); - } catch (e) { - console.error(`Error while incrementing public stats: ${e}`); - } -} - - -// Initialize stats database if none exists -Stats.findOne((err, stats) => { - if (!stats) { - let newStats = new Stats({ - completedTests: 0, - startedTests: 0, - timeTyping: 0, - }); - newStats.save(); - } -});