express: readying for multiple results

Signed-off-by: Vincent Batts <vbatts@hashbangbash.com>
This commit is contained in:
Vincent Batts 2023-09-15 11:20:10 -04:00
parent 0e4212d114
commit e0bf0d8609
Signed by: vbatts
GPG key ID: E30EFAA812C6E5ED

View file

@ -102,26 +102,33 @@ app.post("/recordButtonClick", (req, res) => {
});
// Route to show the current results from SQLite
app.get("/results", (req, res) => {
app.get("/results", async (req, res) => {
try {
const results = { count: {} };
const getCount = new Promise((resolve, reject) => {
db.all(
"SELECT animal_name, button_name, COUNT(*) as count FROM button_clicks GROUP BY button_name, animal_name",
(err, rows) => {
if (err) {
console.error("Error fetching results:", err.message);
res.status(500).json({ error: "Internal server error" });
reject("getCount: "+ err.message);
} else {
const results = { count: {} };
rows.forEach((row) => {
if (typeof results.count[row.animal_name] == "undefined") {
results.count[row.animal_name] = {};
}
results.count[row.animal_name][row.button_name] = row.count;
});
res.json(results);
resolve();
}
},
);
});
const getAvgTime = new Promise((resolve, reject) => {
//...
resolve();
})
await Promise.all([getCount, getAvgTime]);
res.json(results);
} catch (error) {
console.error("Error fetching results:", error);
res.status(500).json({ error: "Internal server error" });