feat(#36): Notification rework with single and all comments mark as read

This commit is contained in:
2026-01-18 18:42:10 +01:00
parent 105baf7c86
commit db788c4ee3
31 changed files with 711 additions and 94 deletions

View File

@@ -885,6 +885,18 @@ paths:
$ref: "https://api.swaggerhub.com/domains/smartbear-public/ProblemDetails/1.0.0#/components/responses/Unauthorized"
"500":
$ref: "https://api.swaggerhub.com/domains/smartbear-public/ProblemDetails/1.0.0#/components/responses/ServerError"
delete:
summary: Clear all notifications for the current user
operationId: clearAllNotifications
tags:
- notification
responses:
"204":
description: All notifications cleared
"401":
$ref: "https://api.swaggerhub.com/domains/smartbear-public/ProblemDetails/1.0.0#/components/responses/Unauthorized"
"500":
$ref: "https://api.swaggerhub.com/domains/smartbear-public/ProblemDetails/1.0.0#/components/responses/ServerError"
/notifications/unread:
get:
@@ -968,26 +980,28 @@ paths:
"500":
$ref: "https://api.swaggerhub.com/domains/smartbear-public/ProblemDetails/1.0.0#/components/responses/ServerError"
/notifications/clear-all:
/notifications/{id}:
parameters:
- name: id
in: path
required: true
schema:
type: string
format: uuid
delete:
summary: Clear all notifications for the current user
operationId: clearAllNotifications
summary: Delete a specific notification
operationId: deleteNotification
tags:
- notification
parameters:
- in: query
name: organizationId
required: true
schema:
type: string
description: Organization ID to clear notifications for
responses:
"204":
description: All notifications cleared
description: Notification successfully deleted
"404":
$ref: "https://api.swaggerhub.com/domains/smartbear-public/ProblemDetails/1.0.0#/components/responses/NotFound"
"401":
$ref: "https://api.swaggerhub.com/domains/smartbear-public/ProblemDetails/1.0.0#/components/responses/Unauthorized"
"403":
description: User is not authorized to access this organization
description: User is not authorized to delete this notification
"500":
$ref: "https://api.swaggerhub.com/domains/smartbear-public/ProblemDetails/1.0.0#/components/responses/ServerError"
@@ -1636,6 +1650,14 @@ components:
emailOnFormSubmitted:
type: boolean
default: true
emailOnFormUpdated:
type: boolean
default: true
description: Whether to receive email when someone else updates a form the user created
emailOnCommentAdded:
type: boolean
default: true
description: Whether to receive email when someone comments on a form the user created
UpdateEmailPreferencesDto:
type: object
@@ -1647,6 +1669,12 @@ components:
type: boolean
emailOnFormSubmitted:
type: boolean
emailOnFormUpdated:
type: boolean
description: Whether to receive email when someone else updates a form the user created
emailOnCommentAdded:
type: boolean
description: Whether to receive email when someone comments on a form the user created
UserStatus:
type: string
@@ -1823,6 +1851,10 @@ components:
type: string
description: List of roles to send notification to. If both recipientId and targetRoles are null, notification will be sent to all organization members.
nullable: true
excludedUserId:
type: string
description: Keycloak ID of user to exclude from receiving this notification (e.g., the action performer).
nullable: true
type:
$ref: "#/components/schemas/NotificationType"
organizationId: