From 0a5b3775a76d6f304d25fdd7d458261344df9c82 Mon Sep 17 00:00:00 2001 From: ChrisChrome Date: Sun, 25 Jan 2026 15:00:32 -0700 Subject: [PATCH] Add route to get stuff --- index.js | 7 +++++++ routes/api/getAll.js | 15 +++++++++++++++ routes/api/heartbeat.js | 2 +- routes/api/startup.js | 2 +- 4 files changed, 24 insertions(+), 2 deletions(-) create mode 100644 routes/api/getAll.js diff --git a/index.js b/index.js index 9f42a94..17722be 100644 --- a/index.js +++ b/index.js @@ -37,6 +37,13 @@ app.use((req, res, next) => { next(); }) +global.auth = (req, res, next) => { + if (process.env.API_KEY && req.headers['Authorization'] === process.env.API_KEY) { + return next(); + } + return res.status(401).json({ error: 'Unauthorized' }); +} + // Load routes from routes/* recursively const fs = require('fs'); const path = require('path'); diff --git a/routes/api/getAll.js b/routes/api/getAll.js new file mode 100644 index 0000000..2f9c5ba --- /dev/null +++ b/routes/api/getAll.js @@ -0,0 +1,15 @@ +const express = require('express'); +const router = express.Router(); +const db = global.db; + +router.get("/", global.auth, async (req, res) => { + db.all("SELECT * FROM analytics", [], (err, rows) => { + if (err) { + console.error('Failed to retrieve analytics data', err); + return res.status(500).json({ error: 'Database error' }); + } + return res.status(200).json({ data: rows }); + }); +}); + +module.exports = router; \ No newline at end of file diff --git a/routes/api/heartbeat.js b/routes/api/heartbeat.js index 13a46e1..f109af5 100644 --- a/routes/api/heartbeat.js +++ b/routes/api/heartbeat.js @@ -2,7 +2,7 @@ const express = require('express'); const router = express.Router(); const db = global.db; -router.post('/', async (req, res) => { +router.post('/', global.auth, async (req, res) => { const { serverId, totalPlayers, currentPlayers, duration } = req.body; if (!serverId || totalPlayers === undefined || currentPlayers === undefined || duration === undefined) { return res.status(400).json({ error: 'Missing required fields' }); diff --git a/routes/api/startup.js b/routes/api/startup.js index 77960c9..1b7ecce 100644 --- a/routes/api/startup.js +++ b/routes/api/startup.js @@ -2,7 +2,7 @@ const express = require('express'); const router = express.Router(); const db = global.db; -router.post('/', async (req, res) => { +router.post('/', global.auth, async (req, res) => { const { serverId, serverStartTime, revision, placeId} = req.body; console.log('Received startup data:', req.body); if (serverId === undefined || serverStartTime === undefined || revision === undefined || placeId === undefined) {