This commit is contained in:
2026-10-02 23:19:44 +07:00
parent b1fb9c4dfa
commit b97a5bc0cd
3 changed files with 14 additions and 5 deletions
+4 -1
View File
@@ -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 {
@@ -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 != "" {