sukjenogi-backend/app/api/admin_board.py
2025-09-19 16:28:03 +09:00

28 lines
1.1 KiB
Python

from fastapi import APIRouter, Depends, HTTPException
from sqlalchemy.orm import Session
from app.core.database import get_db
from app.core.security_admin import get_current_admin
from app.models.board import Board
from app.schemas.board import BoardCreate, BoardOut
from app.models.admin_user import AdminUser
router = APIRouter()
@router.get("", response_model=list[BoardOut])
def list_boards(db: Session = Depends(get_db), _: AdminUser = Depends(get_current_admin)):
return db.query(Board).order_by(Board.id.desc()).all()
@router.post("", response_model=BoardOut, status_code=201)
def create_board(payload: BoardCreate, db: Session = Depends(get_db), _: AdminUser = Depends(get_current_admin)):
if db.query(Board).filter(Board.code == payload.code).first():
raise HTTPException(409, "Board code already exists")
b = Board(**payload.model_dump())
db.add(b); db.commit(); db.refresh(b)
return b
@router.delete("/{board_id}", status_code=204)
def delete_board(board_id: int, db: Session = Depends(get_db), _: AdminUser = Depends(get_current_admin)):
b = db.query(Board).get(board_id)
if not b: return
db.delete(b); db.commit()