Skip to content

Commit

Permalink
Merge pull request #18599 from davelopez/improve_notifications_api_types
Browse files Browse the repository at this point in the history
Tighten user notification API response types
  • Loading branch information
bgruening authored Jul 26, 2024
2 parents 423c371 + 6d0beaf commit 2231152
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 @@ -12902,8 +12902,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 2231152

Please sign in to comment.