This commit is contained in:
2026-10-04 04:07:49 +07:00
parent 07f90215cd
commit b46c128b7c
10 changed files with 51 additions and 22 deletions
@@ -15,8 +15,14 @@ func TestManualTeamEmail(t *testing.T) {
}
for _, email := range []string{"invalid", "Captain <captain@example.org>", "a@example.org\r\nBcc: other@example.org", strings.Repeat("a", 250) + "@example.org"} {
service := &TeamService{}
if _, err := service.AddTeam(context.Background(), 1, 1, "Team", email); err == nil {
if _, err := service.AddTeam(context.Background(), 1, 1, "Team", email, 0); err == nil {
t.Errorf("accepted invalid email %q", email)
}
}
for _, count := range []int32{-1, 9} {
service := &TeamService{}
if _, err := service.AddTeam(context.Background(), 1, 1, "Team", "", count); err != ErrInvalidParticipantsCount {
t.Errorf("accepted invalid participants count %d: %v", count, err)
}
}
}
@@ -11,10 +11,11 @@ import (
)
var (
ErrInvalidCaptainEmail = errors.New("укажите корректную почту капитана")
ErrTeamNotFound = errors.New("команда не найдена")
ErrInvalidRegistration = errors.New("укажите название команды (до 255 символов), почту капитана и положительное количество участников")
ErrRegistrationClosed = errors.New("игра не найдена или регистрация уже закрыта")
ErrInvalidCaptainEmail = errors.New("укажите корректную почту капитана")
ErrInvalidParticipantsCount = errors.New("укажите от 1 до 8 участников")
ErrTeamNotFound = errors.New("команда не найдена")
ErrInvalidRegistration = errors.New("укажите название команды (до 255 символов), почту капитана и положительное количество участников")
ErrRegistrationClosed = errors.New("игра не найдена или регистрация уже закрыта")
)
// Registration contains data required to register a team.
+5 -1
View File
@@ -50,11 +50,15 @@ func (s *TeamService) AddTeam(
gameID int,
name string,
captainEmail string,
participantsCount int32,
) (*game_model.Team, error) {
captainEmail = strings.TrimSpace(captainEmail)
if captainEmail != "" && !validCaptainEmail(captainEmail) {
return nil, ErrInvalidCaptainEmail
}
if participantsCount < 0 || participantsCount > 8 {
return nil, ErrInvalidParticipantsCount
}
password, err := s.passwordGenerator.Generate()
if err != nil {
return nil, err
@@ -66,7 +70,7 @@ func (s *TeamService) AddTeam(
}
return nil, err
}
id, err := s.teamsRepo.AddTeamWithParticipation(ctx, creatorID, gameID, name, password, captainEmail, !time.Now().Before(game.StartAt.Add(-24*time.Hour)))
id, err := s.teamsRepo.AddTeamWithParticipation(ctx, creatorID, gameID, name, password, captainEmail, participantsCount, !time.Now().Before(game.StartAt.Add(-24*time.Hour)))
if err != nil {
return nil, err
}