Spaces:
Sleeping
Sleeping
| from fastapi import APIRouter, Depends, HTTPException | |
| from app.db.supabase import supabase | |
| from app.schemas.event import Event, EventCreate | |
| from app.dependencies.admin_auth import admin_auth | |
| router = APIRouter() | |
| def list_events(): | |
| res = supabase.table("events").select("*").order("date", desc=True).execute() | |
| return res.data | |
| def get_event(event_id: int): | |
| res = supabase.table("events").select("*").eq("id", event_id).execute() | |
| if not res.data: | |
| raise HTTPException(status_code=404, detail="Event not found") | |
| return res.data[0] | |
| def create_event(event: EventCreate): | |
| data = event.model_dump() | |
| data['date'] = data['date'].isoformat() | |
| res = supabase.table("events").insert(data).execute() | |
| if not res.data: | |
| raise HTTPException(status_code=400, detail="Failed to create event") | |
| return res.data[0] | |
| def update_event(event_id: int, event: EventCreate): | |
| data = event.model_dump() | |
| data['date'] = data['date'].isoformat() | |
| res = supabase.table("events").update(data).eq("id", event_id).execute() | |
| if not res.data: | |
| raise HTTPException(status_code=404, detail="Event not found or update failed") | |
| return res.data[0] | |
| def delete_event(event_id: int): | |
| res = supabase.table("events").delete().eq("id", event_id).execute() | |
| if not res.data: | |
| raise HTTPException(status_code=404, detail="Event not found or delete failed") | |
| return {"detail": "Event deleted successfully"} | |