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/processor_jwt"
|
||||||
"evening_detective_server/internal/modules/roles"
|
"evening_detective_server/internal/modules/roles"
|
||||||
"evening_detective_server/internal/modules/team_qr_pdf"
|
"evening_detective_server/internal/services/team_service"
|
||||||
"evening_detective_server/internal/repos/games_repo"
|
|
||||||
"evening_detective_server/proto"
|
"evening_detective_server/proto"
|
||||||
|
|
||||||
"google.golang.org/genproto/googleapis/api/httpbody"
|
"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))
|
data, filename, err := s.teamService.DownloadTeamQR(ctx, int(req.ID))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
switch {
|
switch {
|
||||||
case errors.Is(err, games_repo.ErrGameNotFound):
|
case errors.Is(err, team_service.ErrGameNotFound):
|
||||||
return nil, status.Error(codes.NotFound, err.Error())
|
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())
|
return nil, status.Error(codes.FailedPrecondition, err.Error())
|
||||||
default:
|
default:
|
||||||
return nil, status.Error(codes.Internal, err.Error())
|
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) {
|
func (s *TeamService) DownloadTeamQR(ctx context.Context, id int) ([]byte, string, error) {
|
||||||
game, err := s.gamesRepo.GetGameByID(ctx, id)
|
game, err := s.gamesRepo.GetGameByID(ctx, id)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
if errors.Is(err, games_repo.ErrGameNotFound) {
|
||||||
|
return nil, "", ErrGameNotFound
|
||||||
|
}
|
||||||
return nil, "", err
|
return nil, "", err
|
||||||
}
|
}
|
||||||
teams, err := s.teamsRepo.GetActiveTeamsByGameID(ctx, id)
|
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
|
return nil, "", err
|
||||||
}
|
}
|
||||||
if len(teams) == 0 {
|
if len(teams) == 0 {
|
||||||
return nil, "", team_qr_pdf.ErrNoCards
|
return nil, "", ErrNoCards
|
||||||
}
|
}
|
||||||
cards, filename, err := teamQRData(s.appBaseURL, game, teams)
|
cards, filename, err := teamQRData(s.appBaseURL, game, teams)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|||||||
@@ -11,6 +11,13 @@ import (
|
|||||||
"evening_detective_server/internal/repos"
|
"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) {
|
func teamQRData(baseURL string, game *repos.Game, teams []*repos.Team) ([]team_qr_pdf.Card, string, error) {
|
||||||
base, err := url.Parse(strings.TrimSpace(baseURL))
|
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 != "" {
|
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