use wrapped dictionary as api params collection

This commit is contained in:
2024-12-09 07:46:58 +01:00
parent cdd7915142
commit 45b58aa5a2
3 changed files with 25 additions and 10 deletions

View File

@@ -17,7 +17,7 @@ public class ApiClient(string apiUrl) : IApiClient
public ILogger Log { get; set; } = NullLogger.Instance;
public virtual async Task<ApiResponse> SendRequest(string route, HttpMethod method, ApiMessage? message, IDictionary<string, object>? @params, IApiMessageSerializer? serializer)
public virtual async Task<ApiResponse> SendRequest(string route, HttpMethod method, ApiMessage? message, ApiParameterCollection? @params, IApiMessageSerializer? serializer)
{
serializer ??= Serializer;
@@ -28,7 +28,7 @@ public class ApiClient(string apiUrl) : IApiClient
return new(res.StatusCode);
}
public virtual async Task<ApiResponse<TResponse>> SendRequest<TResponse>(string route, HttpMethod method, ApiMessage? message, IDictionary<string, object>? @params, IApiMessageSerializer? serializer) where TResponse : ApiMessage
public virtual async Task<ApiResponse<TResponse>> SendRequest<TResponse>(string route, HttpMethod method, ApiMessage? message, ApiParameterCollection? @params, IApiMessageSerializer? serializer) where TResponse : ApiMessage
{
serializer ??= Serializer;
@@ -43,7 +43,7 @@ public class ApiClient(string apiUrl) : IApiClient
return new(res.StatusCode, result);
}
protected virtual async Task<HttpResponseMessage> Send(string route, HttpMethod method, ApiMessage? message, IDictionary<string, object>? @params, IApiMessageSerializer serializer)
protected virtual async Task<HttpResponseMessage> Send(string route, HttpMethod method, ApiMessage? message, ApiParameterCollection? @params, IApiMessageSerializer serializer)
{
var url = ApiUrl + route + BuildParameters(@params);
HttpContent content;
@@ -71,7 +71,7 @@ public class ApiClient(string apiUrl) : IApiClient
return await httpClient.SendAsync(httpmsg);
}
protected virtual string BuildParameters(IDictionary<string, object>? @params)
protected virtual string BuildParameters(ApiParameterCollection? @params)
{
if (@params == null || @params.Count == 0)
return string.Empty;