Don't allow specifying attendees on event creation

This commit is contained in:
Peter Vacho 2024-12-29 17:32:38 +01:00
parent e225151c48
commit b240612ee2
Signed by: school
GPG key ID: 8CFC3837052871B4
2 changed files with 9 additions and 11 deletions

View file

@ -21,7 +21,7 @@ from src.db.models.category import Category
from src.db.models.event import Event from src.db.models.event import Event
from src.db.models.invitation import Invitation from src.db.models.invitation import Invitation
from src.db.models.user import User from src.db.models.user import User
from src.utils.db import expr from src.utils.db import expr, from_id_list
from src.utils.logging import get_logger from src.utils.logging import get_logger
log = get_logger(__name__) log = get_logger(__name__)
@ -98,7 +98,6 @@ EVENTS: list[EventConstructData] = [
end_date=date(2025, 1, 1), end_date=date(2025, 1, 1),
end_time=time(12, 30), end_time=time(12, 30),
color=Color("#ff0000"), color=Color("#ff0000"),
attendee_ids=[],
), ),
owner_username="user1", owner_username="user1",
attendee_usernames=["user2"], attendee_usernames=["user2"],
@ -114,7 +113,6 @@ EVENTS: list[EventConstructData] = [
end_date=date(2025, 1, 1), end_date=date(2025, 1, 1),
end_time=time(12, 30), end_time=time(12, 30),
color=Color("#ff0000"), color=Color("#ff0000"),
attendee_ids=[],
), ),
owner_username="user2", owner_username="user2",
attendee_usernames=[], attendee_usernames=[],
@ -196,8 +194,12 @@ async def make_event(event: EventConstructData) -> None:
_ = await db_event.delete() _ = await db_event.delete()
event.data.category_ids = category_ids event.data.category_ids = category_ids
event.data.attendee_ids = attendee_ids db_event = await event.data.create_event(db_user)
_ = await event.data.create_event(db_user)
if len(attendee_ids) > 0:
db_event.attendees = await from_id_list(attendee_ids, User, link_return=True)
db_event = await db_event.replace()
log.info(f"Event {event.data.title!r} created for user {event.owner_username!r}.") log.info(f"Event {event.data.title!r} created for user {event.owner_username!r}.")

View file

@ -36,7 +36,6 @@ class _BaseEventData(BaseModel):
end_date: date end_date: date
end_time: time end_time: time
color: Color color: Color
attendee_ids: list[PydanticObjectId]
@field_validator("color", mode="after") @field_validator("color", mode="after")
@classmethod @classmethod
@ -52,6 +51,7 @@ class EventData(_BaseEventData):
"""Data about an event sent to the user.""" """Data about an event sent to the user."""
owner_user_id: PydanticObjectId owner_user_id: PydanticObjectId
attendee_ids: list[PydanticObjectId]
created_at: datetime created_at: datetime
@classmethod @classmethod
@ -99,7 +99,7 @@ class EventCreateData(_BaseEventData):
end_date=self.end_date, end_date=self.end_date,
end_time=self.end_time, end_time=self.end_time,
color=self.color.as_hex(format="long"), color=self.color.as_hex(format="long"),
attendees=await from_id_list(self.attendee_ids, User, link_return=True), attendees=[],
) )
return await event.create() return await event.create()
@ -115,7 +115,6 @@ class EventCreateData(_BaseEventData):
end_date=self.end_date, end_date=self.end_date,
end_time=self.end_time, end_time=self.end_time,
color=self.color.as_hex(format="long"), color=self.color.as_hex(format="long"),
attendees=await from_id_list(self.attendee_ids, User),
) )
@ -131,7 +130,6 @@ class PartialEventUpdateData(_BaseEventData):
end_date: date | None = None # pyright: ignore[reportIncompatibleVariableOverride] end_date: date | None = None # pyright: ignore[reportIncompatibleVariableOverride]
end_time: time | None = None # pyright: ignore[reportIncompatibleVariableOverride] end_time: time | None = None # pyright: ignore[reportIncompatibleVariableOverride]
color: Color | None = None # pyright: ignore[reportIncompatibleVariableOverride] color: Color | None = None # pyright: ignore[reportIncompatibleVariableOverride]
attendee_ids: list[PydanticObjectId] | None = None # pyright: ignore[reportIncompatibleVariableOverride]
async def update_event(self, event: Event) -> Event: async def update_event(self, event: Event) -> Event:
"""Update an existing event, overwriting it with data that were specified.""" """Update an existing event, overwriting it with data that were specified."""
@ -154,8 +152,6 @@ class PartialEventUpdateData(_BaseEventData):
update_dct["end_time"] = self.end_time update_dct["end_time"] = self.end_time
if self.color is not None: if self.color is not None:
update_dct["color"] = self.color.as_hex(format="long") update_dct["color"] = self.color.as_hex(format="long")
if self.attendee_ids is not None:
update_dct["attendees"] = await from_id_list(self.attendee_ids, User)
return await update_document(event, **update_dct) return await update_document(event, **update_dct)