feat(backend): implement REST API for races calendar

Express + TypeScript backend with PostgreSQL: CRUD endpoints for /races (GET list with year/month filters, GET by id, POST, PATCH, DELETE), health/readiness probes, SQL migration runner, seed script with upsert from CSV, camelCase/snake_case mapper, CORS, env validation, docker-compose, and API docs for frontend.

Made-with: Cursor
This commit is contained in:
Anton
2026-04-01 14:47:53 +03:00
parent 88a448dd8e
commit 698ae37553
17 changed files with 2242 additions and 0 deletions

View File

@@ -0,0 +1,19 @@
import { Router, Request, Response } from "express";
import { checkDbConnection } from "../db";
const router = Router();
router.get("/health", (_req: Request, res: Response) => {
res.json({ status: "ok" });
});
router.get("/ready", async (_req: Request, res: Response) => {
const dbOk = await checkDbConnection();
if (dbOk) {
res.json({ status: "ready", db: "connected" });
} else {
res.status(503).json({ error: "database_unavailable", db: "disconnected" });
}
});
export default router;