Skip to content

Commit 5019e24

Browse files
committed
Merge #50: New API endpoint for listing users
83df258 feat: release 3.1.0 (Mario) d2e6b72 feat: [#49] new types for pagination (Mario) fca2b0c feat: [#49] new function to get the list of user profiles (Mario) Pull request description: Resolves #49 ACKs for top commit: josecelano: ACK 83df258 Tree-SHA512: 475ff4f8fd0b1fa8d43be9ee1ab8e9d9871ca2469e94ec87e36437381c22bd03bbc30c14605b625725114ce353a939068ef5d006f7c928c480ba3348aa3df194
2 parents 67bb2a7 + 83df258 commit 5019e24

File tree

3 files changed

+41
-11
lines changed

3 files changed

+41
-11
lines changed

package-lock.json

+6-7
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "torrust-index-api-lib",
3-
"version": "3.0.0",
3+
"version": "3.1.0",
44
"description": "Contains API functions for the Torrust project.",
55
"repository": {
66
"type": "git",
@@ -23,6 +23,6 @@
2323
"typescript": "^5.2.2"
2424
},
2525
"dependencies": {
26-
"torrust-index-types-lib": "^3.0.0"
26+
"torrust-index-types-lib": "^3.1.0"
2727
}
2828
}

src/modes/rest/resources/user.ts

+33-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
import {Rest} from "../rest";
22
import {IRestResource} from "../restResource";
3-
import {fetchPost} from "../../../utils/fetch";
4-
import {TokenResponse} from "torrust-index-types-lib";
3+
import {fetchGet, fetchPost} from "../../../utils/fetch";
4+
import { TokenResponse, UserProfile } from "torrust-index-types-lib";
5+
56

67
type LoginUserParams = {
78
login: string
@@ -41,6 +42,20 @@ type NewUser = {
4142
user_id: number
4243
}
4344

45+
type GetUserProfilesParams = {
46+
pageSize: number
47+
page: number
48+
}
49+
50+
type GetUserProfilesResponseData = {
51+
total: number
52+
results: Array<UserProfile>
53+
}
54+
55+
type GetUserProfilesResponse = {
56+
data: GetUserProfilesResponseData
57+
}
58+
4459
export class UserResource implements IRestResource {
4560
client: Rest;
4661

@@ -112,4 +127,20 @@ export class UserResource implements IRestResource {
112127
return Promise.reject(err.response?.data?.error ?? err);
113128
});
114129
}
130+
async getUserProfiles(params: GetUserProfilesParams): Promise<GetUserProfilesResponseData> {
131+
return await fetchGet<GetUserProfilesResponse>(
132+
`${this.client.apiBaseUrl}/users?page_size=${params.pageSize}&page=${params.page - 1}`,
133+
{
134+
"Authorization": `Bearer ${this.client.authToken}`,
135+
"Content-Type": "application/json"
136+
}
137+
)
138+
.then((res) => {
139+
return Promise.resolve(res.data);
140+
})
141+
.catch((err) => {
142+
return Promise.reject(err.response?.data?.error ?? err);
143+
});
144+
}
115145
}
146+

0 commit comments

Comments
 (0)