|
|
|
@ -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",
|
|
|
|
|