- Add environment-aware CORS and secure cookie support: * Add secureCookies config to env.ts based on SECURE_COOKIES env var or https detection * Integrate @elysiajs/cors with credentials and origin configuration * Update cookie helpers to use SameSite=None; Secure in production - Wrap expert review update and insert in database transaction for atomicity: * Ensures diagnosis status update and review insert succeed together * Rolls back both operations if either fails * Preserves behavior: only update if status is needs_review, return badRequest if no row updated Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
33 lines
980 B
TypeScript
33 lines
980 B
TypeScript
import { Elysia } from 'elysia';
|
|
import cors from '@elysiajs/cors';
|
|
import { env, assertRequiredEnv } from './config/env';
|
|
import { healthRoutes } from './routes/health';
|
|
import { statusRoutes } from './routes/status';
|
|
import { diseaseRoutes } from './routes/diseases';
|
|
import { classificationRoutes } from './routes/classifications';
|
|
import { diagnosisRoutes } from './routes/diagnoses';
|
|
import { dashboardRoutes } from './routes/dashboard';
|
|
import { authRoutes } from './routes/auth';
|
|
import { expertRoutes } from './routes/expert';
|
|
|
|
assertRequiredEnv();
|
|
|
|
const app = new Elysia()
|
|
.use(cors({
|
|
origin: env.webAppUrl,
|
|
credentials: true,
|
|
}))
|
|
.use(healthRoutes)
|
|
.use(statusRoutes)
|
|
.use(authRoutes)
|
|
.use(diseaseRoutes)
|
|
.use(classificationRoutes)
|
|
.use(diagnosisRoutes)
|
|
.use(expertRoutes)
|
|
.use(dashboardRoutes)
|
|
.listen(env.port);
|
|
|
|
console.log(`ZeaVis Edu API running at http://${app.server?.hostname}:${app.server?.port}`);
|
|
|
|
export type App = typeof app;
|