summaryrefslogtreecommitdiff
path: root/Tag.cs
diff options
context:
space:
mode:
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);
+ }
}