refac: split the auth handler into registration and login, account verification, and password reset handlers, each with its own dependencies

This commit is contained in:
fsylvain committed 2026-09-25 06:14:53 +02:00
1 parent 3282b0580c
commit 9b47685002
18 files changed
+497 -452

No files matched your search

+6 -18
View File
@@ -154,23 +154,17 @@ func TestBcryptHasherHashAndCompare(t *testing.T) {
func newHasherRouter(userRepo *mockUserRepo, hasher *stubHasher) *chi.Mux {
token := jwtauth.New("HS256", []byte("test-secret"), nil)
authHandler := auth.NewHandler(
loginHandler := auth.NewLoginHandler(
token,
useCases.NewGetUserUseCase(userRepo),
useCases.NewListUsersUseCase(userRepo),
useCases.NewCreateUserUseCase(userRepo, hasher, newMockMailRepo(), "https://cms.example.com"),
useCases.NewAuthenticateUserUseCase(userRepo, hasher),
useCases.NewVerifyUserUseCase(userRepo, hasher),
useCases.NewCancelRegistrationUseCase(userRepo),
useCases.NewRequestPasswordResetUseCase(userRepo, hasher, newMockMailRepo(), "https://cms.example.com"),
useCases.NewResetPasswordUseCase(userRepo, hasher),
true,
)
r := chi.NewRouter()
r.Route("/v1/auth", func(r chi.Router) {
r.Post("/login", authHandler.Login)
r.Post("/register", authHandler.Register)
r.Post("/login", loginHandler.Login)
r.Post("/register", loginHandler.Register)
})
return r
}
@@ -178,23 +172,17 @@ func newHasherRouter(userRepo *mockUserRepo, hasher *stubHasher) *chi.Mux {
func newRealHasherRouter(userRepo *mockUserRepo) *chi.Mux {
token := jwtauth.New("HS256", []byte("test-secret"), nil)
hasher := hashing.NewBcryptHasher()
authHandler := auth.NewHandler(
loginHandler := auth.NewLoginHandler(
token,
useCases.NewGetUserUseCase(userRepo),
useCases.NewListUsersUseCase(userRepo),
useCases.NewCreateUserUseCase(userRepo, hasher, newMockMailRepo(), "https://cms.example.com"),
useCases.NewAuthenticateUserUseCase(userRepo, hasher),
useCases.NewVerifyUserUseCase(userRepo, hasher),
useCases.NewCancelRegistrationUseCase(userRepo),
useCases.NewRequestPasswordResetUseCase(userRepo, hasher, newMockMailRepo(), "https://cms.example.com"),
useCases.NewResetPasswordUseCase(userRepo, hasher),
true,
)
r := chi.NewRouter()
r.Route("/v1/auth", func(r chi.Router) {
r.Post("/login", authHandler.Login)
r.Post("/register", authHandler.Register)
r.Post("/login", loginHandler.Login)
r.Post("/register", loginHandler.Register)
})
return r
}