diff options
| author | Jake Mannens <jake@asger.xyz> | 2026-05-16 18:37:58 +1000 |
|---|---|---|
| committer | Jake Mannens <jake@asger.xyz> | 2026-05-16 18:37:58 +1000 |
| commit | 0ef438a7404117aad37e92b39ab8950c18522843 (patch) | |
| tree | 08b50e51cbfb859ed28fa8d79c51240b429b6e3c /Tag.cs | |
| parent | 532b46dfe288e31607f0362626d6b7b81b3c2948 (diff) | |
Diffstat (limited to 'Tag.cs')
| -rw-r--r-- | Tag.cs | 41 |
1 files changed, 40 insertions, 1 deletions
@@ -1,4 +1,5 @@ -using System.Net.Http.Json; +using HyperBooru.ApiModels; +using System.Net.Http.Json; namespace HyperBooru.ApiClient; @@ -14,4 +15,42 @@ public class Tag { public async Task<ApiModels.TagDefinition> GetTagDefinitionAsync(Guid tagDefinitionId) => (await session.HttpClient .GetFromJsonAsync<ApiModels.TagDefinition>($"/api/tag/definition/{tagDefinitionId}"))!; + + public async Task<TagDefinition> CreateTagDefinitionAsync(TagCreateRequest request) { + var response = await session.HttpClient.PostAsJsonAsync("/api/tag/definition", request); + return (await response.Content.ReadFromJsonAsync<TagDefinition>())!; + } + + public async Task DeleteTagDefinitionAsync(Guid tagDefinitionId) => + await session.HttpClient.DeleteAsync($"/api/tag/definition/{tagDefinitionId}"); + + public async Task<TagDefinition> UpdateTagDefinitionAsync( + Guid tagDefinitionId, + TagUpdateRequest request) { + + var response = await session.HttpClient.PatchAsJsonAsync( + $"/api/tag/definition/{tagDefinitionId}", + request); + + return (await response.Content.ReadFromJsonAsync<TagDefinition>())!; + } + + public async Task AddImplicitTagsAsync(Guid tagDefinitionId, Guid[] implicitTagIds) => + await session.HttpClient.PatchAsJsonAsync( + $"/api/tag/definition/{tagDefinitionId}/implicit", + implicitTagIds); + + public async Task ReplaceImplicitTagsAsync(Guid tagDefinitionId, Guid[] implicitTagIds) => + await session.HttpClient.PutAsJsonAsync( + $"/api/tag/definition/{tagDefinitionId}/implicit", + implicitTagIds); + + public async Task DeleteImplicitTagAsync( + Guid tagDefinitionId, + Guid[] implicitTagIds) { + + await session.HttpClient.PostAsJsonAsync( + $"/api/tag/definition/{tagDefinitionId}/implicit/delete", + implicitTagIds); + } } |
