Add EndpointsApi for CRUD operations on endpoints
Introduced EndpointsApi class in ReC.Client.Api to handle create, update, and delete operations for endpoint definitions via HTTP requests. Methods are generic, support cancellation tokens, and use a helper for JSON serialization of payloads.
This commit is contained in:
60
src/ReC.Client/Api/EndpointsApi.cs
Normal file
60
src/ReC.Client/Api/EndpointsApi.cs
Normal file
@@ -0,0 +1,60 @@
|
|||||||
|
using System.Net.Http;
|
||||||
|
using System.Threading;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
namespace ReC.Client.Api
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Provides access to endpoint definitions.
|
||||||
|
/// </summary>
|
||||||
|
public class EndpointsApi
|
||||||
|
{
|
||||||
|
private readonly HttpClient _http;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Initializes a new instance of the <see cref="EndpointsApi"/> class.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="http">The HTTP client used for requests.</param>
|
||||||
|
public EndpointsApi(HttpClient http)
|
||||||
|
{
|
||||||
|
_http = http;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Creates an endpoint.
|
||||||
|
/// </summary>
|
||||||
|
/// <typeparam name="T">The payload type.</typeparam>
|
||||||
|
/// <param name="procedure">The payload to send.</param>
|
||||||
|
/// <param name="cancel">A token to cancel the operation.</param>
|
||||||
|
/// <returns>The HTTP response message.</returns>
|
||||||
|
public Task<HttpResponseMessage> CreateEndpointAsync<T>(T procedure, CancellationToken cancel = default)
|
||||||
|
=> _http.PostAsync("api/Endpoints", ReCClientHelpers.ToJsonContent(procedure), cancel);
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Updates an endpoint.
|
||||||
|
/// </summary>
|
||||||
|
/// <typeparam name="T">The payload type.</typeparam>
|
||||||
|
/// <param name="id">The endpoint identifier.</param>
|
||||||
|
/// <param name="procedure">The payload to send.</param>
|
||||||
|
/// <param name="cancel">A token to cancel the operation.</param>
|
||||||
|
/// <returns>The HTTP response message.</returns>
|
||||||
|
public Task<HttpResponseMessage> UpdateEndpointAsync<T>(long id, T procedure, CancellationToken cancel = default)
|
||||||
|
=> _http.PutAsync($"api/Endpoints/{id}", ReCClientHelpers.ToJsonContent(procedure), cancel);
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Deletes endpoints.
|
||||||
|
/// </summary>
|
||||||
|
/// <typeparam name="T">The payload type containing identifiers.</typeparam>
|
||||||
|
/// <param name="procedure">The payload to send.</param>
|
||||||
|
/// <param name="cancel">A token to cancel the operation.</param>
|
||||||
|
/// <returns>The HTTP response message.</returns>
|
||||||
|
public Task<HttpResponseMessage> DeleteEndpointAsync<T>(T procedure, CancellationToken cancel = default)
|
||||||
|
{
|
||||||
|
var request = new HttpRequestMessage(HttpMethod.Delete, "api/Endpoints")
|
||||||
|
{
|
||||||
|
Content = ReCClientHelpers.ToJsonContent(procedure)
|
||||||
|
};
|
||||||
|
return _http.SendAsync(request, cancel);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user