using System.Net.Http.Json; using RobotNet10.RobotApp.Shared.DockStation; namespace RobotNet10.RobotApp.Client.Services; public class DockStationApiService(HttpClient httpClient) { private const string BaseUrl = "api/dock-station-config"; public async Task> GetAllAsync() => await httpClient.GetFromJsonAsync>(BaseUrl) ?? []; public async Task GetByIdAsync(Guid id) => await httpClient.GetFromJsonAsync($"{BaseUrl}/{id}"); public async Task CreateAsync(CreateDockStationConfigRequest request) { var response = await httpClient.PostAsJsonAsync(BaseUrl, request); response.EnsureSuccessStatusCode(); return await response.Content.ReadFromJsonAsync() ?? throw new InvalidOperationException("Failed to deserialize created dock station config."); } public async Task UpdateAsync(Guid id, UpdateDockStationConfigRequest request) { var response = await httpClient.PutAsJsonAsync($"{BaseUrl}/{id}", request); response.EnsureSuccessStatusCode(); return await response.Content.ReadFromJsonAsync() ?? throw new InvalidOperationException("Failed to deserialize updated dock station config."); } public async Task DeleteAsync(Guid id) { var response = await httpClient.DeleteAsync($"{BaseUrl}/{id}"); response.EnsureSuccessStatusCode(); } }