diff options
| -rw-r--r-- | ApiClient.csproj | 9 | ||||
| -rw-r--r-- | Tag.cs | 41 |
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> @@ -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); + } } |
