summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ApiClient.csproj9
-rw-r--r--Tag.cs41
2 files changed, 47 insertions, 3 deletions
diff --git a/ApiClient.csproj b/ApiClient.csproj
index 6fec3e0..8622f7a 100644
--- a/ApiClient.csproj
+++ b/ApiClient.csproj
@@ -7,13 +7,18 @@
<AssemblyName>HyperBooru.ApiClient</AssemblyName>
<AssemblyTitle>HyperBooru.ApiClient</AssemblyTitle>
<RootNamespace>HyperBooru.ApiClient</RootNamespace>
- <AssemblyVersion>0.16.0.0</AssemblyVersion>
+ <AssemblyVersion>0.17.0.0</AssemblyVersion>
<FileVersion>$(AssemblyVersion)</FileVersion>
- <Version>0.16-alpha</Version>
+ <Version>0.17-alpha</Version>
</PropertyGroup>
<ItemGroup>
<ProjectReference Include="..\ApiModels\ApiModels.csproj" />
</ItemGroup>
+ <PropertyGroup Condition="'$(Configuration)' == 'Release'">
+ <DebugType>None</DebugType>
+ <DebugSymbols>false</DebugSymbols>
+ </PropertyGroup>
+
</Project>
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);
+ }
}