|
2 | 2 | from datetime import datetime
|
3 | 3 | from enum import Enum
|
4 | 4 |
|
5 |
| -from pydantic import Field, validator |
| 5 | +from pydantic import Field, field_validator |
| 6 | +from pydantic_core.core_schema import FieldValidationInfo |
6 | 7 |
|
7 | 8 | from modules.models.shared_models import AirtableRowBaseModel
|
8 | 9 |
|
@@ -60,17 +61,19 @@ class ScheduledMessageInfo(AirtableRowBaseModel):
|
60 | 61 | description="When to send the message - this is calculated using a formula on the Airtable table",
|
61 | 62 | )
|
62 | 63 |
|
63 |
| - @validator("frequency") |
64 |
| - def frequency_must_be_valid( # noqa: N805, RUF100 |
| 64 | + @field_validator("frequency") |
| 65 | + def frequency_must_be_valid( |
65 | 66 | cls: "ScheduledMessageInfo", # noqa: N805
|
66 | 67 | frequency: str,
|
| 68 | + info: FieldValidationInfo, # noqa: ARG002 |
67 | 69 | ) -> str:
|
68 |
| - """Validate that the passed in frequency is valid. |
| 70 | + """Validate that the passed in frequency is a valid option. |
69 | 71 |
|
70 | 72 | :param frequency: The frequency to validate.
|
| 73 | + :param info: The field validation info. |
71 | 74 | :return: The frequency if it is valid.
|
72 | 75 | """
|
73 |
| - if frequency not in FrequencyEnum.__members__: |
| 76 | + if frequency.lower() not in FrequencyEnum.__members__: |
74 | 77 | exception_message = f"Frequency must be one of {FrequencyEnum.__members__.keys()}"
|
75 | 78 | raise ValueError(exception_message)
|
76 |
| - return frequency |
| 79 | + return frequency.lower() |
0 commit comments