use wrapped dictionary as api params collection
This commit is contained in:
@@ -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;
|
||||
|
||||
15
Pilz.Net/Api/ApiParameterCollection.cs
Normal file
15
Pilz.Net/Api/ApiParameterCollection.cs
Normal file
@@ -0,0 +1,15 @@
|
||||
using Pilz.Extensions.Collections;
|
||||
|
||||
namespace Pilz.Net.Api;
|
||||
|
||||
public class ApiParameterCollection : Dictionary<string, object>
|
||||
{
|
||||
public ApiParameterCollection()
|
||||
{
|
||||
}
|
||||
|
||||
public ApiParameterCollection(IDictionary<string, object> source)
|
||||
{
|
||||
source.ForEach(kvp => Add(kvp.Key, kvp.Value));
|
||||
}
|
||||
}
|
||||
@@ -12,9 +12,9 @@ public interface IApiClient
|
||||
|
||||
ILogger Log { get; set; }
|
||||
|
||||
Task<ApiResponse> SendRequest(string route, HttpMethod method, ApiMessage? message, IDictionary<string, object>? @params, IApiMessageSerializer? serializer);
|
||||
Task<ApiResponse> SendRequest(string route, HttpMethod method, ApiMessage? message, ApiParameterCollection? @params, IApiMessageSerializer? serializer);
|
||||
|
||||
Task<ApiResponse<TResponse>> SendRequest<TResponse>(string route, HttpMethod method, ApiMessage? message, IDictionary<string, object>? @params, IApiMessageSerializer? serializer) where TResponse : ApiMessage;
|
||||
Task<ApiResponse<TResponse>> SendRequest<TResponse>(string route, HttpMethod method, ApiMessage? message, ApiParameterCollection? @params, IApiMessageSerializer? serializer) where TResponse : ApiMessage;
|
||||
|
||||
public virtual Task<ApiResponse> SendRequest(string route)
|
||||
{
|
||||
@@ -26,7 +26,7 @@ public interface IApiClient
|
||||
return SendRequest(route, method, null, null, null);
|
||||
}
|
||||
|
||||
public virtual Task<ApiResponse> SendRequest(string route, HttpMethod method, IDictionary<string, object>? @params)
|
||||
public virtual Task<ApiResponse> SendRequest(string route, HttpMethod method, ApiParameterCollection? @params)
|
||||
{
|
||||
return SendRequest(route, method, null, @params, null);
|
||||
}
|
||||
@@ -41,7 +41,7 @@ public interface IApiClient
|
||||
return SendRequest(route, method, message, null, null);
|
||||
}
|
||||
|
||||
public virtual Task<ApiResponse> SendRequest(string route, HttpMethod method, ApiMessage? message, IDictionary<string, object>? @params)
|
||||
public virtual Task<ApiResponse> SendRequest(string route, HttpMethod method, ApiMessage? message, ApiParameterCollection? @params)
|
||||
{
|
||||
return SendRequest(route, method, message, @params, null);
|
||||
}
|
||||
@@ -56,7 +56,7 @@ public interface IApiClient
|
||||
return SendRequest<TResponse>(route, method, null, null, null);
|
||||
}
|
||||
|
||||
public virtual Task<ApiResponse<TResponse>> SendRequest<TResponse>(string route, HttpMethod method, IDictionary<string, object>? @params) where TResponse : ApiMessage
|
||||
public virtual Task<ApiResponse<TResponse>> SendRequest<TResponse>(string route, HttpMethod method, ApiParameterCollection? @params) where TResponse : ApiMessage
|
||||
{
|
||||
return SendRequest<TResponse>(route, method, null, @params, null);
|
||||
}
|
||||
@@ -71,7 +71,7 @@ public interface IApiClient
|
||||
return SendRequest<TResponse>(route, method, message, null, null);
|
||||
}
|
||||
|
||||
public virtual Task<ApiResponse<TResponse>> SendRequest<TResponse>(string route, HttpMethod method, ApiMessage? message, IDictionary<string, object>? @params) where TResponse : ApiMessage
|
||||
public virtual Task<ApiResponse<TResponse>> SendRequest<TResponse>(string route, HttpMethod method, ApiMessage? message, ApiParameterCollection? @params) where TResponse : ApiMessage
|
||||
{
|
||||
return SendRequest<TResponse>(route, method, message, @params, null);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user