Roblox-Analytics/routes/api/startup.js
2026-01-25 15:19:22 -07:00

26 lines
1.1 KiB
JavaScript

const express = require('express');
const router = express.Router();
const db = global.db;
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) {
return res.status(400).json({ error: 'Missing required fields' });
}
console.log(`Recording startup: ${serverId} at ${serverStartTime} for place ${placeId} rev ${revision}`);
const firstHeartbeat = Date.now() + ((parseInt(process.env.MAX_HEARTBEAT, 10) || 60) * 1000);
db.run(
'INSERT INTO analytics (id, placeId, revision, startupTime, heartbeatCheck, allPlayers) VALUES (?, ?, ?, ?, ?, ?)',
[serverId, placeId, revision, serverStartTime, firstHeartbeat / 1000, JSON.stringify({})],
function(err) {
if (err) {
console.error('Failed to record startup data', err);
return res.status(500).json({ error: 'Database error' });
}
return res.status(200).json({ message: 'Startup data recorded' });
}
)
});
module.exports = router;