Commit 8b5eeda4 authored by Chris Molozian's avatar Chris Molozian
Browse files

Join events on tournaments with an end time set now let users to submit scores.

parent fd2a4e6c
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -4,9 +4,9 @@ All notable changes to this project are documented below.
The format is based on [keep a changelog](http://keepachangelog.com) and this project uses [semantic versioning](http://semver.org).

## [Unreleased]

### Fixed
- Set friend state correctly when initially adding friends.
- Join events on tournaments with an end time set now allow users to submit scores.

## [2.2.0] - 2018-11-11
### Added
+7 −2
Original line number Diff line number Diff line
@@ -58,8 +58,13 @@ func LeaderboardRecordsList(ctx context.Context, logger *zap.Logger, db *sql.DB,
	}

	expiryTime := overrideExpiry
	if expiryTime == 0 && leaderboard.ResetSchedule != nil {
		expiryTime = leaderboard.ResetSchedule.Next(time.Now().UTC()).UTC().Unix()
	if expiryTime == 0 {
		now := time.Now().UTC()
		if leaderboard.IsTournament() {
			_, _, expiryTime = calculateTournamentDeadlines(leaderboard, now)
		} else if leaderboard.ResetSchedule != nil {
			expiryTime = leaderboard.ResetSchedule.Next(now).UTC().Unix()
		}
	}

	records := make([]*api.LeaderboardRecord, 0)
+2 −7
Original line number Diff line number Diff line
@@ -133,17 +133,12 @@ func TournamentJoin(ctx context.Context, logger *zap.Logger, db *sql.DB, cache L

	now := time.Now().UTC()
	nowUnix := now.Unix()
	startActive, endActive, _ := calculateTournamentDeadlines(leaderboard, now)
	startActive, endActive, expiryTime := calculateTournamentDeadlines(leaderboard, now)
	if startActive > nowUnix || endActive <= nowUnix {
		logger.Info("Cannot join tournament outside of tournament duration.")
		return ErrTournamentOutsideDuration
	}

	expiryTime := int64(0)
	if leaderboard.ResetSchedule != nil {
		expiryTime = leaderboard.ResetSchedule.Next(now).UTC().Unix()
	}

	tx, err := db.BeginTx(ctx, nil)
	if err != nil {
		logger.Error("Could not begin database transaction.", zap.Error(err))
@@ -349,7 +344,7 @@ func TournamentRecordWrite(ctx context.Context, logger *zap.Logger, db *sql.DB,
		query := `UPDATE leaderboard_record
              SET ` + opSql + `, num_score = leaderboard_record.num_score + 1, metadata = COALESCE($7, leaderboard_record.metadata), username = COALESCE($3, leaderboard_record.username), update_time = now()
              WHERE leaderboard_id = $1 AND owner_id = $2 AND expiry_time = $4 AND (max_num_score = 0 OR num_score < max_num_score)`

		logger.Debug("Tournament update query", zap.String("query", query), zap.Any("params", params))
		res, err := db.ExecContext(ctx, query, params...)
		if err != nil {
			logger.Error("Error writing tournament record", zap.Error(err))