diff options
Diffstat (limited to 'backend/models')
| -rw-r--r-- | backend/models/__init__.py | 5 | ||||
| -rw-r--r-- | backend/models/discord_user.py | 9 | 
2 files changed, 13 insertions, 1 deletions
diff --git a/backend/models/__init__.py b/backend/models/__init__.py index 8ad7f7f..a9f76e0 100644 --- a/backend/models/__init__.py +++ b/backend/models/__init__.py @@ -1,12 +1,15 @@  from .antispam import AntiSpam -from .discord_user import DiscordUser +from .discord_role import DiscordRole +from .discord_user import DiscordMember, DiscordUser  from .form import Form, FormList  from .form_response import FormResponse, ResponseList  from .question import CodeQuestion, Question  __all__ = [      "AntiSpam", +    "DiscordRole",      "DiscordUser", +    "DiscordMember",      "Form",      "FormResponse",      "CodeQuestion", diff --git a/backend/models/discord_user.py b/backend/models/discord_user.py index 3f4209d..0eca15b 100644 --- a/backend/models/discord_user.py +++ b/backend/models/discord_user.py @@ -43,3 +43,12 @@ class DiscordMember(BaseModel):      pending: t.Optional[bool]      permissions: t.Optional[str]      communication_disabled_until: t.Optional[datetime.datetime] + +    def dict(self, *args, **kwargs) -> dict[str, t.Any]: +        """Convert the model to a python dict, and encode timestamps in a serializable format.""" +        data = super().dict(*args, **kwargs) +        for field, value in data.items(): +            if isinstance(value, datetime.datetime): +                data[field] = value.isoformat() + +        return data  |