26 lines
957 B
C#
26 lines
957 B
C#
using Grpc.Core;
|
|
|
|
namespace Robotico.Nexus.Client;
|
|
|
|
/// <summary>Builds per-call gRPC metadata (logical database + optional bearer) for wire calls.</summary>
|
|
internal static class NexusCallMetadata
|
|
{
|
|
/// <summary>gRPC metadata key for logical database selection (matches Nexus server-side convention).</summary>
|
|
internal const string DatabaseKey = "x-nexus-database";
|
|
|
|
/// <summary>Builds headers for a single RPC bound to <paramref name="databaseName"/>.</summary>
|
|
internal static Metadata Build(string databaseName, string? bearerToken)
|
|
{
|
|
Metadata metadata = new() { { DatabaseKey, databaseName } };
|
|
if (!string.IsNullOrWhiteSpace(bearerToken))
|
|
{
|
|
string value = bearerToken.StartsWith("Bearer ", StringComparison.OrdinalIgnoreCase)
|
|
? bearerToken
|
|
: "Bearer " + bearerToken;
|
|
metadata.Add("Authorization", value);
|
|
}
|
|
|
|
return metadata;
|
|
}
|
|
}
|