AI_Agent_Final_V2 / api /routes_directory.py
SarahXia0405's picture
Create routes_directory.py
10a4808 verified
# api/routes_directory.py
from __future__ import annotations
from fastapi import APIRouter, HTTPException
from pydantic import BaseModel
from api.store import load_courses, load_workspaces, enrich_workspace_course_info, rename_workspace
router = APIRouter()
@router.get("/api/course-directory")
def get_course_directory():
courses = load_courses()
return {"items": [c.model_dump() for c in courses]}
@router.get("/api/workspaces")
def get_workspaces():
courses = load_courses()
workspaces = load_workspaces()
workspaces = enrich_workspace_course_info(workspaces, courses)
return {"items": [w.model_dump() for w in workspaces]}
class RenameWorkspaceBody(BaseModel):
name: str
@router.post("/api/workspaces/{workspace_id}/rename")
def post_rename_workspace(workspace_id: str, body: RenameWorkspaceBody):
name = (body.name or "").strip()
if not name:
raise HTTPException(status_code=400, detail="name is required")
try:
w = rename_workspace(workspace_id, name)
return {"ok": True, "workspace": w.model_dump()}
except KeyError as e:
raise HTTPException(status_code=404, detail=str(e))