From 732f898cf0ddefa779bab799aade0d25900b1e34 Mon Sep 17 00:00:00 2001 From: Fedorov Vladimir Date: Thu, 1 Oct 2026 02:03:37 +0700 Subject: [PATCH] fix actions count --- internal/services/answer_service/service.go | 12 +++++++++++- internal/services/game_service/lifecycle_test.go | 2 +- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/internal/services/answer_service/service.go b/internal/services/answer_service/service.go index aef4063..18d3c59 100644 --- a/internal/services/answer_service/service.go +++ b/internal/services/answer_service/service.go @@ -167,6 +167,14 @@ func (s *AnswerService) GetGameAnswers(ctx context.Context, gameId int) (*GameAn if err != nil { return nil, err } + teamIds := make([]int, 0, len(teams)) + for _, team := range teams { + teamIds = append(teamIds, team.ID) + } + actionsCountByTeamIDs, err := s.actionsRepo.GetActionsCountByTeamIDs(ctx, teamIds) + if err != nil { + return nil, err + } rows, err := s.answersRepo.GetAnswersByGameID(ctx, gameId) if err != nil { return nil, err @@ -199,8 +207,10 @@ func (s *AnswerService) GetGameAnswers(ctx context.Context, gameId int) (*GameAn } answers = append(answers, AnswerScore{QuestionCode: question.Code}) } + mappedTeam := game_model.MapTeam(team) + mappedTeam.ActionsCount = actionsCountByTeamIDs[team.ID] teamAnswers = append(teamAnswers, TeamAnswers{ - Team: game_model.MapTeam(team), + Team: mappedTeam, Answers: answers, }) } diff --git a/internal/services/game_service/lifecycle_test.go b/internal/services/game_service/lifecycle_test.go index 4f517a4..dda0527 100644 --- a/internal/services/game_service/lifecycle_test.go +++ b/internal/services/game_service/lifecycle_test.go @@ -162,7 +162,7 @@ func TestServicesLifecyclePostgres(t *testing.T) { } grading, err := answers.GetGameAnswers(ctx, id) check(err) - if len(grading.Teams) != 1 || grading.Teams[0].Answers[0].Score == nil || *grading.Teams[0].Answers[0].Score != 5 { + if len(grading.Teams) != 1 || grading.Teams[0].Team.ActionsCount != 1 || grading.Teams[0].Answers[0].Score == nil || *grading.Teams[0].Answers[0].Score != 5 { t.Fatal("reset removed answers or scores") } }