crud_item.py 921 B

12345678910111213141516171819202122232425262728293031323334
  1. from typing import List
  2. from fastapi.encoders import jsonable_encoder
  3. from sqlalchemy.orm import Session
  4. from app.crud.base import CRUDBase
  5. from app.models.item import Item
  6. from app.schemas.item import ItemCreate, ItemUpdate
  7. class CRUDItem(CRUDBase[Item, ItemCreate, ItemUpdate]):
  8. def create_with_owner(
  9. self, db: Session, *, obj_in: ItemCreate, owner_id: int
  10. ) -> Item:
  11. obj_in_data = jsonable_encoder(obj_in)
  12. db_obj = self.model(**obj_in_data, owner_id=owner_id)
  13. db.add(db_obj)
  14. db.commit()
  15. db.refresh(db_obj)
  16. return db_obj
  17. def get_multi_by_owner(
  18. self, db: Session, *, owner_id: int, skip: int = 0, limit: int = 100
  19. ) -> List[Item]:
  20. return (
  21. db.query(self.model)
  22. .filter(Item.owner_id == owner_id)
  23. .offset(skip)
  24. .limit(limit)
  25. .all()
  26. )
  27. item = CRUDItem(Item)