From d400685cd1982cf3671a6a4dcef949884b9788ae Mon Sep 17 00:00:00 2001 From: Qstick Date: Mon, 29 May 2023 21:52:20 -0500 Subject: [PATCH] Add some API attributes --- src/Lidarr.Api.V1/Blocklist/BlocklistController.cs | 2 ++ src/Lidarr.Api.V1/Commands/CommandController.cs | 3 +++ src/Lidarr.Api.V1/Config/ConfigController.cs | 2 ++ src/Lidarr.Api.V1/CustomFilters/CustomFilterController.cs | 3 +++ src/Lidarr.Api.V1/DiskSpace/DiskSpaceController.cs | 1 + src/Lidarr.Api.V1/FileSystem/FileSystemController.cs | 6 +++++- src/Lidarr.Api.V1/Health/HealthController.cs | 1 + src/Lidarr.Api.V1/Localization/LocalizationController.cs | 1 + src/Lidarr.Api.V1/Logs/LogController.cs | 1 + src/Lidarr.Api.V1/Logs/LogFileControllerBase.cs | 2 ++ src/Lidarr.Api.V1/Parse/ParseController.cs | 1 + src/Lidarr.Api.V1/ProviderControllerBase.cs | 6 ++++++ src/Lidarr.Api.V1/Queue/QueueActionController.cs | 1 + src/Lidarr.Api.V1/Queue/QueueController.cs | 1 + src/Lidarr.Api.V1/Queue/QueueDetailsController.cs | 1 + src/Lidarr.Api.V1/Queue/QueueStatusController.cs | 1 + .../RemotePathMappings/RemotePathMappingController.cs | 2 ++ src/Lidarr.Api.V1/RootFolders/RootFolderController.cs | 2 ++ src/Lidarr.Api.V1/System/SystemController.cs | 3 +++ src/Lidarr.Api.V1/Tags/TagController.cs | 3 +++ src/Lidarr.Api.V1/Tags/TagDetailsController.cs | 1 + src/Lidarr.Api.V1/Update/UpdateController.cs | 1 + src/Lidarr.Api.V1/Wanted/CutoffController.cs | 1 + src/Lidarr.Api.V1/Wanted/MissingController.cs | 1 + 24 files changed, 46 insertions(+), 1 deletion(-) diff --git a/src/Lidarr.Api.V1/Blocklist/BlocklistController.cs b/src/Lidarr.Api.V1/Blocklist/BlocklistController.cs index 181645735..3a4b950e2 100644 --- a/src/Lidarr.Api.V1/Blocklist/BlocklistController.cs +++ b/src/Lidarr.Api.V1/Blocklist/BlocklistController.cs @@ -22,6 +22,7 @@ namespace Lidarr.Api.V1.Blocklist } [HttpGet] + [Produces("application/json")] public PagingResource GetBlocklist() { var pagingResource = Request.ReadPagingResourceFromRequest(); @@ -37,6 +38,7 @@ namespace Lidarr.Api.V1.Blocklist } [HttpDelete("bulk")] + [Produces("application/json")] public object Remove([FromBody] BlocklistBulkResource resource) { _blocklistService.Delete(resource.Ids); diff --git a/src/Lidarr.Api.V1/Commands/CommandController.cs b/src/Lidarr.Api.V1/Commands/CommandController.cs index e01b7d13b..b8d39152a 100644 --- a/src/Lidarr.Api.V1/Commands/CommandController.cs +++ b/src/Lidarr.Api.V1/Commands/CommandController.cs @@ -48,6 +48,8 @@ namespace Lidarr.Api.V1.Commands } [RestPostById] + [Consumes("application/json")] + [Produces("application/json")] public ActionResult StartCommand(CommandResource commandResource) { var commandType = @@ -73,6 +75,7 @@ namespace Lidarr.Api.V1.Commands } [HttpGet] + [Produces("application/json")] public List GetStartedCommands() { return _commandQueueManager.All() diff --git a/src/Lidarr.Api.V1/Config/ConfigController.cs b/src/Lidarr.Api.V1/Config/ConfigController.cs index 7969bf2da..f9f42d1d3 100644 --- a/src/Lidarr.Api.V1/Config/ConfigController.cs +++ b/src/Lidarr.Api.V1/Config/ConfigController.cs @@ -23,6 +23,7 @@ namespace Lidarr.Api.V1.Config } [HttpGet] + [Produces("application/json")] public TResource GetConfig() { var resource = ToResource(_configService); @@ -32,6 +33,7 @@ namespace Lidarr.Api.V1.Config } [RestPutById] + [Consumes("application/json")] public virtual ActionResult SaveConfig(TResource resource) { var dictionary = resource.GetType() diff --git a/src/Lidarr.Api.V1/CustomFilters/CustomFilterController.cs b/src/Lidarr.Api.V1/CustomFilters/CustomFilterController.cs index 7d17175d8..603946da8 100644 --- a/src/Lidarr.Api.V1/CustomFilters/CustomFilterController.cs +++ b/src/Lidarr.Api.V1/CustomFilters/CustomFilterController.cs @@ -23,12 +23,14 @@ namespace Lidarr.Api.V1.CustomFilters } [HttpGet] + [Produces("application/json")] public List GetCustomFilters() { return _customFilterService.All().ToResource(); } [RestPostById] + [Consumes("application/json")] public ActionResult AddCustomFilter(CustomFilterResource resource) { var customFilter = _customFilterService.Add(resource.ToModel()); @@ -37,6 +39,7 @@ namespace Lidarr.Api.V1.CustomFilters } [RestPutById] + [Consumes("application/json")] public ActionResult UpdateCustomFilter(CustomFilterResource resource) { _customFilterService.Update(resource.ToModel()); diff --git a/src/Lidarr.Api.V1/DiskSpace/DiskSpaceController.cs b/src/Lidarr.Api.V1/DiskSpace/DiskSpaceController.cs index b4b579638..6a4b77c7a 100644 --- a/src/Lidarr.Api.V1/DiskSpace/DiskSpaceController.cs +++ b/src/Lidarr.Api.V1/DiskSpace/DiskSpaceController.cs @@ -16,6 +16,7 @@ namespace Lidarr.Api.V1.DiskSpace } [HttpGet] + [Produces("application/json")] public List GetFreeSpace() { return _diskSpaceService.GetFreeSpace().ConvertAll(DiskSpaceResourceMapper.MapToResource); diff --git a/src/Lidarr.Api.V1/FileSystem/FileSystemController.cs b/src/Lidarr.Api.V1/FileSystem/FileSystemController.cs index 88e6f273f..72ad23473 100644 --- a/src/Lidarr.Api.V1/FileSystem/FileSystemController.cs +++ b/src/Lidarr.Api.V1/FileSystem/FileSystemController.cs @@ -1,3 +1,4 @@ +using System; using System.Linq; using Lidarr.Http; using Microsoft.AspNetCore.Mvc; @@ -23,12 +24,14 @@ namespace Lidarr.Api.V1.FileSystem } [HttpGet] + [Produces("application/json")] public IActionResult GetContents(string path, bool includeFiles = false, bool allowFoldersWithoutTrailingSlashes = false) { return Ok(_fileSystemLookupService.LookupContents(path, includeFiles, allowFoldersWithoutTrailingSlashes)); } [HttpGet("type")] + [Produces("application/json")] public object GetEntityType(string path) { if (_diskProvider.FileExists(path)) @@ -41,11 +44,12 @@ namespace Lidarr.Api.V1.FileSystem } [HttpGet("mediafiles")] + [Produces("application/json")] public object GetMediaFiles(string path) { if (!_diskProvider.FolderExists(path)) { - return global::System.Array.Empty(); + return Array.Empty(); } return _diskScanService.GetAudioFiles(path).Select(f => new diff --git a/src/Lidarr.Api.V1/Health/HealthController.cs b/src/Lidarr.Api.V1/Health/HealthController.cs index cd83893e6..ac639d08f 100644 --- a/src/Lidarr.Api.V1/Health/HealthController.cs +++ b/src/Lidarr.Api.V1/Health/HealthController.cs @@ -28,6 +28,7 @@ namespace Lidarr.Api.V1.Health } [HttpGet] + [Produces("application/json")] public List GetHealth() { return _healthCheckService.Results().ToResource(); diff --git a/src/Lidarr.Api.V1/Localization/LocalizationController.cs b/src/Lidarr.Api.V1/Localization/LocalizationController.cs index fa09242d7..5fa6caa18 100644 --- a/src/Lidarr.Api.V1/Localization/LocalizationController.cs +++ b/src/Lidarr.Api.V1/Localization/LocalizationController.cs @@ -21,6 +21,7 @@ namespace Lidarr.Api.V1.Localization } [HttpGet] + [Produces("application/json")] public string GetLocalizationDictionary() { return JsonSerializer.Serialize(_localizationService.GetLocalizationDictionary().ToResource(), _serializerSettings); diff --git a/src/Lidarr.Api.V1/Logs/LogController.cs b/src/Lidarr.Api.V1/Logs/LogController.cs index b9808e97f..96f76e3a7 100644 --- a/src/Lidarr.Api.V1/Logs/LogController.cs +++ b/src/Lidarr.Api.V1/Logs/LogController.cs @@ -17,6 +17,7 @@ namespace Lidarr.Api.V1.Logs } [HttpGet] + [Produces("application/json")] public PagingResource GetLogs() { var pagingResource = Request.ReadPagingResourceFromRequest(); diff --git a/src/Lidarr.Api.V1/Logs/LogFileControllerBase.cs b/src/Lidarr.Api.V1/Logs/LogFileControllerBase.cs index 102e38b20..cf4581c46 100644 --- a/src/Lidarr.Api.V1/Logs/LogFileControllerBase.cs +++ b/src/Lidarr.Api.V1/Logs/LogFileControllerBase.cs @@ -26,6 +26,7 @@ namespace Lidarr.Api.V1.Logs } [HttpGet] + [Produces("application/json")] public List GetLogFilesResponse() { var result = new List(); @@ -51,6 +52,7 @@ namespace Lidarr.Api.V1.Logs } [HttpGet(@"{filename:regex([[-.a-zA-Z0-9]]+?\.txt)}")] + [Produces("text/plain")] public IActionResult GetLogFileResponse(string filename) { LogManager.Flush(); diff --git a/src/Lidarr.Api.V1/Parse/ParseController.cs b/src/Lidarr.Api.V1/Parse/ParseController.cs index 8cab2252b..2c8bfffaa 100644 --- a/src/Lidarr.Api.V1/Parse/ParseController.cs +++ b/src/Lidarr.Api.V1/Parse/ParseController.cs @@ -17,6 +17,7 @@ namespace Lidarr.Api.V1.Parse } [HttpGet] + [Produces("application/json")] public ParseResource Parse(string title) { var parsedAlbumInfo = Parser.ParseAlbumTitle(title); diff --git a/src/Lidarr.Api.V1/ProviderControllerBase.cs b/src/Lidarr.Api.V1/ProviderControllerBase.cs index 4e2a1c7e7..79c61d9dc 100644 --- a/src/Lidarr.Api.V1/ProviderControllerBase.cs +++ b/src/Lidarr.Api.V1/ProviderControllerBase.cs @@ -41,6 +41,7 @@ namespace Lidarr.Api.V1 } [HttpGet] + [Produces("application/json")] public List GetAll() { var providerDefinitions = _providerFactory.All(); @@ -58,6 +59,7 @@ namespace Lidarr.Api.V1 } [RestPostById] + [Consumes("application/json")] public ActionResult CreateProvider([FromBody] TProviderResource providerResource, [FromQuery] bool forceSave = false) { var providerDefinition = GetDefinition(providerResource, true, !forceSave, false); @@ -73,6 +75,7 @@ namespace Lidarr.Api.V1 } [RestPutById] + [Consumes("application/json")] public ActionResult UpdateProvider([FromBody] TProviderResource providerResource, [FromQuery] bool forceSave = false) { var providerDefinition = GetDefinition(providerResource, true, !forceSave, false); @@ -108,6 +111,7 @@ namespace Lidarr.Api.V1 } [HttpGet("schema")] + [Produces("application/json")] public List GetTemplates() { var defaultDefinitions = _providerFactory.GetDefaultDefinitions().OrderBy(p => p.ImplementationName).ToList(); @@ -131,6 +135,7 @@ namespace Lidarr.Api.V1 [SkipValidation(true, false)] [HttpPost("test")] + [Consumes("application/json")] public object Test([FromBody] TProviderResource providerResource) { var providerDefinition = GetDefinition(providerResource, true, true, true); @@ -164,6 +169,7 @@ namespace Lidarr.Api.V1 [SkipValidation] [HttpPost("action/{name}")] + [Consumes("application/json")] public IActionResult RequestAction(string name, [FromBody] TProviderResource resource) { var providerDefinition = GetDefinition(resource, false, false, false); diff --git a/src/Lidarr.Api.V1/Queue/QueueActionController.cs b/src/Lidarr.Api.V1/Queue/QueueActionController.cs index 5c79d6045..dd2c52589 100644 --- a/src/Lidarr.Api.V1/Queue/QueueActionController.cs +++ b/src/Lidarr.Api.V1/Queue/QueueActionController.cs @@ -35,6 +35,7 @@ namespace Lidarr.Api.V1.Queue } [HttpPost("grab/bulk")] + [Consumes("application/json")] public object Grab([FromBody] QueueBulkResource resource) { foreach (var id in resource.Ids) diff --git a/src/Lidarr.Api.V1/Queue/QueueController.cs b/src/Lidarr.Api.V1/Queue/QueueController.cs index 40402bb3e..f4cd98fc2 100644 --- a/src/Lidarr.Api.V1/Queue/QueueController.cs +++ b/src/Lidarr.Api.V1/Queue/QueueController.cs @@ -90,6 +90,7 @@ namespace Lidarr.Api.V1.Queue } [HttpGet] + [Produces("application/json")] public PagingResource GetQueue(bool includeUnknownArtistItems = false, bool includeArtist = false, bool includeAlbum = false) { var pagingResource = Request.ReadPagingResourceFromRequest(); diff --git a/src/Lidarr.Api.V1/Queue/QueueDetailsController.cs b/src/Lidarr.Api.V1/Queue/QueueDetailsController.cs index 548954675..fffe8dd94 100644 --- a/src/Lidarr.Api.V1/Queue/QueueDetailsController.cs +++ b/src/Lidarr.Api.V1/Queue/QueueDetailsController.cs @@ -32,6 +32,7 @@ namespace Lidarr.Api.V1.Queue } [HttpGet] + [Produces("application/json")] public List GetQueue(int? artistId, [FromQuery]List albumIds, bool includeArtist = false, bool includeAlbum = true) { var queue = _queueService.GetQueue(); diff --git a/src/Lidarr.Api.V1/Queue/QueueStatusController.cs b/src/Lidarr.Api.V1/Queue/QueueStatusController.cs index 1243f5b15..ea791a7e2 100644 --- a/src/Lidarr.Api.V1/Queue/QueueStatusController.cs +++ b/src/Lidarr.Api.V1/Queue/QueueStatusController.cs @@ -36,6 +36,7 @@ namespace Lidarr.Api.V1.Queue } [HttpGet] + [Produces("application/json")] public QueueStatusResource GetQueueStatus() { _broadcastDebounce.Pause(); diff --git a/src/Lidarr.Api.V1/RemotePathMappings/RemotePathMappingController.cs b/src/Lidarr.Api.V1/RemotePathMappings/RemotePathMappingController.cs index 08be0a54f..f0679e27b 100644 --- a/src/Lidarr.Api.V1/RemotePathMappings/RemotePathMappingController.cs +++ b/src/Lidarr.Api.V1/RemotePathMappings/RemotePathMappingController.cs @@ -40,6 +40,7 @@ namespace Lidarr.Api.V1.RemotePathMappings } [RestPostById] + [Consumes("application/json")] public ActionResult CreateMapping(RemotePathMappingResource resource) { var model = resource.ToModel(); @@ -48,6 +49,7 @@ namespace Lidarr.Api.V1.RemotePathMappings } [HttpGet] + [Produces("application/json")] public List GetMappings() { return _remotePathMappingService.All().ToResource(); diff --git a/src/Lidarr.Api.V1/RootFolders/RootFolderController.cs b/src/Lidarr.Api.V1/RootFolders/RootFolderController.cs index 346e7d0ca..f1f06ccdc 100644 --- a/src/Lidarr.Api.V1/RootFolders/RootFolderController.cs +++ b/src/Lidarr.Api.V1/RootFolders/RootFolderController.cs @@ -60,6 +60,7 @@ namespace Lidarr.Api.V1.RootFolders } [RestPostById] + [Consumes("application/json")] public ActionResult CreateRootFolder(RootFolderResource rootFolderResource) { var model = rootFolderResource.ToModel(); @@ -83,6 +84,7 @@ namespace Lidarr.Api.V1.RootFolders } [HttpGet] + [Produces("application/json")] public List GetRootFolders() { return _rootFolderService.AllWithSpaceStats().ToResource(); diff --git a/src/Lidarr.Api.V1/System/SystemController.cs b/src/Lidarr.Api.V1/System/SystemController.cs index cf9360f7c..7977c282a 100644 --- a/src/Lidarr.Api.V1/System/SystemController.cs +++ b/src/Lidarr.Api.V1/System/SystemController.cs @@ -54,6 +54,7 @@ namespace Lidarr.Api.V1.System } [HttpGet("status")] + [Produces("application/json")] public SystemResource GetStatus() { return new SystemResource @@ -93,6 +94,7 @@ namespace Lidarr.Api.V1.System } [HttpGet("routes")] + [Produces("application/json")] public IActionResult GetRoutes() { using (var sw = new StringWriter()) @@ -104,6 +106,7 @@ namespace Lidarr.Api.V1.System } [HttpGet("routes/duplicate")] + [Produces("application/json")] public object DuplicateRoutes() { return _detector.GetDuplicateEndpoints(_endpointData); diff --git a/src/Lidarr.Api.V1/Tags/TagController.cs b/src/Lidarr.Api.V1/Tags/TagController.cs index 3458511e5..fa2081a54 100644 --- a/src/Lidarr.Api.V1/Tags/TagController.cs +++ b/src/Lidarr.Api.V1/Tags/TagController.cs @@ -28,18 +28,21 @@ namespace Lidarr.Api.V1.Tags } [HttpGet] + [Produces("application/json")] public List GetAll() { return _tagService.All().ToResource(); } [RestPostById] + [Consumes("application/json")] public ActionResult Create(TagResource resource) { return Created(_tagService.Add(resource.ToModel()).Id); } [RestPutById] + [Consumes("application/json")] public ActionResult Update(TagResource resource) { _tagService.Update(resource.ToModel()); diff --git a/src/Lidarr.Api.V1/Tags/TagDetailsController.cs b/src/Lidarr.Api.V1/Tags/TagDetailsController.cs index 4016d179d..6371fa2d6 100644 --- a/src/Lidarr.Api.V1/Tags/TagDetailsController.cs +++ b/src/Lidarr.Api.V1/Tags/TagDetailsController.cs @@ -22,6 +22,7 @@ namespace Lidarr.Api.V1.Tags } [HttpGet] + [Produces("application/json")] public List GetAll() { var tags = _tagService.Details().ToResource(); diff --git a/src/Lidarr.Api.V1/Update/UpdateController.cs b/src/Lidarr.Api.V1/Update/UpdateController.cs index e6a6549ac..27cecce17 100644 --- a/src/Lidarr.Api.V1/Update/UpdateController.cs +++ b/src/Lidarr.Api.V1/Update/UpdateController.cs @@ -21,6 +21,7 @@ namespace Lidarr.Api.V1.Update } [HttpGet] + [Produces("application/json")] public List GetRecentUpdates() { var resources = _recentUpdateProvider.GetRecentUpdatePackages() diff --git a/src/Lidarr.Api.V1/Wanted/CutoffController.cs b/src/Lidarr.Api.V1/Wanted/CutoffController.cs index 5bec60323..9b0bb6208 100644 --- a/src/Lidarr.Api.V1/Wanted/CutoffController.cs +++ b/src/Lidarr.Api.V1/Wanted/CutoffController.cs @@ -29,6 +29,7 @@ namespace Lidarr.Api.V1.Wanted } [HttpGet] + [Produces("application/json")] public PagingResource GetCutoffUnmetAlbums(bool includeArtist = false) { var pagingResource = Request.ReadPagingResourceFromRequest(); diff --git a/src/Lidarr.Api.V1/Wanted/MissingController.cs b/src/Lidarr.Api.V1/Wanted/MissingController.cs index 16b2e8ff2..fd7fa6984 100644 --- a/src/Lidarr.Api.V1/Wanted/MissingController.cs +++ b/src/Lidarr.Api.V1/Wanted/MissingController.cs @@ -25,6 +25,7 @@ namespace Lidarr.Api.V1.Wanted } [HttpGet] + [Produces("application/json")] public PagingResource GetMissingAlbums(bool includeArtist = false) { var pagingResource = Request.ReadPagingResourceFromRequest();