generated from VLADIMIR/template
fix
This commit is contained in:
@@ -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())
|
||||
|
||||
@@ -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 != "" {
|
||||
|
||||
Reference in New Issue
Block a user