|
|
@ -120,21 +120,19 @@ async def add_pin(pin: PinDTO, current_user: User = Depends(get_current_user)):
|
|
|
|
path="s",
|
|
|
|
path="s",
|
|
|
|
responses={401: {"model": HTTPError}}
|
|
|
|
responses={401: {"model": HTTPError}}
|
|
|
|
)
|
|
|
|
)
|
|
|
|
async def list_pins(current_user: User = Depends(get_current_user), poi: bool = False):
|
|
|
|
async def list_pins(current_user: User = Depends(get_current_user)):
|
|
|
|
# Récupérer les IDs des pins partagés avec l'utilisateur
|
|
|
|
# Récupérer les IDs des pins partagés avec l'utilisateur
|
|
|
|
shared_pins = pin_permissions_collection.find({"user_id": current_user.uid})
|
|
|
|
shared_pins = pin_permissions_collection.find({"user_id": current_user.uid})
|
|
|
|
shared_pin_ids = [permission["pin_id"] for permission in shared_pins]
|
|
|
|
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
|
|
|
|
# Récupérer tous les pins de l'utilisateur et les pins partagés avec lui
|
|
|
|
if poi:
|
|
|
|
pins = pins_collection.find({
|
|
|
|
pins = pins_collection.find({"is_poi": True})
|
|
|
|
"$or": [
|
|
|
|
else:
|
|
|
|
{"user_id": current_user.uid}, # Pins de l'utilisateur
|
|
|
|
pins = pins_collection.find({
|
|
|
|
{"_id": {"$in": shared_pin_ids}}, # Pins partagés avec l'utilisateur
|
|
|
|
"$or": [
|
|
|
|
{"is_poi": True}
|
|
|
|
{"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())
|
|
|
|
return serializers.pins_serialize(pins.to_list())
|
|
|
|
|
|
|
|
|
|
|
|