feat(calendar): add ICS subscription routes and sync integration

- Add CRUD routes for /subscriptions (GET, POST, PATCH, DELETE)
- Add manual sync trigger: POST /subscriptions/:id/sync
- Add ICS visibility filter to GET /calendar (private vs. shared)
- Set user_modified=1 on PUT /:id for ICS events
- Add POST /:id/reset to clear user_modified on ICS events
- Wire icsSubscription.sync() into runSync() in server/index.js
This commit is contained in:
Ulas Kalayci
2026-04-20 23:53:53 +02:00
parent 3445e504a2
commit 466860074a
2 changed files with 147 additions and 3 deletions
+3
View File
@@ -14,6 +14,7 @@ import { router as authRouter, sessionMiddleware, requireAuth } from './auth.js'
import { csrfMiddleware } from './middleware/csrf.js';
import * as googleCalendar from './services/google-calendar.js';
import * as appleCalendar from './services/apple-calendar.js';
import * as icsSubscription from './services/ics-subscription.js';
import dashboardRouter from './routes/dashboard.js';
import tasksRouter from './routes/tasks.js';
import shoppingRouter from './routes/shopping.js';
@@ -222,6 +223,8 @@ async function runSync() {
if (appleConfigured) {
appleCalendar.sync().catch((e) => logSync.error('Apple Fehler:', e.message));
}
icsSubscription.sync().catch((e) => logSync.error('ICS Fehler:', e.message));
}
// --------------------------------------------------------