* Changed views to have them in the same layout
* Added Authorization
This commit is contained in:
@@ -1,30 +1,31 @@
|
||||
using Blazored.LocalStorage;
|
||||
using Microsoft.AspNetCore.Components.Authorization;
|
||||
using OrdersManagement.Models;
|
||||
using OrdersManagementDataModel.Dtos;
|
||||
|
||||
namespace OrdersManagement.Services;
|
||||
|
||||
public class UserService(IHttpClientFactory clientFactory, AuthenticationStateProvider authStateProvider)
|
||||
public class UserService(
|
||||
IHttpClientFactory httpClientFactory,
|
||||
CustomAuthenticationStateProvider authenticationStateProvider)
|
||||
: ServiceBase<UserDto>(httpClientFactory, authenticationStateProvider)
|
||||
{
|
||||
private readonly HttpClient _httpClient = clientFactory.CreateClient("FaKrosnoApi");
|
||||
private readonly HttpClient _httpClient = httpClientFactory.CreateClient("FaKrosnoApi");
|
||||
|
||||
public async Task<IEnumerable<UserDto>?> GetUsersAsync()
|
||||
{
|
||||
return await _httpClient.GetFromJsonAsync<IEnumerable<UserDto>>("api/Users");
|
||||
return await GetListAsync("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 });
|
||||
var response = await 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);
|
||||
await authenticationStateProvider.MarkUserAsAuthenticated(result.Token);
|
||||
return await GetUserByUsernameAsync(login);
|
||||
|
||||
}
|
||||
@@ -37,26 +38,26 @@ public class UserService(IHttpClientFactory clientFactory, AuthenticationStatePr
|
||||
|
||||
public async Task<UserDto?> GetUserAsync(Guid userId)
|
||||
{
|
||||
return await _httpClient.GetFromJsonAsync<UserDto>($"api/Users/by-id/?id={userId}");
|
||||
return await GetEntityAsync($"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 GetEntityAsync($"api/Users/by-username/?username={username}");
|
||||
}
|
||||
|
||||
public async Task<HttpResponseMessage> AddUserAsync(UserDto user)
|
||||
{
|
||||
return await _httpClient.PostAsJsonAsync("api/Users", user);
|
||||
return await PostAsJsonAsync("api/Users", user);
|
||||
}
|
||||
|
||||
public async Task UpdateUserAsync(UserDto user)
|
||||
public async Task<HttpResponseMessage> UpdateUserAsync(UserDto user)
|
||||
{
|
||||
await _httpClient.PutAsJsonAsync("api/Users", user);
|
||||
return await PutAsJsonAsync("api/Users", user);
|
||||
}
|
||||
|
||||
public async Task DeleteUserAsync(Guid userId)
|
||||
public async Task<HttpResponseMessage> DeleteUserAsync(Guid userId)
|
||||
{
|
||||
await _httpClient.DeleteAsync($"api/Users/?id={userId}");
|
||||
return await DeleteAsync($"api/Users/?id={userId}");
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user