From 289ed75655043585502762bf90ab92464824ede7 Mon Sep 17 00:00:00 2001 From: Bulat Kurbanov Date: Sat, 10 Aug 2024 18:34:09 +0200 Subject: [PATCH] Fix --- src/services/scheduler_sync/discord_events.py | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/src/services/scheduler_sync/discord_events.py b/src/services/scheduler_sync/discord_events.py index 40ccece..cede04b 100644 --- a/src/services/scheduler_sync/discord_events.py +++ b/src/services/scheduler_sync/discord_events.py @@ -2,7 +2,7 @@ from typing import Self from datetime import datetime, timedelta from httpx import AsyncClient -from pydantic import BaseModel +from pydantic import BaseModel, field_serializer from config import config @@ -15,6 +15,10 @@ class RecurrenceRule(BaseModel): interval: int frequency: int + @field_serializer("start") + def serialize_datetime(cls, value: datetime) -> str: + return value.isoformat() + def next_date(self, start: datetime) -> datetime: next_date = start @@ -77,6 +81,10 @@ class CreateDiscordEvent(BaseModel): scheduled_end_time: datetime recurrence_rule: RecurrenceRule | None + @field_serializer("scheduled_start_time", "scheduled_end_time") + def serialize_datetime(cls, value: datetime) -> str: + return value.isoformat() + @classmethod def parse_from_twitch_event(cls, event: TwitchEvent) -> Self: if event.categories: @@ -126,6 +134,10 @@ class UpdateDiscordEvent(BaseModel): scheduled_end_time: datetime recurrence_rule: RecurrenceRule | None + @field_serializer("scheduled_start_time", "scheduled_end_time") + def serialize_datetime(cls, value: datetime) -> str: + return value.isoformat() + async def edit_discord_event(event_id: str, event: UpdateDiscordEvent): async with AsyncClient() as client: