public void markNotificationsWithStatus(@NotNull String recipientId, @NotNull List<Long> notificationIds, @NotNull NotificationStatus status) {
        if (notificationIds.isEmpty()) {
            return;
        }

        LOGGER.trace("Marking recipient {0} notifications {1} as {2}", recipientId, notificationIds, status);

        tryAction(() -> notificationRepository.markNotificationsWithStatusById(recipientId, notificationIds, status));
    }
Mark a list of notifications as read. They must be owned by the same recipient.

<p>Any attempt by a user to mark the notifications that do not actually belong to them will be silently ignored.

<p>You may want to take the userId from the security context when executing on behalf of an external entity to
ensure that the user is actually who they claim to be. This implementation does not check.

@throws IllegalArgumentException if status argument is {@link NotificationStatus#OPEN}.

@param recipientId     ID of the owner/recipient of the notification. We need this to prevent unauthorised users
                       interfering with other users' notifications.
@param notificationIds list of notification IDs
@param status          status to set (e.g. system read, user read)
manager/api/rest-impl/src/main/java/io/apiman/manager/api/service/NotificationService.java