feat(backend): add member GET endpoints, POST /users/@me/members endpoint

This commit is contained in:
sam 2024-07-13 19:38:40 +02:00
parent 16f230b97d
commit e7ec0e6661
Signed by: sam
GPG key ID: B4EF20DDE721CAA1
10 changed files with 152 additions and 55 deletions

View file

@ -3,6 +3,8 @@
## Scopes
- `identify`: `@me` will refer to token user (always granted)
- `user.read_hidden`: can read non-privileged hidden information such as timezone,
whether the member list is hidden, and whether a member is unlisted.
- `user.read_privileged`: can read privileged information such as authentication methods
- `user.update`: can update the user's profile.
**cannot** update anything locked behind `user.read_privileged`
@ -12,15 +14,16 @@
## Meta
- [ ] GET `/meta`: gets stats and server information
- [x] GET `/meta`: gets stats and server information
## Users
- [ ] GET `/users/{userRef}`: views current user.
- [x] GET `/users/{userRef}`: views current user.
`identify` required to use `@me` as user reference.
`user.read_hidden` required to view timezone and other hidden non-privileged data.
`user.read_privileged` required to view authentication methods.
`member.read` required to view unlisted members.
- [ ] PATCH `/users/@me`: updates current user. `user.update` required.
- [x] PATCH `/users/@me`: updates current user. `user.update` required.
- [ ] DELETE `/users/@me`: deletes current user. `*` required
- [ ] POST `/users/@me/export`: queues new data export. `*` required
- [ ] GET `/users/@me/export`: gets latest data export. `*` required
@ -32,14 +35,13 @@
## Members
- [ ] GET `/users/{userRef}/members`: gets list of a user's members.
- [x] GET `/users/{userRef}/members`: gets list of a user's members.
if the user's member list is hidden,
and it is not the authenticated user (or the token doesn't have the `member.read` scope)
returns an empty array.
- [ ] GET `/users/{userRef}/members/{memberRef}`: gets a single member.
- [x] GET `/users/{userRef}/members/{memberRef}`: gets a single member.
will always return a member if it exists, even if the member is unlisted.
- [ ] POST `/users/@me/members`: creates a new member. `member.create` required
- [ ] PATCH `/users/@me/members/{memberRef}`: edits a member. `member.update` required
- [ ] DELETE `/users/@me/members/{memberRef}`: deletes a member. `member.update` required
- [ ] POST `/users/@me/members/{memberRef}/reroll`: rerolls a member's short ID. `member.update` required.
-