parent
8b9b4e6e08
commit
1ad47cb20b
@ -1,11 +1,24 @@
|
|||||||
from pydantic import BaseModel
|
from pydantic import BaseModel, Field, field_validator
|
||||||
|
from typing import List
|
||||||
|
from bson import ObjectId
|
||||||
|
import bson
|
||||||
|
|
||||||
class PinDTO(BaseModel):
|
class PinDTO(BaseModel):
|
||||||
title: str
|
title: str
|
||||||
description: str
|
description: str
|
||||||
location: list
|
location: list
|
||||||
files: list
|
files: List[str] = Field(default_factory=list)
|
||||||
user_id: str
|
user_id: str = None
|
||||||
|
|
||||||
|
@field_validator('files')
|
||||||
|
@classmethod
|
||||||
|
def validate_files(cls, files):
|
||||||
|
for file_id in files:
|
||||||
|
try:
|
||||||
|
ObjectId(file_id)
|
||||||
|
except bson.errors.InvalidId:
|
||||||
|
raise ValueError(f"Invalid image ID format: {file_id}")
|
||||||
|
return files
|
||||||
|
|
||||||
class PinShareDTO(BaseModel):
|
class PinShareDTO(BaseModel):
|
||||||
friend_id: str
|
friend_id: str
|
Loading…
Reference in new issue