from fastapi import APIRouter, Depends from sqlalchemy.orm import Session from .. import models, schemas, database from ..security import require_roles components = APIRouter(prefix="/components", tags=["components"]) @components.post("/", response_model=schemas.ComponentRead, dependencies=[Depends(require_roles(["admin", "editor"]))]) def create_component(item: schemas.ComponentCreate, db: Session = Depends(database.get_db)): obj = models.Component(**item.dict()) db.add(obj) db.commit() db.refresh(obj) return obj @components.get("/", response_model=list[schemas.ComponentRead]) def list_components(db: Session = Depends(database.get_db)): return db.query(models.Component).all()