From d86d78954e1a833ddcbf9687f7e9ed9b19f05973 Mon Sep 17 00:00:00 2001 From: Bogdan Date: Sun, 23 Jul 2023 00:26:56 +0300 Subject: [PATCH] New: Add ValueHash for hidden API keys via the API --- src/Sonarr.Http/ClientSchema/Field.cs | 1 + src/Sonarr.Http/ClientSchema/SchemaBuilder.cs | 8 +++++++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/src/Sonarr.Http/ClientSchema/Field.cs b/src/Sonarr.Http/ClientSchema/Field.cs index 4769b5a99..a75a23a37 100644 --- a/src/Sonarr.Http/ClientSchema/Field.cs +++ b/src/Sonarr.Http/ClientSchema/Field.cs @@ -13,6 +13,7 @@ namespace Sonarr.Http.ClientSchema public string HelpTextWarning { get; set; } public string HelpLink { get; set; } public object Value { get; set; } + public string ValueHash { get; set; } public string Type { get; set; } public bool Advanced { get; set; } public List SelectOptions { get; set; } diff --git a/src/Sonarr.Http/ClientSchema/SchemaBuilder.cs b/src/Sonarr.Http/ClientSchema/SchemaBuilder.cs index dcbcb8ed0..3e725ea71 100644 --- a/src/Sonarr.Http/ClientSchema/SchemaBuilder.cs +++ b/src/Sonarr.Http/ClientSchema/SchemaBuilder.cs @@ -7,6 +7,7 @@ using NzbDrone.Common.EnsureThat; using NzbDrone.Common.Extensions; using NzbDrone.Common.Reflection; using NzbDrone.Common.Serializer; +using NzbDrone.Core; using NzbDrone.Core.Annotations; namespace Sonarr.Http.ClientSchema @@ -30,8 +31,13 @@ namespace Sonarr.Http.ClientSchema field.Value = mapping.GetterFunc(model); if (field.Value != null && !field.Value.Equals(string.Empty) && - (field.Privacy == PrivacyLevel.ApiKey || field.Privacy == PrivacyLevel.Password)) + field.Privacy is PrivacyLevel.ApiKey or PrivacyLevel.Password) { + if (field.Privacy == PrivacyLevel.ApiKey) + { + field.ValueHash = field.Value.ToString()?.SHA256Hash()?.AsSpan(0, 6).ToString(); + } + field.Value = PRIVATE_VALUE; }