Coverage for backend / app / demo / routers.py: 100%
12 statements
« prev ^ index » next coverage.py v7.13.5, created at 2026-03-17 21:34 +0000
« prev ^ index » next coverage.py v7.13.5, created at 2026-03-17 21:34 +0000
1"""Demo cleanup endpoint."""
3from fastapi import APIRouter, Depends, HTTPException, status
4from sqlalchemy.orm import Session
6from app import models, database, base_schemas
7from app.core.oauth2 import get_current_user
8from app.demo.seed import delete_user
10demo_router = APIRouter(prefix="/demo", tags=["Demo"])
13@demo_router.post("/cleanup", status_code=status.HTTP_200_OK, response_model=base_schemas.GenericResponse)
14def demo_cleanup(
15 current_user: models.User = Depends(get_current_user),
16 db: Session = Depends(database.get_db),
17) -> dict:
18 """Clean up a demo user and all their data.
19 Only accessible by demo users.
20 :param current_user: The current authenticated demo user
21 :param db: The database session (demo schema)
22 :returns: Success response"""
24 if not current_user.is_demo:
25 raise HTTPException(
26 status_code=status.HTTP_403_FORBIDDEN,
27 detail="This endpoint is only available for demo users.",
28 )
30 delete_user(db, current_user.id)
31 return dict(success=True, message="Demo data cleaned up successfully.")