Read stored Games over the wire: the caller's list and one Game by id #374
Labels
No labels
bug
documentation
duplicate
enhancement
good first issue
help wanted
invalid
question
spec
wayfinder:grilling
wayfinder:map
wayfinder:prototype
wayfinder:research
wayfinder:task
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Blocks
Depends on
#375 Game page: read a stored Game by its link and copy the link
amaurycoudr/chess-project
#393 Fold the Room into RoomService, so the Room's report type needs no framework-free file
amaurycoudr/chess-project
#373 Store each decided Online game once, owned by the Guest in each Seat
amaurycoudr/chess-project
Reference
amaurycoudr/chess-project#374
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Parent
#355
What to build
A new
gamerouter in the contracts (ADR 0027), implemented by the API'sgames/module.game.list(GET /games) returns the caller's decided Games, newest first, capped at the 50 most recent. Each item carries:A call with no Guest, or with a Guest that owns nothing, gets an empty list rather than an error. The list waits for writes still in flight to settle before it reads. That way a Game is listed as soon as the Room shows it decided, without the Room ever waiting on the database.
game.get(GET /games/{id}) returns:An unknown id, malformed ones included, is
GAME_NOT_FOUND(404). An id the API could not have minted is treated as unknown before the database is read.A side's occupant crosses the wire as its kind only,
guestornone. No hash and no secret ever crosses the wire. Both procedures are reads, so the origin guard passes them without an Origin (ADR 0028), and they change no state (ADR 0030).Seam: the RPC wire with the in-process app on the in-process database.
Acceptance criteria
game.getwithout a Guest returns the Game with the viewer as a reader. With an owning Guest, the viewer is the owner of that Color.game.getwith an unknown id, or with a malformed one, isGAME_NOT_FOUND.mentioned in issue #375
mentioned in issue #355
mentioned in issue #373
marked this issue as related to #355
marked this issue as related to #373
marked this issue as related to #375
mentioned in merge request !515
mentioned in issue #393
marked this issue as related to #393