This commit is contained in:
2024-08-10 18:34:09 +02:00
parent 029a0bbd8b
commit 289ed75655

View File

@@ -2,7 +2,7 @@ from typing import Self
from datetime import datetime, timedelta from datetime import datetime, timedelta
from httpx import AsyncClient from httpx import AsyncClient
from pydantic import BaseModel from pydantic import BaseModel, field_serializer
from config import config from config import config
@@ -15,6 +15,10 @@ class RecurrenceRule(BaseModel):
interval: int interval: int
frequency: int frequency: int
@field_serializer("start")
def serialize_datetime(cls, value: datetime) -> str:
return value.isoformat()
def next_date(self, start: datetime) -> datetime: def next_date(self, start: datetime) -> datetime:
next_date = start next_date = start
@@ -77,6 +81,10 @@ class CreateDiscordEvent(BaseModel):
scheduled_end_time: datetime scheduled_end_time: datetime
recurrence_rule: RecurrenceRule | None recurrence_rule: RecurrenceRule | None
@field_serializer("scheduled_start_time", "scheduled_end_time")
def serialize_datetime(cls, value: datetime) -> str:
return value.isoformat()
@classmethod @classmethod
def parse_from_twitch_event(cls, event: TwitchEvent) -> Self: def parse_from_twitch_event(cls, event: TwitchEvent) -> Self:
if event.categories: if event.categories:
@@ -126,6 +134,10 @@ class UpdateDiscordEvent(BaseModel):
scheduled_end_time: datetime scheduled_end_time: datetime
recurrence_rule: RecurrenceRule | None 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 def edit_discord_event(event_id: str, event: UpdateDiscordEvent):
async with AsyncClient() as client: async with AsyncClient() as client: