summaryrefslogtreecommitdiff
path: root/Tag.cs
diff options
context:
space:
mode:
authorJake Mannens <jake@asger.xyz>2026-05-16 18:37:58 +1000
committerJake Mannens <jake@asger.xyz>2026-05-16 18:37:58 +1000
commit0ef438a7404117aad37e92b39ab8950c18522843 (patch)
tree08b50e51cbfb859ed28fa8d79c51240b429b6e3c /Tag.cs
parent532b46dfe288e31607f0362626d6b7b81b3c2948 (diff)
Diffstat (limited to 'Tag.cs')
-rw-r--r--Tag.cs41
1 files changed, 40 insertions, 1 deletions
diff --git a/Tag.cs b/Tag.cs
index 7e412b0..7dfb43a 100644
--- a/Tag.cs
+++ b/Tag.cs
@@ -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);
+ }
}