~xenrox/10man-api

07ead08d7314e2b9061ec45a8a815ed357b46756 — Thorben Günther 2 years ago b941363
mutation: Further improve queueing logic

A queue can only get cancelled if the user actually was in it.
1 files changed, 11 insertions(+), 2 deletions(-)

M graph/schema.resolvers.go
M graph/schema.resolvers.go => graph/schema.resolvers.go +11 -2
@@ 141,12 141,21 @@ func (r *mutationResolver) CancelQueue(ctx context.Context, id int) (int, error)
	query := `
		UPDATE "User"
		SET queueing = false
		WHERE id = $1`
	_, err := database.DB.Exec(query, id)
		WHERE id = $1 AND queueing`
	result, err := database.DB.Exec(query, id)
	if err != nil {
		return -1, err
	}

	count, err := result.RowsAffected()
	if err != nil {
		return -1, err
	}

	if count != 1 {
		return -1, errors.New("user not in queue")
	}

	players, err := database.PlayersInQueue()
	return players, err
}