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();
 | |
|     }
 | |
| } |