Skip to content

Commit b8d0d97

Browse files
committed
feat: added add and delete category endpoints
1 parent 1ea8b86 commit b8d0d97

File tree

1 file changed

+43
-1
lines changed

1 file changed

+43
-1
lines changed

src/modes/rest/resources/category.ts

Lines changed: 43 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,20 @@
11
import {TorrentCategory} from "torrust-index-types-lib";
22
import {IRestResource} from "../restResource";
33
import {Rest} from "../rest";
4-
import {fetchGet} from "../../../utils/fetch";
4+
import {fetchDelete, fetchGet, fetchPost} from "../../../utils/fetch";
55

66
type GetCategoriesResponse = {
77
data: Array<TorrentCategory>
88
}
99

10+
type CategoryResponse = {
11+
data: string
12+
}
13+
14+
type DeleteCategoryParams = {
15+
name: string
16+
}
17+
1018
export class CategoryResource implements IRestResource {
1119
client: Rest;
1220

@@ -25,5 +33,39 @@ export class CategoryResource implements IRestResource {
2533
return Promise.reject(err);
2634
});
2735
}
36+
37+
async addCategory(name: string): Promise<string> {
38+
return await fetchPost<CategoryResponse>(
39+
`${this.client.apiBaseUrl}/category`,
40+
JSON.stringify({ name }),
41+
{
42+
"Authorization": `Bearer ${this.client.authToken}`,
43+
"Content-Type": "application/json"
44+
}
45+
)
46+
.then((res) => {
47+
return Promise.resolve(res.data);
48+
})
49+
.catch((err) => {
50+
return Promise.reject(err);
51+
});
52+
}
53+
54+
async deleteCategory(name: string): Promise<string> {
55+
return await fetchDelete<DeleteCategoryParams, CategoryResponse>(
56+
`${this.client.apiBaseUrl}/category`,
57+
{ name },
58+
{
59+
"Authorization": `Bearer ${this.client.authToken}`,
60+
"Content-Type": "application/json"
61+
}
62+
)
63+
.then((res) => {
64+
return Promise.resolve(res.data);
65+
})
66+
.catch((err) => {
67+
return Promise.reject(err);
68+
});
69+
}
2870
}
2971

0 commit comments

Comments
 (0)