This commit is contained in:
Владимир Фёдоров 2026-03-02 01:52:10 +07:00
parent 4280d5376a
commit a044093747
4 changed files with 29 additions and 11 deletions

View File

@ -6,6 +6,7 @@ import (
"evening_detective/internal/app" "evening_detective/internal/app"
"evening_detective/internal/config" "evening_detective/internal/config"
"evening_detective/internal/modules/link" "evening_detective/internal/modules/link"
"evening_detective/internal/modules/password"
"evening_detective/internal/services" "evening_detective/internal/services"
"evening_detective/internal/services/story_service" "evening_detective/internal/services/story_service"
proto "evening_detective/proto" proto "evening_detective/proto"
@ -50,6 +51,8 @@ func main() {
linkService := link.NewLinkService() linkService := link.NewLinkService()
passwordGenerator := password.NewPasswordGenerator()
clientHost := config.GetHost() clientHost := config.GetHost()
proto.RegisterEveningDetectiveServer( proto.RegisterEveningDetectiveServer(
s, s,
@ -58,6 +61,7 @@ func main() {
repository, repository,
storyService, storyService,
linkService, linkService,
passwordGenerator,
clientHost, clientHost,
), ),
), ),

View File

@ -0,0 +1,5 @@
package password
type IPasswordGenerator interface {
GeneratePassword(length int) string
}

View File

@ -6,8 +6,14 @@ var (
letters = []rune("abcdefghijklmnopqrstuvwxyz123456789") letters = []rune("abcdefghijklmnopqrstuvwxyz123456789")
) )
func GenPass(n int) string { type service struct{}
b := make([]rune, n)
func NewPasswordGenerator() IPasswordGenerator {
return &service{}
}
func (s *service) GeneratePassword(length int) string {
b := make([]rune, length)
for i := range b { for i := range b {
b[i] = letters[rand.Intn(len(letters))] b[i] = letters[rand.Intn(len(letters))]
} }

View File

@ -19,23 +19,26 @@ import (
) )
type Services struct { type Services struct {
repository *Repository repository *Repository
storyService *story_service.StoryService storyService *story_service.StoryService
linkService link.ILinkService linkService link.ILinkService
clientHost string passwordGenerator password.IPasswordGenerator
clientHost string
} }
func NewServices( func NewServices(
repository *Repository, repository *Repository,
storyService *story_service.StoryService, storyService *story_service.StoryService,
linkService link.ILinkService, linkService link.ILinkService,
passwordGenerator password.IPasswordGenerator,
clientHost string, clientHost string,
) *Services { ) *Services {
return &Services{ return &Services{
repository: repository, repository: repository,
storyService: storyService, storyService: storyService,
linkService: linkService, linkService: linkService,
clientHost: clientHost, passwordGenerator: passwordGenerator,
clientHost: clientHost,
} }
} }
@ -176,7 +179,7 @@ func (s *Services) AddTeams(ctx context.Context, req *proto.AddTeamsReq) (*proto
inTeams := make([]*models.Team, 0, len(req.Teams)) inTeams := make([]*models.Team, 0, len(req.Teams))
for _, team := range req.Teams { for _, team := range req.Teams {
t := mapProtoTeamsToTeam(team) t := mapProtoTeamsToTeam(team)
t.Password = password.GenPass(8) t.Password = s.passwordGenerator.GeneratePassword(8)
inTeams = append(inTeams, t) inTeams = append(inTeams, t)
} }
teams, err := s.repository.AddTeams(ctx, inTeams) teams, err := s.repository.AddTeams(ctx, inTeams)