import platform import sys from fastapi import APIRouter, Depends from sqlalchemy.orm import Session from api.schemas.health import HealthResponse from db.database import get_db router = APIRouter() @router.get("/health", response_model=HealthResponse) def health_check(db: Session = Depends(get_db)): """ Health check endpoint that verifies the API is running correctly and can connect to the database """ # Verify database connection try: # Just run a simple query to verify DB connection db.execute("SELECT 1") db_status = "healthy" except (RuntimeError, ConnectionError) as e: # Catch specific exceptions rather than a broad Exception db_status = f"unhealthy: {str(e)}" return HealthResponse( status="healthy", version="0.1.0", details={ "database": db_status, "python_version": sys.version, "platform": platform.platform(), }, )