Spaces:
Sleeping
Sleeping
File size: 1,256 Bytes
2bf7a2b 7a64905 2bf7a2b 7a64905 2bf7a2b | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | 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;
|