From b97a5bc0cd95a48cc0c7183beaca08ec94c1c38f Mon Sep 17 00:00:00 2001 From: Fedorov Vladimir Date: Fri, 2 Oct 2026 23:19:44 +0700 Subject: [PATCH] fix --- internal/app/team_qr.go | 7 +++---- internal/services/team_service/service.go | 5 ++++- internal/services/team_service/team_qr.go | 7 +++++++ 3 files changed, 14 insertions(+), 5 deletions(-) diff --git a/internal/app/team_qr.go b/internal/app/team_qr.go index ff8d08f..188fe1f 100644 --- a/internal/app/team_qr.go +++ b/internal/app/team_qr.go @@ -7,8 +7,7 @@ import ( "evening_detective_server/internal/modules/processor_jwt" "evening_detective_server/internal/modules/roles" - "evening_detective_server/internal/modules/team_qr_pdf" - "evening_detective_server/internal/repos/games_repo" + "evening_detective_server/internal/services/team_service" "evening_detective_server/proto" "google.golang.org/genproto/googleapis/api/httpbody" @@ -32,9 +31,9 @@ func (s *server) DownloadTeamQR(ctx context.Context, req *proto.GetGameReq) (*ht data, filename, err := s.teamService.DownloadTeamQR(ctx, int(req.ID)) if err != nil { switch { - case errors.Is(err, games_repo.ErrGameNotFound): + case errors.Is(err, team_service.ErrGameNotFound): return nil, status.Error(codes.NotFound, err.Error()) - case errors.Is(err, team_qr_pdf.ErrNoCards): + case errors.Is(err, team_service.ErrNoCards): return nil, status.Error(codes.FailedPrecondition, err.Error()) default: return nil, status.Error(codes.Internal, err.Error()) diff --git a/internal/services/team_service/service.go b/internal/services/team_service/service.go index dc8d409..9cfd09e 100644 --- a/internal/services/team_service/service.go +++ b/internal/services/team_service/service.go @@ -125,6 +125,9 @@ func registrationEmail(team *repos.Team, gameName, baseURL string) email_sender. func (s *TeamService) DownloadTeamQR(ctx context.Context, id int) ([]byte, string, error) { game, err := s.gamesRepo.GetGameByID(ctx, id) if err != nil { + if errors.Is(err, games_repo.ErrGameNotFound) { + return nil, "", ErrGameNotFound + } return nil, "", err } teams, err := s.teamsRepo.GetActiveTeamsByGameID(ctx, id) @@ -132,7 +135,7 @@ func (s *TeamService) DownloadTeamQR(ctx context.Context, id int) ([]byte, strin return nil, "", err } if len(teams) == 0 { - return nil, "", team_qr_pdf.ErrNoCards + return nil, "", ErrNoCards } cards, filename, err := teamQRData(s.appBaseURL, game, teams) if err != nil { diff --git a/internal/services/team_service/team_qr.go b/internal/services/team_service/team_qr.go index 810ab0e..6c8dac8 100644 --- a/internal/services/team_service/team_qr.go +++ b/internal/services/team_service/team_qr.go @@ -11,6 +11,13 @@ import ( "evening_detective_server/internal/repos" ) +var ( + // ErrGameNotFound — игра для генерации QR-кодов не найдена. + ErrGameNotFound = errors.New("Игра не найдена") + // ErrNoCards — для игры нет активных команд, которым нужны QR-коды. + ErrNoCards = errors.New("нет карточек") +) + func teamQRData(baseURL string, game *repos.Game, teams []*repos.Team) ([]team_qr_pdf.Card, string, error) { base, err := url.Parse(strings.TrimSpace(baseURL)) if err != nil || (base.Scheme != "http" && base.Scheme != "https") || base.Host == "" || base.User != nil || base.RawQuery != "" || base.Fragment != "" {