Files
DataRush/services/backend/apps/task/validators.py
T
2025-03-01 02:44:45 +03:00

25 lines
710 B
Python

from django.core.exceptions import ValidationError
from pydantic import BaseModel
from pydantic import ValidationError as PydanticValidationError
class Criteria(BaseModel):
name: str
slug: str
max_value: int
min_value: int
class ContestTaskCriteriesValidator:
def __call__(self, instance):
if instance.criterties and not isinstance(instance.criterties, list):
err = "criteries must be a valid dictionary"
raise ValidationError(err)
try:
for criteria in instance.criterties:
Criteria(**criteria)
except PydanticValidationError:
err = "invalid criteries data"
raise ValidationError(err)