Public Access
feat(user): add owner-lists opt-in setting and user listing endpoint
This commit is contained in:
1 parent
d9b816904a
commit
d924c09953
35 files changed
+693
-40
No files matched your search
@@ -174,6 +174,8 @@ To Be Played is split into three repositories:
|
||||
| `PUT` | `/api/users/settings/favorite-platform` (`{platform}`, free text up to 32, e.g. `PS5`; `null` clears it; `204`) | access token |
|
||||
| `PUT` | `/api/users/settings/profile-tiles` (`{tiles: [{id, size}]}`, e.g. `SUMMARY`, `STATUS`, `PLAYING`, `FINISHED`, `STATS_<GROUP>`; `204`) | access token |
|
||||
| `GET` | `/api/public/profiles/{displayName}` | public |
|
||||
| `PUT` | `/api/users/settings/owner-lists` (`{enabled}`; `204`; opt-in to be shown by name in owner and user lists, only together with the public profile) | access token |
|
||||
| `GET` | `/api/stats/users?key=TOTAL_USERS\|STEAM_LINKED&page=` (`{listed: [{displayName}], listedTotal, privateCount, includesYou, page, totalPages}`; never an id; not cached) | access token |
|
||||
| `GET` | `/api/stats/public` | public |
|
||||
| `GET` | `/api/version` (`{commit, builtAt}` of the running image, from the CI build; `dev` locally) | public |
|
||||
|
||||
@@ -394,16 +396,18 @@ sequenceDiagram
|
||||
|
||||
Core keeps its own copy of the Steam ID and of the block. After a verified Steam link (also for the account that
|
||||
loses a typed-in ID), an unlink, a block and an unblock, Auth sends the user's state after the commit
|
||||
(`AccountStatePublisher`); the nightly cleanup sends every user. The call runs on the task executor, so neither the answer
|
||||
nor a database connection waits for Core; a failed call only warns.
|
||||
(`AccountStatePublisher`), also when the display name, the public profile or "show me in owner lists" changes; the nightly
|
||||
cleanup sends every user. The state carries `listed` (active, public profile, opt-in and a display name: `ListedUser`),
|
||||
which Core uses for its owner lists. The call runs on the task executor, so neither the answer nor a database
|
||||
connection waits for Core; a failed call is tried again after 10 s, 1 min and 5 min (in memory), then it only warns.
|
||||
|
||||
```mermaid
|
||||
sequenceDiagram
|
||||
participant A as Auth
|
||||
participant C as Core
|
||||
A->>A: link / unlink / block / unblock / name change (commit)
|
||||
A->>C: POST /internal/accounts/states {userId, steamId, displayName, blocked, roleChangedAt}
|
||||
C->>C: blocked_user, account_role_change, Steam ID in user_steam_sync, display name in account_name
|
||||
A->>C: POST /internal/accounts/states {userId, steamId, displayName, blocked, roleChangedAt, listed}
|
||||
C->>C: blocked_user, listed_user, account_role_change, Steam ID in user_steam_sync, display name in account_name
|
||||
Note over A,C: nightly 04:15
|
||||
A->>C: PUT /internal/accounts/states (every user)
|
||||
```
|
||||
|
||||
Reference in new issue
Block a user