diff options
| author | Jake Mannens <jake@asger.xyz> | 2026-05-07 23:07:45 +1000 |
|---|---|---|
| committer | Jake Mannens <jake@asger.xyz> | 2026-05-08 01:27:27 +1000 |
| commit | 1c2427084ba610553c49140a2ce604fa63ba37c9 (patch) | |
| tree | 2ba363154692b469ea2f8568c8825051fd293ecb /User.cs | |
| parent | 4d3e88b9f54e893a6de49724538cd73c9dc6ea5f (diff) | |
v0.14av0.14a
Diffstat (limited to 'User.cs')
| -rw-r--r-- | User.cs | 41 |
1 files changed, 41 insertions, 0 deletions
@@ -0,0 +1,41 @@ +using System.Net.Http.Json; + +namespace HyperBooru.ApiClient; + +public class User { + private HBSession session; + + internal User(HBSession session) => + this.session = session; + + public async Task<ApiModels.User[]> GetAllUsersAsync() => + (await session.HttpClient.GetFromJsonAsync<ApiModels.User[]>("/api/user"))!; + + public async Task<ApiModels.User> GetUserAsync(Guid userId) => + (await session.HttpClient.GetFromJsonAsync<ApiModels.User>($"/api/user/{userId}"))!; + + public async Task<ApiModels.User> CreateUserAsync(string username, string password) { + var user = new ApiModels.UserCreateRequest() { + Username = username, + Password = password + }; + + var response = await session.HttpClient.PostAsJsonAsync("/api/user", user); + + return (await response.Content.ReadFromJsonAsync<ApiModels.User>())!; + } + + public async Task<ApiModels.User> UpdateUserAsync(Guid userId, string? username, string? password) { + var user = new ApiModels.UserUpdateRequest() { + Username = username, + Password = password + }; + + var response = await session.HttpClient.PatchAsJsonAsync($"/api/user/{userId}", user); + + return (await response.Content.ReadFromJsonAsync<ApiModels.User>())!; + } + + public async Task<ApiModels.User> DeleteUserAsync(Guid userId) => + (await session.HttpClient.DeleteFromJsonAsync<ApiModels.User>($"/api/user/{userId}"))!; +} |
