ApiHeaders of IApiClient can now be set

This commit is contained in:
Jordan Brown
2018-10-13 09:14:46 -04:00
parent 694f2426da
commit 08f6c48574
2 changed files with 13 additions and 4 deletions
+12 -3
View File
@@ -21,7 +21,11 @@ namespace Tgstation.Server.Client
public Uri Url { get; }
/// <inheritdoc />
public ApiHeaders Headers { get; }
public ApiHeaders Headers
{
get => headers;
set => headers = value ?? throw new InvalidOperationException("Cannot set null headers!");
}
/// <inheritdoc />
public TimeSpan Timeout
@@ -40,6 +44,11 @@ namespace Tgstation.Server.Client
/// </summary>
readonly List<IRequestLogger> requestLoggers;
/// <summary>
/// Backing field for <see cref="Headers"/>
/// </summary>
ApiHeaders headers;
/// <summary>
/// Construct an <see cref="ApiClient"/>
/// </summary>
@@ -50,7 +59,7 @@ namespace Tgstation.Server.Client
{
this.httpClient = httpClient ?? throw new ArgumentNullException(nameof(httpClient));
Url = url ?? throw new ArgumentNullException(nameof(url));
Headers = apiHeaders ?? throw new ArgumentNullException(nameof(apiHeaders));
headers = apiHeaders ?? throw new ArgumentNullException(nameof(apiHeaders));
requestLoggers = new List<IRequestLogger>();
}
@@ -89,7 +98,7 @@ namespace Tgstation.Server.Client
if (body != null)
message.Content = new StringContent(JsonConvert.SerializeObject(body, serializerSettings), Encoding.UTF8, ApiHeaders.ApplicationJson);
Headers.SetRequestHeaders(message.Headers, instanceId);
headers.SetRequestHeaders(message.Headers, instanceId);
await Task.WhenAll(requestLoggers.Select(x => x.LogRequest(message, cancellationToken))).ConfigureAwait(false);
+1 -1
View File
@@ -10,7 +10,7 @@ namespace Tgstation.Server.Client
/// </summary>
interface IApiClient : IDisposable
{
ApiHeaders Headers { get; }
ApiHeaders Headers { get; set; }
Uri Url { get; }