crud_item.py 843 B

123456789101112131415161718192021222324252627282930
  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
  10. ) -> Item:
  11. obj_in_data = jsonable_encoder(obj_in)
  12. db_obj = self.model(**obj_in_data)
  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).filter(Item.owner_id == owner_id).offset(skip).limit(limit).all()
  22. )
  23. item = CRUDItem(Item)