From 8b8cd148340e09665449d339d5e64d598cd0089e Mon Sep 17 00:00:00 2001 From: Mark McDowall Date: Sat, 3 Jan 2026 13:13:01 -0800 Subject: [PATCH] Add v5 Metadata endpoints --- .../Metadata/MetadataBulkResource.cs | 12 +++++++ .../Metadata/MetadataController.cs | 31 +++++++++++++++++++ .../Metadata/MetadataResource.cs | 30 ++++++++++++++++++ 3 files changed, 73 insertions(+) create mode 100644 src/Sonarr.Api.V5/Metadata/MetadataBulkResource.cs create mode 100644 src/Sonarr.Api.V5/Metadata/MetadataController.cs create mode 100644 src/Sonarr.Api.V5/Metadata/MetadataResource.cs diff --git a/src/Sonarr.Api.V5/Metadata/MetadataBulkResource.cs b/src/Sonarr.Api.V5/Metadata/MetadataBulkResource.cs new file mode 100644 index 000000000..e8aa6f040 --- /dev/null +++ b/src/Sonarr.Api.V5/Metadata/MetadataBulkResource.cs @@ -0,0 +1,12 @@ +using NzbDrone.Core.Extras.Metadata; +using Sonarr.Api.V5.Provider; + +namespace Sonarr.Api.V5.Metadata; + +public class MetadataBulkResource : ProviderBulkResource +{ +} + +public class MetadataBulkResourceMapper : ProviderBulkResourceMapper +{ +} diff --git a/src/Sonarr.Api.V5/Metadata/MetadataController.cs b/src/Sonarr.Api.V5/Metadata/MetadataController.cs new file mode 100644 index 000000000..380324856 --- /dev/null +++ b/src/Sonarr.Api.V5/Metadata/MetadataController.cs @@ -0,0 +1,31 @@ +using Microsoft.AspNetCore.Mvc; +using NzbDrone.Core.Extras.Metadata; +using NzbDrone.SignalR; +using Sonarr.Api.V5.Provider; +using Sonarr.Http; + +namespace Sonarr.Api.V5.Metadata; + +[V5ApiController] +public class MetadataController : ProviderControllerBase +{ + public static readonly MetadataResourceMapper ResourceMapper = new(); + public static readonly MetadataBulkResourceMapper BulkResourceMapper = new(); + + public MetadataController(IBroadcastSignalRMessage signalRBroadcaster, IMetadataFactory metadataFactory) + : base(signalRBroadcaster, metadataFactory, "metadata", ResourceMapper, BulkResourceMapper) + { + } + + [NonAction] + public override ActionResult UpdateProvider([FromBody] MetadataBulkResource providerResource) + { + throw new NotImplementedException(); + } + + [NonAction] + public override ActionResult DeleteProviders([FromBody] MetadataBulkResource resource) + { + throw new NotImplementedException(); + } +} diff --git a/src/Sonarr.Api.V5/Metadata/MetadataResource.cs b/src/Sonarr.Api.V5/Metadata/MetadataResource.cs new file mode 100644 index 000000000..13a894e3a --- /dev/null +++ b/src/Sonarr.Api.V5/Metadata/MetadataResource.cs @@ -0,0 +1,30 @@ +using NzbDrone.Core.Extras.Metadata; +using Sonarr.Api.V5.Provider; + +namespace Sonarr.Api.V5.Metadata; + +public class MetadataResource : ProviderResource +{ + public bool Enable { get; set; } +} + +public class MetadataResourceMapper : ProviderResourceMapper +{ + public override MetadataResource ToResource(MetadataDefinition definition) + { + var resource = base.ToResource(definition); + + resource.Enable = definition.Enable; + + return resource; + } + + public override MetadataDefinition ToModel(MetadataResource resource, MetadataDefinition? existingDefinition) + { + var definition = base.ToModel(resource, existingDefinition); + + definition.Enable = resource.Enable; + + return definition; + } +}