Add game deletion with authorization check
- Add Delete method to GameStore and Persister interface - Add delete button to game list on home page - Verify user owns game before allowing deletion - Use status constants instead of magic numbers - Remove unused variable in persister
This commit is contained in:
@@ -19,7 +19,7 @@ func NewGamePersister(q *gen.Queries) *GamePersister {
|
||||
func (p *GamePersister) SaveGame(g *game.Game) error {
|
||||
ctx := context.Background()
|
||||
|
||||
existing, err := p.queries.GetGame(ctx, g.ID)
|
||||
_, err := p.queries.GetGame(ctx, g.ID)
|
||||
if err == sql.ErrNoRows {
|
||||
_, err = p.queries.CreateGame(ctx, gen.CreateGameParams{
|
||||
ID: g.ID,
|
||||
@@ -43,7 +43,6 @@ func (p *GamePersister) SaveGame(g *game.Game) error {
|
||||
winningCells = sql.NullString{String: wc, Valid: true}
|
||||
}
|
||||
|
||||
_ = existing
|
||||
return p.queries.UpdateGame(ctx, gen.UpdateGameParams{
|
||||
Board: g.BoardToJSON(),
|
||||
CurrentTurn: int64(g.CurrentTurn),
|
||||
@@ -124,3 +123,8 @@ func (p *GamePersister) LoadGamePlayers(gameID string) ([]*game.Player, error) {
|
||||
|
||||
return players, nil
|
||||
}
|
||||
|
||||
func (p *GamePersister) DeleteGame(id string) error {
|
||||
ctx := context.Background()
|
||||
return p.queries.DeleteGame(ctx, id)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user