diff --git a/backend/trip/__init__.py b/backend/trip/__init__.py index 0b2f79d..c68196d 100644 --- a/backend/trip/__init__.py +++ b/backend/trip/__init__.py @@ -1 +1 @@ -__version__ = "1.1.3" +__version__ = "1.2.0" diff --git a/backend/trip/models/models.py b/backend/trip/models/models.py index e033b2f..ffca778 100644 --- a/backend/trip/models/models.py +++ b/backend/trip/models/models.py @@ -172,7 +172,6 @@ class PlaceUpdate(PlaceBase): place: str | None = None category_id: int | None = None image: str | None = None - gpx: str | None = None class PlaceRead(PlaceBase): diff --git a/backend/trip/routers/places.py b/backend/trip/routers/places.py index 2c8ba93..1913a3d 100644 --- a/backend/trip/routers/places.py +++ b/backend/trip/routers/places.py @@ -31,6 +31,7 @@ def create_place( lat=place.lat, lng=place.lng, place=place.place, + gpx=place.gpx, allowdog=place.allowdog, description=place.description, price=place.price, @@ -79,6 +80,7 @@ async def create_places( lat=place.lat, lng=place.lng, place=place.place, + gpx=place.gpx, allowdog=place.allowdog, description=place.description, price=place.price, @@ -114,7 +116,7 @@ def update_place( verify_exists_and_owns(current_user, db_place) place_data = place.model_dump(exclude_unset=True) - image = place_data.pop("image") + image = place_data.pop("image", None) if image: try: image_bytes = b64img_decode(image) @@ -130,7 +132,6 @@ def update_place( session.commit() session.refresh(image) - place_data.pop("image") place_data["image_id"] = image.id if db_place.image_id: @@ -170,3 +171,15 @@ def delete_place( session.delete(db_place) session.commit() return {} + + +@router.get("/{place_id}", response_model=PlaceRead) +def get_place( + session: SessionDep, + place_id: int, + current_user: Annotated[str, Depends(get_current_username)], +) -> PlaceRead: + db_place = session.get(Place, place_id) + verify_exists_and_owns(current_user, db_place) + + return PlaceRead.serialize(db_place, exclude_gpx=False) diff --git a/backend/trip/routers/settings.py b/backend/trip/routers/settings.py index c32b189..7f2f636 100644 --- a/backend/trip/routers/settings.py +++ b/backend/trip/routers/settings.py @@ -32,7 +32,9 @@ def put_user_settings( user_data = data.model_dump(exclude_unset=True) if "do_not_display" in user_data: - user_data["do_not_display"] = ",".join(user_data["do_not_display"]) if user_data["do_not_display"] else "" + user_data["do_not_display"] = ( + ",".join(user_data["do_not_display"]) if user_data["do_not_display"] else "" + ) for key, value in user_data.items(): setattr(db_user, key, value) diff --git a/backend/trip/routers/trips.py b/backend/trip/routers/trips.py index 9cad093..79b46ec 100644 --- a/backend/trip/routers/trips.py +++ b/backend/trip/routers/trips.py @@ -107,14 +107,13 @@ def update_trip( db_trip.image_id = image.id - if "place_ids" in trip_data: # Could be empty [], so 'in' - place_ids = trip_data.pop("place_ids") + place_ids = trip_data.pop("place_ids", None) + if place_ids is not None: # Could be empty [], so 'in' db_trip.places.clear() - if place_ids: - for place_id in place_ids: - db_place = session.get(Place, place_id) - verify_exists_and_owns(current_user, db_place) - db_trip.places.append(db_place) + for place_id in place_ids: + db_place = session.get(Place, place_id) + verify_exists_and_owns(current_user, db_place) + db_trip.places.append(db_place) item_place_ids = { item.place.id for day in db_trip.days for item in day.items if item.place is not None @@ -300,8 +299,8 @@ def update_tripitem( raise HTTPException(status_code=400, detail="Bad request") item_data = item.model_dump(exclude_unset=True) - if item_data.get("place"): - place_id = item_data.pop("place") + place_id = item_data.pop("place", None) + if place_id: db_item.place_id = place_id for key, value in item_data.items():