67 lines
2.5 KiB
C#
67 lines
2.5 KiB
C#
using DysonNetwork.Pass.Features.Account;
|
|
using DysonNetwork.Pass.Features.Auth;
|
|
using DysonNetwork.Sphere.Models;
|
|
using System.Net.Http.Json;
|
|
|
|
namespace DysonNetwork.Sphere.Services.PassClient;
|
|
|
|
public class PassClient(HttpClient httpClient)
|
|
{
|
|
public async Task<LoginResponse> LoginAsync(LoginRequest request)
|
|
{
|
|
var response = await httpClient.PostAsJsonAsync("api/auth/login", request);
|
|
response.EnsureSuccessStatusCode();
|
|
return (await response.Content.ReadFromJsonAsync<LoginResponse>())!;
|
|
}
|
|
|
|
public async Task<Account> GetAccountByIdAsync(Guid accountId)
|
|
{
|
|
var response = await httpClient.GetAsync($"api/account/{accountId}");
|
|
response.EnsureSuccessStatusCode();
|
|
return (await response.Content.ReadFromJsonAsync<Account>())!;
|
|
}
|
|
|
|
public async Task<Account> GetAccountByUsernameAsync(string username)
|
|
{
|
|
var response = await httpClient.GetAsync($"api/account/by-username/{username}");
|
|
response.EnsureSuccessStatusCode();
|
|
return (await response.Content.ReadFromJsonAsync<Account>())!;
|
|
}
|
|
|
|
public async Task<Account> RegisterAsync(RegisterRequest request)
|
|
{
|
|
var response = await httpClient.PostAsJsonAsync("api/account/register", request);
|
|
response.EnsureSuccessStatusCode();
|
|
return (await response.Content.ReadFromJsonAsync<Account>())!;
|
|
}
|
|
|
|
public async Task ChangePasswordAsync(ChangePasswordRequest request)
|
|
{
|
|
var response = await httpClient.PostAsJsonAsync("api/account/change-password", request);
|
|
response.EnsureSuccessStatusCode();
|
|
}
|
|
|
|
public async Task ResetPasswordAsync(ResetPasswordRequest request)
|
|
{
|
|
var response = await httpClient.PostAsJsonAsync("api/auth/reset-password", request);
|
|
response.EnsureSuccessStatusCode();
|
|
}
|
|
|
|
public async Task VerifyEmailAsync(VerifyEmailRequest request)
|
|
{
|
|
var response = await httpClient.PostAsJsonAsync("api/account/verify-email", request);
|
|
response.EnsureSuccessStatusCode();
|
|
}
|
|
|
|
public async Task SendVerificationEmailAsync(SendVerificationEmailRequest request)
|
|
{
|
|
var response = await httpClient.PostAsJsonAsync("api/account/send-verification-email", request);
|
|
response.EnsureSuccessStatusCode();
|
|
}
|
|
|
|
public async Task DeleteAccountAsync(DeleteAccountRequest request)
|
|
{
|
|
var response = await httpClient.PostAsJsonAsync("api/account/delete", request);
|
|
response.EnsureSuccessStatusCode();
|
|
}
|
|
} |