Loading CHANGELOG.md +1 −1 Original line number Diff line number Diff line Loading @@ -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 Loading server/core_leaderboard.go +7 −2 Original line number Diff line number Diff line Loading @@ -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) Loading server/core_tournament.go +2 −7 Original line number Diff line number Diff line Loading @@ -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)) Loading Loading @@ -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)) Loading Loading
CHANGELOG.md +1 −1 Original line number Diff line number Diff line Loading @@ -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 Loading
server/core_leaderboard.go +7 −2 Original line number Diff line number Diff line Loading @@ -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) Loading
server/core_tournament.go +2 −7 Original line number Diff line number Diff line Loading @@ -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)) Loading Loading @@ -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)) Loading