using System.Net.Http.Headers; using Elsa.Api.Client.Options; using Microsoft.Extensions.Options; namespace Elsa.Api.Client.HttpMessageHandlers; /// /// An that configures the outgoing HTTP request to use an API key as the authorization header. /// public class ApiKeyHttpMessageHandler : DelegatingHandler { private readonly ElsaClientOptions _options; /// /// Initializes a new instance of the class. /// public ApiKeyHttpMessageHandler(IOptions options) { _options = options.Value; } /// protected override async Task SendAsync(HttpRequestMessage request, CancellationToken cancellationToken) { var apiKey = _options.ApiKey; request.Headers.Authorization = new AuthenticationHeaderValue("ApiKey", apiKey); return await base.SendAsync(request, cancellationToken); } }