diff --git a/Jellyfin.Api/Controllers/NotificationsController.cs b/Jellyfin.Api/Controllers/NotificationsController.cs
index c8a5be89b3..d9a5c5e316 100644
--- a/Jellyfin.Api/Controllers/NotificationsController.cs
+++ b/Jellyfin.Api/Controllers/NotificationsController.cs
@@ -42,13 +42,13 @@ namespace Jellyfin.Api.Controllers
/// An optional limit on the number of notifications returned.
/// A read-only list of all of the user's notifications.
[HttpGet("{UserID}")]
- public IReadOnlyList GetNotifications(
+ public NotificationResultDto GetNotifications(
[FromRoute] string userId,
[FromQuery] bool? isRead,
[FromQuery] int? startIndex,
[FromQuery] int? limit)
{
- return new List();
+ return new NotificationResultDto();
}
///
@@ -92,10 +92,10 @@ namespace Jellyfin.Api.Controllers
/// The level of the notification.
[HttpPost("Admin")]
public void CreateAdminNotification(
- [FromForm] string name,
- [FromForm] string description,
- [FromForm] string? url,
- [FromForm] NotificationLevel? level)
+ [FromQuery] string name,
+ [FromQuery] string description,
+ [FromQuery] string? url,
+ [FromQuery] NotificationLevel? level)
{
var notification = new NotificationRequest
{
@@ -114,11 +114,11 @@ namespace Jellyfin.Api.Controllers
/// Endpoint to set notifications as read.
///
/// The userID.
- /// The IDs of notifications which should be set as read.
+ /// A comma-separated list of the IDs of notifications which should be set as read.
[HttpPost("{UserID}/Read")]
public void SetRead(
[FromRoute] string userId,
- [FromForm] List ids)
+ [FromQuery] string ids)
{
}
@@ -126,11 +126,11 @@ namespace Jellyfin.Api.Controllers
/// Endpoint to set notifications as unread.
///
/// The userID.
- /// The IDs of notifications which should be set as unread.
+ /// A comma-separated list of the IDs of notifications which should be set as unread.
[HttpPost("{UserID}/Unread")]
public void SetUnread(
[FromRoute] string userId,
- [FromForm] List ids)
+ [FromQuery] string ids)
{
}
}
diff --git a/Jellyfin.Api/Models/NotificationDtos/NotificationDto.cs b/Jellyfin.Api/Models/NotificationDtos/NotificationDto.cs
index c849ecd75d..502b22623b 100644
--- a/Jellyfin.Api/Models/NotificationDtos/NotificationDto.cs
+++ b/Jellyfin.Api/Models/NotificationDtos/NotificationDto.cs
@@ -41,13 +41,13 @@ namespace Jellyfin.Api.Models.NotificationDtos
public string Description { get; set; } = string.Empty;
///
- /// Gets or sets the notification's URL. Defaults to null.
+ /// Gets or sets the notification's URL. Defaults to an empty string.
///
- public string? Url { get; set; }
+ public string Url { get; set; } = string.Empty;
///
/// Gets or sets the notification level.
///
- public NotificationLevel? Level { get; set; }
+ public NotificationLevel Level { get; set; }
}
}
diff --git a/Jellyfin.Api/Models/NotificationDtos/NotificationResultDto.cs b/Jellyfin.Api/Models/NotificationDtos/NotificationResultDto.cs
new file mode 100644
index 0000000000..64e92bd83a
--- /dev/null
+++ b/Jellyfin.Api/Models/NotificationDtos/NotificationResultDto.cs
@@ -0,0 +1,21 @@
+using System;
+using System.Collections.Generic;
+
+namespace Jellyfin.Api.Models.NotificationDtos
+{
+ ///
+ /// A list of notifications with the total record count for pagination.
+ ///
+ public class NotificationResultDto
+ {
+ ///
+ /// Gets or sets the current page of notifications.
+ ///
+ public IReadOnlyList Notifications { get; set; } = Array.Empty();
+
+ ///
+ /// Gets or sets the total number of notifications.
+ ///
+ public int TotalRecordCount { get; set; }
+ }
+}