Refactor API clients to use primary constructor for HttpClient
Refactored CatalogApiClient, DashboardApiClient, LayoutApiClient, and MassDataApiClient to use C# primary constructor syntax for injecting HttpClient. Removed private _httpClient fields and updated all usages to reference the constructor parameter directly. This change simplifies the code and modernizes dependency injection without altering any API logic.
This commit is contained in:
@@ -2,20 +2,14 @@ using DbFirst.Contracts.Layouts;
|
||||
|
||||
namespace DbFirst.BlazorWebApp.Services;
|
||||
|
||||
public class LayoutApiClient : ILayoutApiClient
|
||||
public class LayoutApiClient(HttpClient httpClient) : ILayoutApiClient
|
||||
{
|
||||
private readonly HttpClient _httpClient;
|
||||
private const string Endpoint = "api/layouts";
|
||||
|
||||
public LayoutApiClient(HttpClient httpClient)
|
||||
{
|
||||
_httpClient = httpClient;
|
||||
}
|
||||
|
||||
public async Task<LayoutDto?> GetAsync(string layoutType, string layoutKey, string userName, CancellationToken ct = default)
|
||||
{
|
||||
var url = $"{Endpoint}?layoutType={Uri.EscapeDataString(layoutType)}&layoutKey={Uri.EscapeDataString(layoutKey)}&userName={Uri.EscapeDataString(userName)}";
|
||||
var response = await _httpClient.GetAsync(url, ct);
|
||||
var response = await httpClient.GetAsync(url, ct);
|
||||
if (response.StatusCode == System.Net.HttpStatusCode.NotFound)
|
||||
{
|
||||
return null;
|
||||
@@ -27,7 +21,7 @@ public class LayoutApiClient : ILayoutApiClient
|
||||
|
||||
public async Task<LayoutDto> UpsertAsync(LayoutDto dto, CancellationToken ct = default)
|
||||
{
|
||||
var response = await _httpClient.PostAsJsonAsync(Endpoint, dto, ct);
|
||||
var response = await httpClient.PostAsJsonAsync(Endpoint, dto, ct);
|
||||
if (!response.IsSuccessStatusCode)
|
||||
{
|
||||
var detail = await ApiClientHelper.ReadErrorAsync(response);
|
||||
@@ -41,7 +35,7 @@ public class LayoutApiClient : ILayoutApiClient
|
||||
public async Task DeleteAsync(string layoutType, string layoutKey, string userName, CancellationToken ct = default)
|
||||
{
|
||||
var url = $"{Endpoint}?layoutType={Uri.EscapeDataString(layoutType)}&layoutKey={Uri.EscapeDataString(layoutKey)}&userName={Uri.EscapeDataString(userName)}";
|
||||
var response = await _httpClient.DeleteAsync(url, ct);
|
||||
var response = await httpClient.DeleteAsync(url, ct);
|
||||
if (response.StatusCode == System.Net.HttpStatusCode.NotFound)
|
||||
{
|
||||
return;
|
||||
|
||||
Reference in New Issue
Block a user