Skip to content

Commit

Permalink
Tighten user notification API response types
Browse files Browse the repository at this point in the history
This will exclude "broadcast" as a possible user notification response.
  • Loading branch information
davelopez committed Jul 25, 2024
1 parent 3c7dfed commit 7e8c298
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 9 deletions.
3 changes: 1 addition & 2 deletions client/src/api/schema/schema.ts
Original file line number Diff line number Diff line change
Expand Up @@ -16478,8 +16478,7 @@ export interface components {
*/
content:
| components["schemas"]["MessageNotificationContent"]
| components["schemas"]["NewSharedItemNotificationContent"]
| components["schemas"]["BroadcastNotificationContent"];
| components["schemas"]["NewSharedItemNotificationContent"];
/**
* Create time
* Format: date-time
Expand Down
25 changes: 18 additions & 7 deletions lib/galaxy/schema/notifications.py
Original file line number Diff line number Diff line change
Expand Up @@ -118,20 +118,30 @@ class NewSharedItemNotificationContent(Model):
slug: str = Field(..., title="Slug", description="The slug of the shared item. Used for the link to the item.")


AnyNotificationContent = Annotated[
NotificationContentField = Field(
default=...,
discriminator="category",
title="Content",
description="The content of the notification. The structure depends on the category.",
)

AnyUserNotificationContent = Annotated[
Union[
MessageNotificationContent,
NewSharedItemNotificationContent,
],
NotificationContentField,
]

AnyNotificationContent = Annotated[
Union[
AnyUserNotificationContent,
BroadcastNotificationContent,
],
Field(
default=...,
discriminator="category",
title="Content",
description="The content of the notification. The structure depends on the category.",
),
NotificationContentField,
]


NotificationIdField = Field(
...,
title="ID",
Expand Down Expand Up @@ -200,6 +210,7 @@ class UserNotificationResponse(NotificationResponse):
"""A notification response specific to the user."""

category: PersonalNotificationCategory = NotificationCategoryField
content: AnyUserNotificationContent
seen_time: Optional[datetime] = Field(
None,
title="Seen time",
Expand Down

0 comments on commit 7e8c298

Please sign in to comment.