From 181892bcfe88e6d76febf49ef57745d04552d08e Mon Sep 17 00:00:00 2001 From: sephrat <34862846+sephrat@users.noreply.github.com> Date: Fri, 27 May 2022 10:59:10 +0200 Subject: [PATCH] fix: Improve Swagger documentation (#4652) * Upgrade Swashbuckle dependency * Document /token response * Add support for Newtonsoft annotations in Swagger * Remove unecessary ActionResult [skip ci] --- src/Ombi.Api.Plex/Models/Metadata.cs | 4 ++++ src/Ombi/Controllers/V1/TokenController.cs | 18 +++++++++++++++--- src/Ombi/Extensions/StartupExtensions.cs | 2 ++ src/Ombi/Ombi.csproj | 3 ++- 4 files changed, 23 insertions(+), 4 deletions(-) diff --git a/src/Ombi.Api.Plex/Models/Metadata.cs b/src/Ombi.Api.Plex/Models/Metadata.cs index 3481e9b57..495a06c50 100644 --- a/src/Ombi.Api.Plex/Models/Metadata.cs +++ b/src/Ombi.Api.Plex/Models/Metadata.cs @@ -1,4 +1,5 @@ using System.Collections.Generic; +using Newtonsoft.Json; namespace Ombi.Api.Plex.Models { @@ -38,6 +39,9 @@ public class Metadata public string grandparentTheme { get; set; } public string chapterSource { get; set; } public Medium[] Media { get; set; } + + + [JsonProperty("guids")] public List Guid { get; set; } = new List(); } diff --git a/src/Ombi/Controllers/V1/TokenController.cs b/src/Ombi/Controllers/V1/TokenController.cs index 1dd08fcbe..657c95f91 100644 --- a/src/Ombi/Controllers/V1/TokenController.cs +++ b/src/Ombi/Controllers/V1/TokenController.cs @@ -16,9 +16,20 @@ using Ombi.Store.Repository; using Ombi.Core.Settings; using Ombi.Settings.Settings.Models; +using System.Text.Json.Serialization; +using Newtonsoft.Json; namespace Ombi.Controllers.V1 { + + + public class Token + { + [JsonProperty("access_token")] + public string AccessToken { get; set; } + public DateTime Expiration { get; set; } + } + [ApiV1] [Produces("application/json")] [ApiController] @@ -47,6 +58,7 @@ public TokenController(OmbiUserManager um, ITokenRepository token, /// [HttpPost] [ProducesResponseType(401)] + [ProducesResponseType(typeof(Token), 200)] public async Task GetToken([FromBody] UserAuthModel model) { if (!model.UsePlexOAuth) @@ -161,10 +173,10 @@ private async Task CreateToken(bool rememberMe, OmbiUser user) await _userManager.UpdateAsync(user); - return new JsonResult(new + return Ok(new Token { - access_token = accessToken, - expiration = token.ValidTo + AccessToken = accessToken, + Expiration = token.ValidTo }); } diff --git a/src/Ombi/Extensions/StartupExtensions.cs b/src/Ombi/Extensions/StartupExtensions.cs index 296339dd0..227085e07 100644 --- a/src/Ombi/Extensions/StartupExtensions.cs +++ b/src/Ombi/Extensions/StartupExtensions.cs @@ -79,6 +79,8 @@ public static void AddSwagger(this IServiceCollection services) c.DescribeAllParametersInCamelCase(); }); + + services.AddSwaggerGenNewtonsoftSupport(); } public static void AddAppSettingsValues(this IServiceCollection services, IConfigurationRoot configuration) diff --git a/src/Ombi/Ombi.csproj b/src/Ombi/Ombi.csproj index 69ee6b233..f0091002a 100644 --- a/src/Ombi/Ombi.csproj +++ b/src/Ombi/Ombi.csproj @@ -79,7 +79,8 @@ - + +