20 lines
714 B
Python
20 lines
714 B
Python
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()
|