Dateien nach "backend/src/routes" hochladen
This commit is contained in:
@@ -39,8 +39,7 @@ router.get('/users', authenticate, requireAdmin, (req, res) => {
|
||||
const links = db.prepare('SELECT COUNT(*) c FROM quick_links WHERE user_id=?').get(u.id).c;
|
||||
const files = db.prepare('SELECT COUNT(*) c FROM files WHERE user_id=?').get(u.id).c;
|
||||
const noteLen = (db.prepare('SELECT content FROM notes WHERE user_id=?').get(u.id)?.content || '').length;
|
||||
// iCals are stored in localStorage per user - not in DB, so we can't count them server-side
|
||||
const icals = 0;
|
||||
const icals = db.prepare('SELECT COUNT(*) c FROM calendar_feeds WHERE user_id=?').get(u.id).c;
|
||||
return { ...u, archiv, bestellung, todos, links, files, icals, noteLen };
|
||||
});
|
||||
res.json(stats);
|
||||
|
||||
@@ -61,3 +61,24 @@ router.get('/fetch', authenticate, async (req, res) => {
|
||||
});
|
||||
|
||||
module.exports = router;
|
||||
|
||||
// ── iCal Feed CRUD (gespeichert in DB statt localStorage) ────────────────────
|
||||
const db = require('../db');
|
||||
const { authenticate: auth } = require('../middleware/auth');
|
||||
|
||||
router.get('/feeds', auth, (req, res) => {
|
||||
res.json(db.prepare('SELECT * FROM calendar_feeds WHERE user_id=? ORDER BY id').all(req.user.id));
|
||||
});
|
||||
|
||||
router.post('/feeds', auth, (req, res) => {
|
||||
const { name, url, color='#4ecdc4' } = req.body;
|
||||
if (!name?.trim() || !url?.trim()) return res.status(400).json({ error: 'Name und URL erforderlich' });
|
||||
const r = db.prepare('INSERT INTO calendar_feeds (user_id,name,url,color) VALUES (?,?,?,?)').run(req.user.id, name.trim(), url.trim(), color);
|
||||
res.json(db.prepare('SELECT * FROM calendar_feeds WHERE id=?').get(r.lastInsertRowid));
|
||||
});
|
||||
|
||||
router.delete('/feeds/:id', auth, (req, res) => {
|
||||
const r = db.prepare('DELETE FROM calendar_feeds WHERE id=? AND user_id=?').run(req.params.id, req.user.id);
|
||||
if (!r.changes) return res.status(404).json({ error: 'Nicht gefunden' });
|
||||
res.json({ success: true });
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user