aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--backend/admin/handler_test.go2
-rw-r--r--backend/api/convert.go10
-rw-r--r--backend/api/handler_test.go2
-rw-r--r--backend/game/service.go35
-rw-r--r--backend/tournament/service.go48
-rw-r--r--backend/tournament/service_test.go2
6 files changed, 48 insertions, 51 deletions
diff --git a/backend/admin/handler_test.go b/backend/admin/handler_test.go
index ac9ccc6..994c584 100644
--- a/backend/admin/handler_test.go
+++ b/backend/admin/handler_test.go
@@ -358,7 +358,7 @@ func (m *mockQuerier) SyncGameStateBestScoreSubmission(ctx context.Context, arg
return nil
}
-// mockGameHub implements game.GameHubInterface for testing.
+// mockGameHub implements game.HubInterface for testing.
type mockGameHub struct {
enqueueTestTasksFunc func(ctx context.Context, submissionID, gameID, userID int, language, code string) error
}
diff --git a/backend/api/convert.go b/backend/api/convert.go
index f05f3bf..dec734a 100644
--- a/backend/api/convert.go
+++ b/backend/api/convert.go
@@ -18,7 +18,7 @@ func toAPIUser(p game.Player) User {
}
}
-func toAPIGame(g game.GameDetail) Game {
+func toAPIGame(g game.Detail) Game {
var startedAt *int64
if g.StartedAt != nil {
ts := g.StartedAt.Unix()
@@ -75,10 +75,10 @@ func toAPIRankingEntry(r game.RankingEntry) RankingEntry {
code = nullable.NewNullNullable[string]()
}
return RankingEntry{
- Player: toAPIUser(r.Player),
- Score: r.Score,
+ Player: toAPIUser(r.Player),
+ Score: r.Score,
SubmittedAt: r.SubmittedAt,
- Code: code,
+ Code: code,
}
}
@@ -112,7 +112,7 @@ func toAPITournamentPlayerPtr(p *tournament.Player) *User {
return &u
}
-func toAPITournament(t tournament.TournamentBracket) Tournament {
+func toAPITournament(t tournament.Bracket) Tournament {
entries := make([]TournamentEntry, len(t.Entries))
for i, e := range t.Entries {
entries[i] = TournamentEntry{
diff --git a/backend/api/handler_test.go b/backend/api/handler_test.go
index a4e08dc..2dcde29 100644
--- a/backend/api/handler_test.go
+++ b/backend/api/handler_test.go
@@ -132,7 +132,7 @@ func (m *mockTxManager) RunInTx(_ context.Context, fn func(q db.Querier) error)
return fn(&mockQuerier{})
}
-// mockGameHub implements game.GameHubInterface for testing.
+// mockGameHub implements game.HubInterface for testing.
type mockGameHub struct {
calcCodeSizeResult int
enqueueErr error
diff --git a/backend/game/service.go b/backend/game/service.go
index debc126..13900e1 100644
--- a/backend/game/service.go
+++ b/backend/game/service.go
@@ -11,7 +11,7 @@ import (
"albatross-2026-backend/db"
)
-type GameHubInterface interface {
+type HubInterface interface {
CalcCodeSize(code string, language string) int
EnqueueTestTasks(ctx context.Context, submissionID, gameID, userID int, language, code string) error
}
@@ -19,10 +19,10 @@ type GameHubInterface interface {
type Service struct {
q db.Querier
txm db.TxManager
- hub GameHubInterface
+ hub HubInterface
}
-func NewService(q db.Querier, txm db.TxManager, hub GameHubInterface) *Service {
+func NewService(q db.Querier, txm db.TxManager, hub HubInterface) *Service {
return &Service{q: q, txm: txm, hub: hub}
}
@@ -45,7 +45,7 @@ type ProblemDetail struct {
SampleCode string
}
-type GameDetail struct {
+type Detail struct {
GameID int
GameType string
IsPublic bool
@@ -108,13 +108,13 @@ func playerFromMainPlayerRow(row db.ListMainPlayersRow) Player {
}
}
-func gameDetailFromPublicRow(row db.ListPublicGamesRow) GameDetail {
+func gameDetailFromPublicRow(row db.ListPublicGamesRow) Detail {
var startedAt *time.Time
if row.StartedAt.Valid {
t := row.StartedAt.Time
startedAt = &t
}
- return GameDetail{
+ return Detail{
GameID: int(row.GameID),
GameType: row.GameType,
IsPublic: row.IsPublic,
@@ -131,13 +131,13 @@ func gameDetailFromPublicRow(row db.ListPublicGamesRow) GameDetail {
}
}
-func gameDetailFromGetRow(row db.GetGameByIDRow) GameDetail {
+func gameDetailFromGetRow(row db.GetGameByIDRow) Detail {
var startedAt *time.Time
if row.StartedAt.Valid {
t := row.StartedAt.Time
startedAt = &t
}
- return GameDetail{
+ return Detail{
GameID: int(row.GameID),
GameType: row.GameType,
IsPublic: row.IsPublic,
@@ -156,12 +156,12 @@ func gameDetailFromGetRow(row db.GetGameByIDRow) GameDetail {
// Service methods
-func (s *Service) ListPublicGames(ctx context.Context) ([]GameDetail, error) {
+func (s *Service) ListPublicGames(ctx context.Context) ([]Detail, error) {
gameRows, err := s.q.ListPublicGames(ctx)
if err != nil {
return nil, err
}
- games := make([]GameDetail, len(gameRows))
+ games := make([]Detail, len(gameRows))
gameIDs := make([]int32, len(gameRows))
gameID2Index := make(map[int32]int, len(gameRows))
for i, row := range gameRows {
@@ -180,21 +180,21 @@ func (s *Service) ListPublicGames(ctx context.Context) ([]GameDetail, error) {
return games, nil
}
-func (s *Service) GetGameByID(ctx context.Context, gameID int, isAdmin bool) (GameDetail, error) {
+func (s *Service) GetGameByID(ctx context.Context, gameID int, isAdmin bool) (Detail, error) {
row, err := s.q.GetGameByID(ctx, int32(gameID))
if err != nil {
if errors.Is(err, pgx.ErrNoRows) {
- return GameDetail{}, ErrNotFound
+ return Detail{}, ErrNotFound
}
- return GameDetail{}, err
+ return Detail{}, err
}
if !row.IsPublic && !isAdmin {
- return GameDetail{}, ErrNotFound
+ return Detail{}, ErrNotFound
}
game := gameDetailFromGetRow(row)
mainPlayerRows, err := s.q.ListMainPlayers(ctx, []int32{int32(gameID)})
if err != nil {
- return GameDetail{}, err
+ return Detail{}, err
}
for _, playerRow := range mainPlayerRows {
game.MainPlayers = append(game.MainPlayers, playerFromMainPlayerRow(playerRow))
@@ -523,10 +523,7 @@ func (s *Service) FixSubmissionStatuses(ctx context.Context) error {
return err
}
for _, r := range gameStates {
- if err := s.q.SyncGameStateBestScoreSubmission(ctx, db.SyncGameStateBestScoreSubmissionParams{
- GameID: r.GameID,
- UserID: r.UserID,
- }); err != nil {
+ if err := s.q.SyncGameStateBestScoreSubmission(ctx, db.SyncGameStateBestScoreSubmissionParams(r)); err != nil {
return err
}
}
diff --git a/backend/tournament/service.go b/backend/tournament/service.go
index 0737d69..938b430 100644
--- a/backend/tournament/service.go
+++ b/backend/tournament/service.go
@@ -47,12 +47,12 @@ type Player struct {
Label *string
}
-type TournamentEntry struct {
+type Entry struct {
User Player
Seed int
}
-type TournamentMatch struct {
+type Match struct {
TournamentMatchID int
Round int
Position int
@@ -65,13 +65,13 @@ type TournamentMatch struct {
IsBye bool
}
-type TournamentBracket struct {
+type Bracket struct {
TournamentID int
DisplayName string
BracketSize int
NumRounds int
- Entries []TournamentEntry
- Matches []TournamentMatch
+ Entries []Entry
+ Matches []Match
}
// StandardBracketSeeds returns the seed assignments for each slot in a standard
@@ -90,7 +90,7 @@ func StandardBracketSeeds(bracketSize int) []int {
return seeds
}
-func findSeedByUserID(entries []TournamentEntry, userID int) int {
+func findSeedByUserID(entries []Entry, userID int) int {
for _, e := range entries {
if e.User.UserID == userID {
return e.Seed
@@ -99,22 +99,22 @@ func findSeedByUserID(entries []TournamentEntry, userID int) int {
return 0
}
-func (s *Service) GetTournament(ctx context.Context, tournamentID int) (TournamentBracket, error) {
+func (s *Service) GetTournament(ctx context.Context, tournamentID int) (Bracket, error) {
t, err := s.q.GetTournamentByID(ctx, int32(tournamentID))
if err != nil {
if errors.Is(err, pgx.ErrNoRows) {
- return TournamentBracket{}, game.ErrNotFound
+ return Bracket{}, game.ErrNotFound
}
- return TournamentBracket{}, err
+ return Bracket{}, err
}
entryRows, err := s.q.ListTournamentEntries(ctx, int32(tournamentID))
if err != nil {
- return TournamentBracket{}, err
+ return Bracket{}, err
}
seedToUser := make(map[int]Player)
- entries := make([]TournamentEntry, len(entryRows))
+ entries := make([]Entry, len(entryRows))
for i, e := range entryRows {
u := Player{
UserID: int(e.UserID),
@@ -125,7 +125,7 @@ func (s *Service) GetTournament(ctx context.Context, tournamentID int) (Tourname
Label: e.Label,
}
seedToUser[int(e.Seed)] = u
- entries[i] = TournamentEntry{
+ entries[i] = Entry{
User: u,
Seed: int(e.Seed),
}
@@ -133,7 +133,7 @@ func (s *Service) GetTournament(ctx context.Context, tournamentID int) (Tourname
matchRows, err := s.q.ListTournamentMatches(ctx, int32(tournamentID))
if err != nil {
- return TournamentBracket{}, err
+ return Bracket{}, err
}
bracketSize := int(t.BracketSize)
@@ -278,7 +278,7 @@ func (s *Service) GetTournament(ctx context.Context, tournamentID int) (Tourname
}
// Build response matches
- apiMatches := make([]TournamentMatch, 0, len(matchRows))
+ apiMatches := make([]Match, 0, len(matchRows))
for round := 0; round < numRounds; round++ {
numPositions := bracketSize / (1 << (round + 1))
for pos := 0; pos < numPositions; pos++ {
@@ -295,7 +295,7 @@ func (s *Service) GetTournament(ctx context.Context, tournamentID int) (Tourname
}
}
- apiMatches = append(apiMatches, TournamentMatch{
+ apiMatches = append(apiMatches, Match{
TournamentMatchID: matchID,
Round: round,
Position: pos,
@@ -310,7 +310,7 @@ func (s *Service) GetTournament(ctx context.Context, tournamentID int) (Tourname
}
}
- return TournamentBracket{
+ return Bracket{
TournamentID: int(t.TournamentID),
DisplayName: t.DisplayName,
BracketSize: bracketSize,
@@ -426,26 +426,26 @@ func (s *Service) UpdateTournament(ctx context.Context, params UpdateTournamentP
})
}
-// TournamentEditData holds data needed for the tournament edit page.
-type TournamentEditData struct {
+// EditData holds data needed for the tournament edit page.
+type EditData struct {
Tournament db.Tournament
SeedUserMap map[int]int
Matches []db.TournamentMatch
}
// GetTournamentEditData retrieves the data needed for editing a tournament.
-func (s *Service) GetTournamentEditData(ctx context.Context, tournamentID int) (TournamentEditData, error) {
+func (s *Service) GetTournamentEditData(ctx context.Context, tournamentID int) (EditData, error) {
t, err := s.q.GetTournamentByID(ctx, int32(tournamentID))
if err != nil {
if errors.Is(err, pgx.ErrNoRows) {
- return TournamentEditData{}, game.ErrNotFound
+ return EditData{}, game.ErrNotFound
}
- return TournamentEditData{}, err
+ return EditData{}, err
}
entryRows, err := s.q.ListTournamentEntries(ctx, int32(tournamentID))
if err != nil {
- return TournamentEditData{}, err
+ return EditData{}, err
}
seedUserMap := make(map[int]int)
for _, e := range entryRows {
@@ -454,10 +454,10 @@ func (s *Service) GetTournamentEditData(ctx context.Context, tournamentID int) (
matchRows, err := s.q.ListTournamentMatches(ctx, int32(tournamentID))
if err != nil {
- return TournamentEditData{}, err
+ return EditData{}, err
}
- return TournamentEditData{
+ return EditData{
Tournament: t,
SeedUserMap: seedUserMap,
Matches: matchRows,
diff --git a/backend/tournament/service_test.go b/backend/tournament/service_test.go
index c43fb4e..a07b595 100644
--- a/backend/tournament/service_test.go
+++ b/backend/tournament/service_test.go
@@ -79,7 +79,7 @@ func TestStandardBracketSeeds_AllSeedsPresent(t *testing.T) {
}
func TestFindSeedByUserID(t *testing.T) {
- entries := []TournamentEntry{
+ entries := []Entry{
{User: Player{UserID: 10}, Seed: 1},
{User: Player{UserID: 20}, Seed: 2},
{User: Player{UserID: 30}, Seed: 3},