From 99271e365fcf80f5a2341de26682848163d4d50c Mon Sep 17 00:00:00 2001 From: Alix JEUDI--LEMOINE Date: Tue, 13 May 2025 14:55:18 +0200 Subject: [PATCH] =?UTF-8?q?=E2=9A=A1=EF=B8=8F=20Removed=20check=20of=20use?= =?UTF-8?q?rid=20after=20request=20+=20added=20shared=20pins=20to=20pins?= =?UTF-8?q?=20list?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/routes/pins.py | 15 +++++++++++++-- app/serializers/pin_serializer.py | 5 ++--- 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/app/routes/pins.py b/app/routes/pins.py index a710abc..7a73797 100644 --- a/app/routes/pins.py +++ b/app/routes/pins.py @@ -92,8 +92,19 @@ async def add_pin(pin: PinDTO, current_user: User = Depends(get_current_user)): responses={401: {"model": HTTPError}} ) async def list_pins(current_user: User = Depends(get_current_user)): - pins = serializers.pins_serialize(pins_collection.find().to_list(), current_user.uid) - return pins + # Récupérer les IDs des pins partagés avec l'utilisateur + shared_pins = pin_permissions_collection.find({"user_id": current_user.uid}) + shared_pin_ids = [permission["pin_id"] for permission in shared_pins] + + # Récupérer tous les pins de l'utilisateur et les pins partagés avec lui + pins = pins_collection.find({ + "$or": [ + {"user_id": current_user.uid}, # Pins de l'utilisateur + {"_id": {"$in": shared_pin_ids}} # Pins partagés avec l'utilisateur + ] + }) + + return serializers.pins_serialize(pins.to_list()) @pins_router.post( path="/{id}/share", diff --git a/app/serializers/pin_serializer.py b/app/serializers/pin_serializer.py index f07077f..bd6473d 100644 --- a/app/serializers/pin_serializer.py +++ b/app/serializers/pin_serializer.py @@ -11,10 +11,9 @@ def pin_serialize(pin: list) -> Pin: "user_id": pin["user_id"] }) -def pins_serialize(pins: list, uid: str) -> list: +def pins_serialize(pins: list) -> list: serialized_pins: list = [] for pin in pins: - if pin["user_id"] == uid: - serialized_pins.append(pin_serialize(pin)) + serialized_pins.append(pin_serialize(pin)) return serialized_pins \ No newline at end of file