diff --git a/Jellyfin.Api/Controllers/NotificationsController.cs b/Jellyfin.Api/Controllers/NotificationsController.cs
index 31747584e1..c8a5be89b3 100644
--- a/Jellyfin.Api/Controllers/NotificationsController.cs
+++ b/Jellyfin.Api/Controllers/NotificationsController.cs
@@ -36,14 +36,14 @@ namespace Jellyfin.Api.Controllers
///
/// Endpoint for getting a user's notifications.
///
- /// The UserID.
+ /// The user's ID.
/// An optional filter by IsRead.
/// The optional index to start at. All notifications with a lower index will be dropped from the results.
/// 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(
- [FromRoute] string userID,
+ [FromRoute] string userId,
[FromQuery] bool? isRead,
[FromQuery] int? startIndex,
[FromQuery] int? limit)
@@ -54,11 +54,11 @@ namespace Jellyfin.Api.Controllers
///
/// Endpoint for getting a user's notification summary.
///
- /// The userID.
+ /// The user's ID.
/// Notifications summary for the user.
[HttpGet("{UserID}/Summary")]
public NotificationsSummaryDto GetNotificationsSummary(
- [FromRoute] string userID)
+ [FromRoute] string userId)
{
return new NotificationsSummaryDto();
}
@@ -95,14 +95,14 @@ namespace Jellyfin.Api.Controllers
[FromForm] string name,
[FromForm] string description,
[FromForm] string? url,
- [FromForm] NotificationLevel level)
+ [FromForm] NotificationLevel? level)
{
var notification = new NotificationRequest
{
Name = name,
Description = description,
Url = url,
- Level = level,
+ Level = level ?? NotificationLevel.Normal,
UserIds = _userManager.Users.Where(i => i.Policy.IsAdministrator).Select(i => i.Id).ToArray(),
Date = DateTime.UtcNow,
};
@@ -113,11 +113,11 @@ namespace Jellyfin.Api.Controllers
///
/// Endpoint to set notifications as read.
///
- /// The userID.
+ /// The userID.
/// The IDs of notifications which should be set as read.
[HttpPost("{UserID}/Read")]
public void SetRead(
- [FromRoute] string userID,
+ [FromRoute] string userId,
[FromForm] List ids)
{
}
@@ -125,11 +125,11 @@ namespace Jellyfin.Api.Controllers
///
/// Endpoint to set notifications as unread.
///
- /// The userID.
+ /// The userID.
/// The IDs of notifications which should be set as unread.
[HttpPost("{UserID}/Unread")]
public void SetUnread(
- [FromRoute] string userID,
+ [FromRoute] string userId,
[FromForm] List ids)
{
}
diff --git a/Jellyfin.Api/Models/NotificationDtos/NotificationDto.cs b/Jellyfin.Api/Models/NotificationDtos/NotificationDto.cs
index 7ecd2a49db..c849ecd75d 100644
--- a/Jellyfin.Api/Models/NotificationDtos/NotificationDto.cs
+++ b/Jellyfin.Api/Models/NotificationDtos/NotificationDto.cs
@@ -1,3 +1,5 @@
+#nullable enable
+
using System;
using MediaBrowser.Model.Notifications;
@@ -24,28 +26,28 @@ namespace Jellyfin.Api.Models.NotificationDtos
public DateTime Date { get; set; }
///
- /// Gets or sets a value indicating whether the notification has been read.
+ /// Gets or sets a value indicating whether the notification has been read. Defaults to false.
///
- public bool IsRead { get; set; }
+ public bool IsRead { get; set; } = false;
///
- /// Gets or sets the notification's name.
+ /// Gets or sets the notification's name. Defaults to an empty string.
///
public string Name { get; set; } = string.Empty;
///
- /// Gets or sets the notification's description.
+ /// Gets or sets the notification's description. Defaults to an empty string.
///
public string Description { get; set; } = string.Empty;
///
- /// Gets or sets the notification's URL.
+ /// Gets or sets the notification's URL. Defaults to null.
///
- public string Url { get; set; } = string.Empty;
+ public string? Url { get; set; }
///
/// Gets or sets the notification level.
///
- public NotificationLevel Level { get; set; }
+ public NotificationLevel? Level { get; set; }
}
}
diff --git a/Jellyfin.Api/Models/NotificationDtos/NotificationsSummaryDto.cs b/Jellyfin.Api/Models/NotificationDtos/NotificationsSummaryDto.cs
index c18ab545d3..b3746ee2da 100644
--- a/Jellyfin.Api/Models/NotificationDtos/NotificationsSummaryDto.cs
+++ b/Jellyfin.Api/Models/NotificationDtos/NotificationsSummaryDto.cs
@@ -1,3 +1,5 @@
+#nullable enable
+
using MediaBrowser.Model.Notifications;
namespace Jellyfin.Api.Models.NotificationDtos
@@ -15,6 +17,6 @@ namespace Jellyfin.Api.Models.NotificationDtos
///
/// Gets or sets the maximum unread notification level.
///
- public NotificationLevel MaxUnreadNotificationLevel { get; set; }
+ public NotificationLevel? MaxUnreadNotificationLevel { get; set; }
}
}
diff --git a/Jellyfin.Server/Extensions/ApiServiceCollectionExtensions.cs b/Jellyfin.Server/Extensions/ApiServiceCollectionExtensions.cs
index b3164e068f..dd4f9cd238 100644
--- a/Jellyfin.Server/Extensions/ApiServiceCollectionExtensions.cs
+++ b/Jellyfin.Server/Extensions/ApiServiceCollectionExtensions.cs
@@ -71,7 +71,6 @@ namespace Jellyfin.Server.Extensions
// Clear app parts to avoid other assemblies being picked up
.ConfigureApplicationPartManager(a => a.ApplicationParts.Clear())
.AddApplicationPart(typeof(StartupController).Assembly)
- .AddApplicationPart(typeof(NotificationsController).Assembly)
.AddControllersAsServices();
}