From 37dc2913d8e5e0e34ce78b6bac5fae2eaac69a58 Mon Sep 17 00:00:00 2001 From: Alix JEUDI--LEMOINE Date: Tue, 3 Jun 2025 00:04:42 +0200 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8=20Added=20validation=20for=20user=5Fi?= =?UTF-8?q?d=20in=20PinDTO=20(for=20POIs)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/dto/pin.py | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/app/dto/pin.py b/app/dto/pin.py index 0d718b0..164f52e 100644 --- a/app/dto/pin.py +++ b/app/dto/pin.py @@ -10,9 +10,9 @@ class PinDTO(BaseModel): location: list complete_address: str files: List[str] = Field(default_factory=list) - user_id: str = None - date: Optional[datetime] = None is_poi: bool = False + user_id: Optional[str] = None + date: Optional[datetime] = None @field_validator('files') @classmethod @@ -24,5 +24,12 @@ class PinDTO(BaseModel): raise ValueError(f"Invalid image ID format: {file_id}") return files + @field_validator('user_id') + @classmethod + def validate_user_id(cls, v, info): + if not info.data.get('is_poi') and not v: + raise ValueError('user_id is required when is_poi is False ' + str(info.data)) + return v + class PinShareDTO(BaseModel): friend_id: str \ No newline at end of file