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);
}
}