GitHub Actions
Sync from GitHub (excluding README)
7a64905
const express = require('express');
const { VALID_EVENT_TYPES } = require('../constants/eventTypes');
const router = express.Router();
function createEventsRouter(db, manager, requireAnyKey) {
router.post('/', requireAnyKey, async (req, res) => {
try {
const event = req.body;
if (!event.event_type || !event.server_name || !event.timestamp || !event.data) {
return res.status(400).json({ detail: 'Missing required event fields' });
}
if (!VALID_EVENT_TYPES.has(event.event_type)) {
return res.status(400).json({ detail: `Invalid event_type: ${event.event_type}` });
}
db.logEvent(event, req.apiKey.id);
const message = {
type: 'minecraft_event',
event: event,
source_key_id_prefix: req.apiKey.id.substring(0, 8)
};
await manager.broadcastToAll(message);
res.json({ message: 'Event received and broadcasted' });
} catch (error) {
res.status(500).json({ detail: error.message });
}
});
return router;
}
module.exports = createEventsRouter;