* Added Authorization which is not working

This commit is contained in:
2025-02-23 21:19:04 +01:00
parent 6774311433
commit 5bcf406465
29 changed files with 407 additions and 210 deletions

View File

@@ -1,42 +1,62 @@
using Blazored.LocalStorage;
using Microsoft.AspNetCore.Components.Authorization;
using OrdersManagement.Models;
using OrdersManagementDataModel.Dtos;
namespace OrdersManagement.Services;
public class UserService(HttpClient httpClient)
public class UserService(IHttpClientFactory clientFactory, AuthenticationStateProvider authStateProvider)
{
private readonly HttpClient _httpClient = clientFactory.CreateClient("FaKrosnoApi");
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;
return await _httpClient.GetFromJsonAsync<IEnumerable<UserDto>>("api/Users");
}
public async Task<UserDto?> AuthenticateUserAsync(string login, string password)
{
try
{
var response = await _httpClient.PostAsJsonAsync("api/Users/login", new { Login = login, Password = password });
response.EnsureSuccessStatusCode();
var result = await response.Content.ReadFromJsonAsync<LoginResponseDto>();
if (result?.Token == null) return null;
await ((CustomAuthenticationStateProvider)authStateProvider).MarkUserAsAuthenticated(result.Token);
return await GetUserByUsernameAsync(login);
}
catch (Exception ex)
{
Console.WriteLine($"Błąd logowania: {ex.Message}");
return null;
}
}
public async Task<UserDto?> GetUserAsync(Guid userId)
{
return await httpClient.GetFromJsonAsync<UserDto>($"api/Users/by-id/?id={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}");
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);
return await _httpClient.PostAsJsonAsync("api/Users", user);
}
public async Task UpdateUserAsync(UserDto user)
{
await httpClient.PutAsJsonAsync("api/Users", user);
await _httpClient.PutAsJsonAsync("api/Users", user);
}
public async Task DeleteUserAsync(Guid userId)
{
await httpClient.DeleteAsync($"api/Users/?id={userId}");
await _httpClient.DeleteAsync($"api/Users/?id={userId}");
}
}