From a0440937477f8cbfb39e77ff80fb80eb0be0166f Mon Sep 17 00:00:00 2001 From: Fedorov Vladimir Date: Mon, 2 Mar 2026 01:52:10 +0700 Subject: [PATCH] clear --- cmd/evening_detective/main.go | 4 ++++ internal/modules/password/interface.go | 5 +++++ internal/modules/password/password.go | 10 ++++++++-- internal/services/services.go | 21 ++++++++++++--------- 4 files changed, 29 insertions(+), 11 deletions(-) create mode 100644 internal/modules/password/interface.go diff --git a/cmd/evening_detective/main.go b/cmd/evening_detective/main.go index fb34e42..667dd5a 100644 --- a/cmd/evening_detective/main.go +++ b/cmd/evening_detective/main.go @@ -6,6 +6,7 @@ import ( "evening_detective/internal/app" "evening_detective/internal/config" "evening_detective/internal/modules/link" + "evening_detective/internal/modules/password" "evening_detective/internal/services" "evening_detective/internal/services/story_service" proto "evening_detective/proto" @@ -50,6 +51,8 @@ func main() { linkService := link.NewLinkService() + passwordGenerator := password.NewPasswordGenerator() + clientHost := config.GetHost() proto.RegisterEveningDetectiveServer( s, @@ -58,6 +61,7 @@ func main() { repository, storyService, linkService, + passwordGenerator, clientHost, ), ), diff --git a/internal/modules/password/interface.go b/internal/modules/password/interface.go new file mode 100644 index 0000000..451171f --- /dev/null +++ b/internal/modules/password/interface.go @@ -0,0 +1,5 @@ +package password + +type IPasswordGenerator interface { + GeneratePassword(length int) string +} diff --git a/internal/modules/password/password.go b/internal/modules/password/password.go index 96f21f0..2f5974d 100644 --- a/internal/modules/password/password.go +++ b/internal/modules/password/password.go @@ -6,8 +6,14 @@ var ( letters = []rune("abcdefghijklmnopqrstuvwxyz123456789") ) -func GenPass(n int) string { - b := make([]rune, n) +type service struct{} + +func NewPasswordGenerator() IPasswordGenerator { + return &service{} +} + +func (s *service) GeneratePassword(length int) string { + b := make([]rune, length) for i := range b { b[i] = letters[rand.Intn(len(letters))] } diff --git a/internal/services/services.go b/internal/services/services.go index 20ca32b..bc3ad37 100644 --- a/internal/services/services.go +++ b/internal/services/services.go @@ -19,23 +19,26 @@ import ( ) type Services struct { - repository *Repository - storyService *story_service.StoryService - linkService link.ILinkService - clientHost string + repository *Repository + storyService *story_service.StoryService + linkService link.ILinkService + passwordGenerator password.IPasswordGenerator + clientHost string } func NewServices( repository *Repository, storyService *story_service.StoryService, linkService link.ILinkService, + passwordGenerator password.IPasswordGenerator, clientHost string, ) *Services { return &Services{ - repository: repository, - storyService: storyService, - linkService: linkService, - clientHost: clientHost, + repository: repository, + storyService: storyService, + linkService: linkService, + 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)) for _, team := range req.Teams { t := mapProtoTeamsToTeam(team) - t.Password = password.GenPass(8) + t.Password = s.passwordGenerator.GeneratePassword(8) inTeams = append(inTeams, t) } teams, err := s.repository.AddTeams(ctx, inTeams)