From d8c869ebc1ec307342ab03fe76186a8b5bfc57c6 Mon Sep 17 00:00:00 2001 From: hanfi <ccc@spahan.ch> Date: Fri, 16 Jun 2023 08:23:17 +0200 Subject: [PATCH] fix checkin --- backend/main.py | 10 ++++------ backend/models.py | 2 +- backend/schemas.py | 10 +++++++++- 3 files changed, 14 insertions(+), 8 deletions(-) diff --git a/backend/main.py b/backend/main.py index 940a0e6..e889389 100644 --- a/backend/main.py +++ b/backend/main.py @@ -58,14 +58,12 @@ def list_storages(db: Session = Depends(get_db)): return utils.get_storages(db) -@app.post("/checkin/{item_uuid}/at/{storage_name}", response_model=schemas.Item) -def checkin_item_by_uuid( - item_uuid: str, storage_name: str, db: Session = Depends(get_db) -): - item = utils.get_item_by_uuid(db, UUID(item_uuid)) +@app.post("/checkin", response_model=schemas.Item) +def checkin_item_by_uuid(checkin: schemas.ItemCheckin, db: Session = Depends(get_db)): + item = utils.get_item_by_uuid(db, UUID(checkin.item_uuid)) if item is None: raise HTTPException(status_code=404, detail="Item not found") - storage = utils.get_storage(db, storage_name) + storage = utils.get_storage(db, checkin.storage_name) if storage is None: raise HTTPException(status_code=404, detail="Storage not found") return utils.receive_item(db, item, storage) diff --git a/backend/models.py b/backend/models.py index 70837b3..50fea03 100644 --- a/backend/models.py +++ b/backend/models.py @@ -31,7 +31,7 @@ class Item(db_Base): tag = sql_Column(sql_String(6), nullable=True, default=None) storage = sql_Column( - sql_Uuid, sql_ForeignKey("store.name"), nullable=True, default=None + sql_String(16), sql_ForeignKey("store.name"), nullable=True, default=None ) stored_at = sql_relationship("Storage", back_populates="items") diff --git a/backend/schemas.py b/backend/schemas.py index 9e87820..e20a771 100644 --- a/backend/schemas.py +++ b/backend/schemas.py @@ -30,11 +30,19 @@ class ItemCreateByImageAtStorage(BaseModel): storage_uuid: UUID4 +class ItemCheckin(BaseModel): + item_uuid: str + storage_name: str + num: Union[int, None] = 1 + + class Item(BaseModel): uuid: UUID4 created_at: datetime received_at: Union[datetime, None] = None + verification: bytes + addressee: Union[str, None] = None team: Union[str, None] = None images: List[Image] = [] @@ -44,7 +52,7 @@ class Item(BaseModel): tag: Union[str, None] = None - stored_at: Union[Storage, None] = None + storage: Union[str, None] = None class Config: orm_mode = True -- GitLab