615b487a77
Adds missing <summary>/<param> XML docs across 99 server, worker, and test files so CommentChecker reports zero issues (TreatWarningsAsErrors needs the analyzer clean). Bundles in WIP dashboard work: NavSection extraction, MainLayout/site.css/js styling alignment, and DashboardOptions/Auth tweaks.
33 lines
1.2 KiB
C#
33 lines
1.2 KiB
C#
using System.Text.Json;
|
|
|
|
namespace ZB.MOM.WW.MxGateway.Server.Security.Authentication;
|
|
|
|
public static class ApiKeyConstraintSerializer
|
|
{
|
|
private static readonly JsonSerializerOptions JsonOptions = new()
|
|
{
|
|
PropertyNamingPolicy = JsonNamingPolicy.SnakeCaseLower,
|
|
WriteIndented = false,
|
|
};
|
|
|
|
/// <summary>Serializes API key constraints to JSON, or returns null if the constraints are empty.</summary>
|
|
/// <param name="constraints">The constraints to serialize.</param>
|
|
public static string? Serialize(ApiKeyConstraints constraints)
|
|
{
|
|
ArgumentNullException.ThrowIfNull(constraints);
|
|
return constraints.IsEmpty ? null : JsonSerializer.Serialize(constraints, JsonOptions);
|
|
}
|
|
|
|
/// <summary>Deserializes API key constraints from JSON, or returns empty constraints if JSON is null or whitespace.</summary>
|
|
/// <param name="json">The JSON string to deserialize.</param>
|
|
public static ApiKeyConstraints Deserialize(string? json)
|
|
{
|
|
if (string.IsNullOrWhiteSpace(json))
|
|
{
|
|
return ApiKeyConstraints.Empty;
|
|
}
|
|
|
|
return JsonSerializer.Deserialize<ApiKeyConstraints>(json, JsonOptions) ?? ApiKeyConstraints.Empty;
|
|
}
|
|
}
|