From 5a658cf260c18c8f17e2ffc02af43832b9076a53 Mon Sep 17 00:00:00 2001 From: ZadenRB Date: Sun, 12 Apr 2020 19:17:46 -0600 Subject: [PATCH 1/4] Fix casing of JSON in Jellyfin API. Currently only affects startup wizard. --- Jellyfin.Api/Controllers/StartupController.cs | 1 + Jellyfin.Server/Extensions/ApiServiceCollectionExtensions.cs | 4 ++++ 2 files changed, 5 insertions(+) diff --git a/Jellyfin.Api/Controllers/StartupController.cs b/Jellyfin.Api/Controllers/StartupController.cs index afc9b8f3da..4e515bd8d8 100644 --- a/Jellyfin.Api/Controllers/StartupController.cs +++ b/Jellyfin.Api/Controllers/StartupController.cs @@ -6,6 +6,7 @@ using MediaBrowser.Controller.Configuration; using MediaBrowser.Controller.Library; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; +using Newtonsoft.Json; namespace Jellyfin.Api.Controllers { diff --git a/Jellyfin.Server/Extensions/ApiServiceCollectionExtensions.cs b/Jellyfin.Server/Extensions/ApiServiceCollectionExtensions.cs index dd4f9cd238..8e124d0701 100644 --- a/Jellyfin.Server/Extensions/ApiServiceCollectionExtensions.cs +++ b/Jellyfin.Server/Extensions/ApiServiceCollectionExtensions.cs @@ -71,6 +71,10 @@ namespace Jellyfin.Server.Extensions // Clear app parts to avoid other assemblies being picked up .ConfigureApplicationPartManager(a => a.ApplicationParts.Clear()) .AddApplicationPart(typeof(StartupController).Assembly) + .AddJsonOptions(options => + { + options.JsonSerializerOptions.PropertyNamingPolicy = null; + }) .AddControllersAsServices(); } From 16a66dc89c78180f8abb8a65c454b39b3b253a55 Mon Sep 17 00:00:00 2001 From: ZadenRB Date: Sun, 12 Apr 2020 19:25:02 -0600 Subject: [PATCH 2/4] Remove unused import, fix casing of startup wizard POST parameters --- Jellyfin.Api/Controllers/StartupController.cs | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/Jellyfin.Api/Controllers/StartupController.cs b/Jellyfin.Api/Controllers/StartupController.cs index 4e515bd8d8..1e490faaec 100644 --- a/Jellyfin.Api/Controllers/StartupController.cs +++ b/Jellyfin.Api/Controllers/StartupController.cs @@ -6,7 +6,6 @@ using MediaBrowser.Controller.Configuration; using MediaBrowser.Controller.Library; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; -using Newtonsoft.Json; namespace Jellyfin.Api.Controllers { @@ -61,18 +60,18 @@ namespace Jellyfin.Api.Controllers /// /// Endpoint for updating the initial startup wizard configuration. /// - /// The UI language culture. - /// The metadata country code. - /// The preferred language for metadata. + /// The UI language culture. + /// The metadata country code. + /// The preferred language for metadata. [HttpPost("Configuration")] public void UpdateInitialConfiguration( - [FromForm] string uiCulture, - [FromForm] string metadataCountryCode, - [FromForm] string preferredMetadataLanguage) + [FromForm] string UICulture, + [FromForm] string MetadataCountryCode, + [FromForm] string PreferredMetadataLanguage) { - _config.Configuration.UICulture = uiCulture; - _config.Configuration.MetadataCountryCode = metadataCountryCode; - _config.Configuration.PreferredMetadataLanguage = preferredMetadataLanguage; + _config.Configuration.UICulture = UICulture; + _config.Configuration.MetadataCountryCode = MetadataCountryCode; + _config.Configuration.PreferredMetadataLanguage = PreferredMetadataLanguage; _config.SaveConfiguration(); } From 72862d7b46a1656f7d798cf13e66f3cd6b820866 Mon Sep 17 00:00:00 2001 From: ZadenRB Date: Wed, 15 Apr 2020 00:24:15 -0600 Subject: [PATCH 3/4] Lowercase actual parameters in code and remove whitespace to comply with StyleCopAnalyzers --- Jellyfin.Api/Controllers/StartupController.cs | 18 +++++++++--------- .../ApiServiceCollectionExtensions.cs | 2 +- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/Jellyfin.Api/Controllers/StartupController.cs b/Jellyfin.Api/Controllers/StartupController.cs index 1e490faaec..afc9b8f3da 100644 --- a/Jellyfin.Api/Controllers/StartupController.cs +++ b/Jellyfin.Api/Controllers/StartupController.cs @@ -60,18 +60,18 @@ namespace Jellyfin.Api.Controllers /// /// Endpoint for updating the initial startup wizard configuration. /// - /// The UI language culture. - /// The metadata country code. - /// The preferred language for metadata. + /// The UI language culture. + /// The metadata country code. + /// The preferred language for metadata. [HttpPost("Configuration")] public void UpdateInitialConfiguration( - [FromForm] string UICulture, - [FromForm] string MetadataCountryCode, - [FromForm] string PreferredMetadataLanguage) + [FromForm] string uiCulture, + [FromForm] string metadataCountryCode, + [FromForm] string preferredMetadataLanguage) { - _config.Configuration.UICulture = UICulture; - _config.Configuration.MetadataCountryCode = MetadataCountryCode; - _config.Configuration.PreferredMetadataLanguage = PreferredMetadataLanguage; + _config.Configuration.UICulture = uiCulture; + _config.Configuration.MetadataCountryCode = metadataCountryCode; + _config.Configuration.PreferredMetadataLanguage = preferredMetadataLanguage; _config.SaveConfiguration(); } diff --git a/Jellyfin.Server/Extensions/ApiServiceCollectionExtensions.cs b/Jellyfin.Server/Extensions/ApiServiceCollectionExtensions.cs index 8e124d0701..0347511e67 100644 --- a/Jellyfin.Server/Extensions/ApiServiceCollectionExtensions.cs +++ b/Jellyfin.Server/Extensions/ApiServiceCollectionExtensions.cs @@ -71,7 +71,7 @@ namespace Jellyfin.Server.Extensions // Clear app parts to avoid other assemblies being picked up .ConfigureApplicationPartManager(a => a.ApplicationParts.Clear()) .AddApplicationPart(typeof(StartupController).Assembly) - .AddJsonOptions(options => + .AddJsonOptions(options => { options.JsonSerializerOptions.PropertyNamingPolicy = null; }) From bb288e16cce65fdf48b673204b7e67b94b21c034 Mon Sep 17 00:00:00 2001 From: ZadenRB Date: Wed, 15 Apr 2020 17:02:43 -0600 Subject: [PATCH 4/4] Document JSON options change --- Jellyfin.Server/Extensions/ApiServiceCollectionExtensions.cs | 1 + 1 file changed, 1 insertion(+) diff --git a/Jellyfin.Server/Extensions/ApiServiceCollectionExtensions.cs b/Jellyfin.Server/Extensions/ApiServiceCollectionExtensions.cs index 0347511e67..71ef9a69a2 100644 --- a/Jellyfin.Server/Extensions/ApiServiceCollectionExtensions.cs +++ b/Jellyfin.Server/Extensions/ApiServiceCollectionExtensions.cs @@ -73,6 +73,7 @@ namespace Jellyfin.Server.Extensions .AddApplicationPart(typeof(StartupController).Assembly) .AddJsonOptions(options => { + // Setting the naming policy to null leaves the property names as-is when serializing objects to JSON. options.JsonSerializerOptions.PropertyNamingPolicy = null; }) .AddControllersAsServices();