Files
FA_WEB/OrdersManagement/Services/UserService.cs
2025-02-21 09:59:50 +01:00

42 lines
1.3 KiB
C#

using OrdersManagementDataModel.Dtos;
namespace OrdersManagement.Services;
public class UserService(HttpClient httpClient)
{
public async Task<IEnumerable<UserDto>?> GetUsersAsync()
{
return await httpClient.GetFromJsonAsync<IEnumerable<UserDto>>("api/Users");
}
public async Task<UserDto?> AuthenticateUserAsync(string login, string password)
{
var response = await httpClient.PostAsJsonAsync("api/users/authenticate", new { Login = login, Password = password });
return response.IsSuccessStatusCode ? await response.Content.ReadFromJsonAsync<UserDto>() : null;
}
public async Task<UserDto?> GetUserAsync(Guid userId)
{
return await httpClient.GetFromJsonAsync<UserDto>($"api/Users/by-id/?id={userId}");
}
public async Task<UserDto?> GetUserByUsernameAsync(string username)
{
return await httpClient.GetFromJsonAsync<UserDto>($"api/Users/by-username/?username={username}");
}
public async Task<HttpResponseMessage> AddUserAsync(UserDto user)
{
return await httpClient.PostAsJsonAsync("api/Users", user);
}
public async Task UpdateUserAsync(UserDto user)
{
await httpClient.PutAsJsonAsync("api/Users", user);
}
public async Task DeleteUserAsync(Guid userId)
{
await httpClient.DeleteAsync($"api/Users/?id={userId}");
}
}