blob: 7dfb43aa591632d5f3b6c31cbceb8f187b2e818c (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
|
using HyperBooru.ApiModels;
using System.Net.Http.Json;
namespace HyperBooru.ApiClient;
public class Tag {
private HBSession session;
internal Tag(HBSession session) =>
this.session = session;
public async Task<ApiModels.TagDefinition[]> GetTagDefinitionAsync() =>
(await session.HttpClient.GetFromJsonAsync<ApiModels.TagDefinition[]>("/api/tag/definition"))!;
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);
}
}
|