Files
calchat/apps/server/src/routes/index.ts
Linus Waldowsky 325246826a feat: add CalDAV synchronization with automatic sync
- Add CaldavService with tsdav/ical.js for CalDAV server communication
- Add CaldavController, CaldavRepository, and caldav routes
- Add client-side CaldavConfigService with sync(), config CRUD
- Add CalDAV settings UI with config load/save in settings screen
- Sync on login, auto-login (AuthGuard), periodic timer (calendar), and sync button
- Push single events to CalDAV on server-side create/update/delete
- Push all events to CalDAV after chat event confirmation
- Refactor ChatService to use EventService instead of direct EventRepository
- Rename CalDav/calDav to Caldav/caldav for consistent naming
- Add Radicale Docker setup for local CalDAV testing
- Update PlantUML diagrams and CLAUDE.md with CalDAV architecture
2026-02-08 19:24:59 +01:00

34 lines
1019 B
TypeScript

import { Router } from "express";
import { createAuthRoutes } from "./auth.routes";
import { createChatRoutes } from "./chat.routes";
import { createEventRoutes } from "./event.routes";
import {
AuthController,
ChatController,
EventController,
CaldavController
} from "../controllers";
import { createCaldavRoutes } from "./caldav.routes";
export interface Controllers {
authController: AuthController;
chatController: ChatController;
eventController: EventController;
caldavController: CaldavController;
}
export function createRoutes(controllers: Controllers): Router {
const router = Router();
router.use("/auth", createAuthRoutes(controllers.authController));
router.use("/chat", createChatRoutes(controllers.chatController));
router.use("/events", createEventRoutes(controllers.eventController));
router.use("/caldav", createCaldavRoutes(controllers.caldavController));
return router;
}
export * from "./auth.routes";
export * from "./chat.routes";
export * from "./event.routes";