diff options
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); + } } |
