fix: serialize media publishing decisions
This commit is contained in:
+32
-2
@@ -486,7 +486,37 @@ class AdminMediaReviewOut(BaseModel):
|
||||
|
||||
class AdminMediaDecision(BaseModel):
|
||||
note: str = Field(min_length=1, max_length=1000)
|
||||
asset_ids: list[str] = Field(min_length=1, max_length=500)
|
||||
expected_version: int = Field(ge=1)
|
||||
|
||||
@field_validator("asset_ids")
|
||||
@classmethod
|
||||
def validate_asset_ids(cls, value: list[str]) -> list[str]:
|
||||
if len(set(value)) != len(value) or any(len(item) != 64 or any(char not in "0123456789abcdef" for char in item) for item in value):
|
||||
raise ValueError("asset_ids must contain unique SHA-256 ids")
|
||||
return value
|
||||
|
||||
|
||||
class AdminMediaRollback(AdminMediaDecision):
|
||||
asset_url: str = Field(min_length=1, max_length=2000)
|
||||
class AdminMediaPreview(BaseModel):
|
||||
asset_ids: list[str] = Field(min_length=1, max_length=500)
|
||||
expected_version: int | None = Field(default=None, ge=1)
|
||||
|
||||
@field_validator("asset_ids")
|
||||
@classmethod
|
||||
def validate_asset_ids(cls, value: list[str]) -> list[str]:
|
||||
if len(set(value)) != len(value) or any(len(item) != 64 or any(char not in "0123456789abcdef" for char in item) for item in value):
|
||||
raise ValueError("asset_ids must contain unique SHA-256 ids")
|
||||
return value
|
||||
|
||||
|
||||
class AdminMediaRollback(BaseModel):
|
||||
note: str = Field(min_length=1, max_length=1000)
|
||||
asset_id: str = Field(min_length=64, max_length=64)
|
||||
expected_version: int = Field(ge=1)
|
||||
|
||||
@field_validator("asset_id")
|
||||
@classmethod
|
||||
def validate_asset_id(cls, value: str) -> str:
|
||||
if any(char not in "0123456789abcdef" for char in value):
|
||||
raise ValueError("asset_id must be a SHA-256 id")
|
||||
return value
|
||||
|
||||
Reference in New Issue
Block a user