64 lines
1.9 KiB
JavaScript
64 lines
1.9 KiB
JavaScript
const express = require("express");
|
|
const router = express.Router();
|
|
const db = require("../database/database");
|
|
|
|
/* ================================
|
|
GET /api/daily/status
|
|
Gibt zurück welche Events der User heute schon erledigt hat
|
|
Response: { completed: [1, 3] } ← Array der erledigten event_ids
|
|
================================ */
|
|
router.get("/daily/status", async (req, res) => {
|
|
if (!req.session?.user) return res.status(401).json({ error: "Nicht eingeloggt" });
|
|
|
|
const userId = req.session.user.id;
|
|
try {
|
|
const [rows] = await db.query(
|
|
"SELECT event_id FROM daily_completions WHERE user_id = ?",
|
|
[userId]
|
|
);
|
|
res.json({ completed: rows.map(r => r.event_id) });
|
|
} catch (err) {
|
|
console.error(err);
|
|
res.status(500).json({ error: "DB Fehler" });
|
|
}
|
|
});
|
|
|
|
/* ================================
|
|
POST /api/daily/complete
|
|
Markiert ein Daily als erledigt
|
|
Body: { eventId: 1 }
|
|
Response: { success: true } oder { error: "bereits erledigt" }
|
|
================================ */
|
|
router.post("/daily/complete", async (req, res) => {
|
|
if (!req.session?.user) return res.status(401).json({ error: "Nicht eingeloggt" });
|
|
|
|
const userId = req.session.user.id;
|
|
const eventId = req.body?.eventId;
|
|
|
|
if (!eventId) return res.status(400).json({ error: "eventId fehlt" });
|
|
|
|
try {
|
|
// Prüfen ob heute schon erledigt
|
|
const [[existing]] = await db.query(
|
|
"SELECT id FROM daily_completions WHERE user_id = ? AND event_id = ?",
|
|
[userId, eventId]
|
|
);
|
|
|
|
if (existing) {
|
|
return res.status(409).json({ error: "bereits erledigt" });
|
|
}
|
|
|
|
await db.query(
|
|
"INSERT INTO daily_completions (user_id, event_id) VALUES (?, ?)",
|
|
[userId, eventId]
|
|
);
|
|
|
|
res.json({ success: true });
|
|
} catch (err) {
|
|
console.error(err);
|
|
res.status(500).json({ error: "DB Fehler" });
|
|
}
|
|
});
|
|
|
|
module.exports = router;
|