Spaces:
Sleeping
Sleeping
| from fastapi import APIRouter, Depends, HTTPException, status | |
| from app.db.supabase import supabase | |
| from app.schemas.project import Project, ProjectCreate | |
| from app.dependencies.admin_auth import admin_auth | |
| router = APIRouter() | |
| def list_projects(): | |
| res = supabase.table("projects").select("*").order("created_at", desc=True).execute() | |
| return res.data | |
| def get_project(project_id: str): | |
| res = supabase.table("projects").select("*").eq("id", project_id).execute() | |
| if not res.data: | |
| raise HTTPException(status_code=404, detail="Project not found") | |
| return res.data[0] | |
| def create_project(project: ProjectCreate): | |
| res = supabase.table("projects").insert(project.model_dump()).execute() | |
| if not res.data: | |
| raise HTTPException(status_code=400, detail="Failed to create project") | |
| return res.data[0] | |
| def update_project(project_id: str, project: ProjectCreate): | |
| res = supabase.table("projects").update(project.model_dump()).eq("id", project_id).execute() | |
| if not res.data: | |
| raise HTTPException(status_code=404, detail="Project not found or update failed") | |
| return res.data[0] | |
| def delete_project(project_id: str): | |
| res = supabase.table("projects").delete().eq("id", project_id).execute() | |
| if not res.data: | |
| raise HTTPException(status_code=404, detail="Project not found or delete failed") | |
| return {"detail": "Project deleted successfully"} | |