Skip to content

Commit 4f10e04

Browse files
committed
feat!: update API to follow changes in the backend
1 parent eb02a2c commit 4f10e04

File tree

6 files changed

+37
-38
lines changed

6 files changed

+37
-38
lines changed

project-words.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,2 @@
11
lintfix
2+
proxied

src/modes/rest/resources/category.ts

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,14 +7,18 @@ type GetCategoriesResponse = {
77
data: Array<Category>
88
}
99

10-
type CategoryResponse = {
11-
data: string
10+
type AddedCategoryResponse = {
11+
data: string // name
1212
}
1313

1414
type DeleteCategoryParams = {
1515
name: string
1616
}
1717

18+
type DeletedCategoryResponse = {
19+
data: string // name
20+
}
21+
1822
export class CategoryResource implements IRestResource {
1923
client: Rest;
2024

@@ -35,7 +39,7 @@ export class CategoryResource implements IRestResource {
3539
}
3640

3741
async addCategory(name: string): Promise<string> {
38-
return await fetchPost<CategoryResponse>(
42+
return await fetchPost<AddedCategoryResponse>(
3943
`${this.client.apiBaseUrl}/category`,
4044
JSON.stringify({ name }),
4145
{
@@ -52,7 +56,7 @@ export class CategoryResource implements IRestResource {
5256
}
5357

5458
async deleteCategory(name: string): Promise<string> {
55-
return await fetchDelete<DeleteCategoryParams, CategoryResponse>(
59+
return await fetchDelete<DeleteCategoryParams, DeletedCategoryResponse>(
5660
`${this.client.apiBaseUrl}/category`,
5761
{ name },
5862
{

src/modes/rest/resources/settings.ts

Lines changed: 1 addition & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import {PublicSettings, Settings} from "torrust-index-types-lib";
22
import {IRestResource} from "../restResource";
33
import {Rest} from "../rest";
4-
import {fetchGet, fetchPost} from "../../../utils/fetch";
4+
import {fetchGet} from "../../../utils/fetch";
55

66
type GetSettingsResponse = {
77
data: Settings
@@ -31,20 +31,6 @@ export class SettingsResource implements IRestResource {
3131
});
3232
}
3333

34-
public async updateSettings(settings: Settings): Promise<Settings> {
35-
return await fetchPost<GetSettingsResponse>(
36-
`${this.client.apiBaseUrl}/settings`,
37-
JSON.stringify(settings),
38-
{ "Authorization": `Bearer ${this.client.authToken}`, "Content-Type": "application/json" }
39-
)
40-
.then((res) => {
41-
return Promise.resolve(res.data);
42-
})
43-
.catch((err) => {
44-
return Promise.reject(err.response?.data?.error ?? err);
45-
});
46-
}
47-
4834
public async getPublicSettings(): Promise<PublicSettings> {
4935
return await fetchGet<GetPublicSettingsResponse>(
5036
`${this.client.apiBaseUrl}/settings/public`

src/modes/rest/resources/tag.ts

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,6 @@ import {Rest} from "../rest";
33
import {TorrentTag} from "torrust-index-types-lib";
44
import {fetchDelete, fetchGet, fetchPost} from "../../../utils/fetch";
55

6-
type TagResponse = {
7-
data: TorrentTag
8-
}
9-
106
type DeleteTagParams = {
117
tag_id: number
128
}

src/modes/rest/resources/torrent.ts

Lines changed: 17 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,13 @@ type GetTorrentsResponseData = {
2626
}
2727

2828
type DeleteTorrentResponse = {
29+
data: DeleteTorrentResponseData
30+
}
31+
32+
type DeleteTorrentResponseData = {
2933
data: {
3034
torrent_id: number
35+
info_hash: string
3136
}
3237
}
3338

@@ -49,12 +54,13 @@ type UploadTorrentParams = {
4954
file: any
5055
}
5156

52-
type UploadTorrentResponse = {
53-
data: UploadTorrentResponseData
57+
type NewTorrentResponse = {
58+
data: NewTorrentResponseData
5459
}
5560

56-
type UploadTorrentResponseData = {
61+
type NewTorrentResponseData = {
5762
torrent_id: number
63+
info_hash: string
5864
}
5965

6066
export class TorrentResource implements IRestResource {
@@ -64,7 +70,7 @@ export class TorrentResource implements IRestResource {
6470
this.client = client;
6571
}
6672

67-
async getTorrent(infoHash: string): Promise<TorrentResponse> {
73+
async getTorrentInfo(infoHash: string): Promise<TorrentResponse> {
6874
return await fetchGet<GetTorrentResponse>(
6975
`${this.client.apiBaseUrl}/torrent/${infoHash}`
7076
)
@@ -88,14 +94,14 @@ export class TorrentResource implements IRestResource {
8894
});
8995
}
9096

91-
async deleteTorrent(infoHash: string): Promise<boolean> {
97+
async deleteTorrent(infoHash: string): Promise<DeleteTorrentResponseData> {
9298
return await fetchDelete<any, DeleteTorrentResponse>(
9399
`${this.client.apiBaseUrl}/torrent/${infoHash}`,
94100
{},
95101
{ "Authorization": `Bearer ${this.client.authToken}` }
96102
)
97-
.then((_res) => {
98-
return Promise.resolve(true);
103+
.then((res) => {
104+
return Promise.resolve(res.data);
99105
})
100106
.catch((err) => {
101107
return Promise.reject(err.response?.data?.error ?? err);
@@ -116,7 +122,7 @@ export class TorrentResource implements IRestResource {
116122
});
117123
}
118124

119-
async uploadTorrent(params: UploadTorrentParams): Promise<number> {
125+
async uploadTorrent(params: UploadTorrentParams): Promise<NewTorrentResponseData> {
120126
const formData = new FormData();
121127

122128
formData.append("title", params.title);
@@ -125,20 +131,20 @@ export class TorrentResource implements IRestResource {
125131
formData.append("tags", JSON.stringify(params.tags));
126132
formData.append("torrent", params.file);
127133

128-
return await fetchPost<UploadTorrentResponse>(
134+
return await fetchPost<NewTorrentResponse>(
129135
`${this.client.apiBaseUrl}/torrent/upload`,
130136
formData,
131137
{ "Authorization": `Bearer ${this.client.authToken}` }
132138
)
133139
.then((res) => {
134-
return Promise.resolve(res.data.torrent_id);
140+
return Promise.resolve(res.data);
135141
})
136142
.catch((err) => {
137143
return Promise.reject(err.response?.data?.error ?? err);
138144
});
139145
}
140146

141-
async downloadTorrent(infoHash: number): Promise<Blob> {
147+
async downloadTorrent(infoHash: string): Promise<Blob> {
142148
return await fetchGetBlob(
143149
`${this.client.apiBaseUrl}/torrent/download/${infoHash}`
144150
)

src/modes/rest/resources/user.ts

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,10 @@ type LoginUserResponse = {
1212
data: TokenResponse
1313
}
1414

15+
type RenewedTokenResponse = {
16+
data: TokenResponse
17+
}
18+
1519
type RegisterUserParams = {
1620
username: string
1721
email: string
@@ -24,9 +28,11 @@ type Token = {
2428
}
2529

2630
type AddedUserResponse = {
27-
data: {
28-
user_id: number
29-
}
31+
data: NewUser
32+
}
33+
34+
type NewUser = {
35+
user_id: number
3036
}
3137

3238
export class UserResource implements IRestResource {
@@ -68,7 +74,7 @@ export class UserResource implements IRestResource {
6874
}
6975

7076
async renewToken(): Promise<TokenResponse> {
71-
return await fetchPost<LoginUserResponse>(
77+
return await fetchPost<RenewedTokenResponse>(
7278
`${this.client.apiBaseUrl}/user/token/renew`,
7379
JSON.stringify({ token: this.client.authToken ?? "" }),
7480
{ "Content-Type": "application/json"}

0 commit comments

Comments
 (0)