From 6cec5ef294a03c39e2d9feff0f0b7a4971ca975a Mon Sep 17 00:00:00 2001 From: ymktmk <73768462+ymktmk@users.noreply.github.com> Date: Mon, 17 Apr 2023 01:20:40 +0900 Subject: [PATCH 1/3] [fix] architecture --- .../http/controller/user_controller.go | 19 +++++++++---------- app/adapter/http/server.go | 12 +++++++++++- .../impl/service/getting_user_service_impl.go | 6 +++--- 3 files changed, 23 insertions(+), 14 deletions(-) diff --git a/app/adapter/http/controller/user_controller.go b/app/adapter/http/controller/user_controller.go index 6b8058e..e5ff7d6 100644 --- a/app/adapter/http/controller/user_controller.go +++ b/app/adapter/http/controller/user_controller.go @@ -4,22 +4,21 @@ import ( "encoding/json" "net/http" - "github.com/ymktmk/golang-hexagonal-architecture/app/adapter/db" "github.com/ymktmk/golang-hexagonal-architecture/app/adapter/http/view" - "github.com/ymktmk/golang-hexagonal-architecture/app/adapter/impl/repository" - serviceImpl "github.com/ymktmk/golang-hexagonal-architecture/app/adapter/impl/service" + "github.com/ymktmk/golang-hexagonal-architecture/app/domain/service" "github.com/ymktmk/golang-hexagonal-architecture/app/application/usecase" ) -func ControlGetUser(w http.ResponseWriter, r *http.Request) { +type UserController struct { + gettingUserService service.GettingUserService +} - db, err := db.InitDB() - if err != nil { - panic(err) - } +func NewUserController(gettingUserService service.GettingUserService) *UserController { + return &UserController{gettingUserService: gettingUserService} +} - gettingUserService := serviceImpl.NewGettingUserService(repository.NewUserRepository(db)) - users, err := usecase.RequestGetUser(gettingUserService) +func (uc *UserController) GetUser(w http.ResponseWriter, r *http.Request) { + users, err := usecase.RequestGetUser(uc.gettingUserService) if err != nil { http.Error(w, http.StatusText(http.StatusInternalServerError), http.StatusInternalServerError) return diff --git a/app/adapter/http/server.go b/app/adapter/http/server.go index 0c45886..f8566bd 100644 --- a/app/adapter/http/server.go +++ b/app/adapter/http/server.go @@ -5,14 +5,24 @@ import ( "net/http" "github.com/gorilla/mux" + "github.com/ymktmk/golang-hexagonal-architecture/app/adapter/db" + "github.com/ymktmk/golang-hexagonal-architecture/app/adapter/impl/repository" + "github.com/ymktmk/golang-hexagonal-architecture/app/adapter/impl/service" "github.com/ymktmk/golang-hexagonal-architecture/app/adapter/http/controller" ) var Router *mux.Router func init() { + db, err := db.InitDB() + if err != nil { + log.Fatal(err) + } + gettingUserService := service.NewGettingUserService(repository.NewUserRepository(db)) + controller := controller.NewUserController(gettingUserService) + Router = mux.NewRouter().StrictSlash(true) - Router.HandleFunc("/users", controller.ControlGetUser).Methods("GET") + Router.HandleFunc("/users", controller.GetUser).Methods("GET") } func Serve() { diff --git a/app/adapter/impl/service/getting_user_service_impl.go b/app/adapter/impl/service/getting_user_service_impl.go index cc808f4..a4f9b7c 100644 --- a/app/adapter/impl/service/getting_user_service_impl.go +++ b/app/adapter/impl/service/getting_user_service_impl.go @@ -8,15 +8,15 @@ import ( "github.com/ymktmk/golang-hexagonal-architecture/app/domain/service" ) -type gettingUserServiceImpl struct { +type GettingUserServiceImpl struct { userRepository repository.UserRepository } func NewGettingUserService(ur repository.UserRepository) service.GettingUserService { - return &gettingUserServiceImpl{userRepository: ur} + return &GettingUserServiceImpl{userRepository: ur} } -func (s *gettingUserServiceImpl) Index() ([]model.User, error) { +func (s *GettingUserServiceImpl) Index() ([]model.User, error) { users, err := s.userRepository.FindAll() if err != nil { log.Println(err) From 6ca479dbe3dea571679c2450ba9d6350c2646d2f Mon Sep 17 00:00:00 2001 From: ymktmk <73768462+ymktmk@users.noreply.github.com> Date: Mon, 17 Apr 2023 01:29:48 +0900 Subject: [PATCH 2/3] [fix] --- app/adapter/impl/service/getting_user_service_impl.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/adapter/impl/service/getting_user_service_impl.go b/app/adapter/impl/service/getting_user_service_impl.go index a4f9b7c..cc808f4 100644 --- a/app/adapter/impl/service/getting_user_service_impl.go +++ b/app/adapter/impl/service/getting_user_service_impl.go @@ -8,15 +8,15 @@ import ( "github.com/ymktmk/golang-hexagonal-architecture/app/domain/service" ) -type GettingUserServiceImpl struct { +type gettingUserServiceImpl struct { userRepository repository.UserRepository } func NewGettingUserService(ur repository.UserRepository) service.GettingUserService { - return &GettingUserServiceImpl{userRepository: ur} + return &gettingUserServiceImpl{userRepository: ur} } -func (s *GettingUserServiceImpl) Index() ([]model.User, error) { +func (s *gettingUserServiceImpl) Index() ([]model.User, error) { users, err := s.userRepository.FindAll() if err != nil { log.Println(err) From d8c4ff6408002eefcf43edcc74a031776fa9c524 Mon Sep 17 00:00:00 2001 From: ymktmk <73768462+ymktmk@users.noreply.github.com> Date: Mon, 17 Apr 2023 01:49:25 +0900 Subject: [PATCH 3/3] [fix] name --- app/adapter/http/controller/user_controller.go | 8 ++++---- app/adapter/http/server.go | 6 +++--- ...{getting_user_service_impl.go => user_service_impl.go} | 8 ++++---- app/application/usecase/request_get_users.go | 4 ++-- .../service/{getting_user_service.go => user_service.go} | 2 +- 5 files changed, 14 insertions(+), 14 deletions(-) rename app/adapter/impl/service/{getting_user_service_impl.go => user_service_impl.go} (64%) rename app/domain/service/{getting_user_service.go => user_service.go} (77%) diff --git a/app/adapter/http/controller/user_controller.go b/app/adapter/http/controller/user_controller.go index e5ff7d6..319c907 100644 --- a/app/adapter/http/controller/user_controller.go +++ b/app/adapter/http/controller/user_controller.go @@ -10,15 +10,15 @@ import ( ) type UserController struct { - gettingUserService service.GettingUserService + userService service.UserService } -func NewUserController(gettingUserService service.GettingUserService) *UserController { - return &UserController{gettingUserService: gettingUserService} +func NewUserController(userService service.UserService) *UserController { + return &UserController{userService: userService} } func (uc *UserController) GetUser(w http.ResponseWriter, r *http.Request) { - users, err := usecase.RequestGetUser(uc.gettingUserService) + users, err := usecase.RequestGetUser(uc.userService) if err != nil { http.Error(w, http.StatusText(http.StatusInternalServerError), http.StatusInternalServerError) return diff --git a/app/adapter/http/server.go b/app/adapter/http/server.go index f8566bd..675c776 100644 --- a/app/adapter/http/server.go +++ b/app/adapter/http/server.go @@ -18,11 +18,11 @@ func init() { if err != nil { log.Fatal(err) } - gettingUserService := service.NewGettingUserService(repository.NewUserRepository(db)) - controller := controller.NewUserController(gettingUserService) + userService := service.NewUserService(repository.NewUserRepository(db)) + userController := controller.NewUserController(userService) Router = mux.NewRouter().StrictSlash(true) - Router.HandleFunc("/users", controller.GetUser).Methods("GET") + Router.HandleFunc("/users", userController.GetUser).Methods("GET") } func Serve() { diff --git a/app/adapter/impl/service/getting_user_service_impl.go b/app/adapter/impl/service/user_service_impl.go similarity index 64% rename from app/adapter/impl/service/getting_user_service_impl.go rename to app/adapter/impl/service/user_service_impl.go index cc808f4..ca3df40 100644 --- a/app/adapter/impl/service/getting_user_service_impl.go +++ b/app/adapter/impl/service/user_service_impl.go @@ -8,15 +8,15 @@ import ( "github.com/ymktmk/golang-hexagonal-architecture/app/domain/service" ) -type gettingUserServiceImpl struct { +type userServiceImpl struct { userRepository repository.UserRepository } -func NewGettingUserService(ur repository.UserRepository) service.GettingUserService { - return &gettingUserServiceImpl{userRepository: ur} +func NewUserService(ur repository.UserRepository) service.UserService { + return &userServiceImpl{userRepository: ur} } -func (s *gettingUserServiceImpl) Index() ([]model.User, error) { +func (s *userServiceImpl) Index() ([]model.User, error) { users, err := s.userRepository.FindAll() if err != nil { log.Println(err) diff --git a/app/application/usecase/request_get_users.go b/app/application/usecase/request_get_users.go index 6951249..8ef52a4 100644 --- a/app/application/usecase/request_get_users.go +++ b/app/application/usecase/request_get_users.go @@ -7,8 +7,8 @@ import ( "github.com/ymktmk/golang-hexagonal-architecture/app/domain/service" ) -func RequestGetUser(gettingUserService service.GettingUserService) ([]model.User, error) { - users, err := gettingUserService.Index() +func RequestGetUser(userService service.UserService) ([]model.User, error) { + users, err := userService.Index() if err != nil { log.Println(err) return []model.User{}, err diff --git a/app/domain/service/getting_user_service.go b/app/domain/service/user_service.go similarity index 77% rename from app/domain/service/getting_user_service.go rename to app/domain/service/user_service.go index ac18046..6b2a6b1 100644 --- a/app/domain/service/getting_user_service.go +++ b/app/domain/service/user_service.go @@ -2,6 +2,6 @@ package service import "github.com/ymktmk/golang-hexagonal-architecture/app/domain/model" -type GettingUserService interface { +type UserService interface { Index() ([]model.User, error) }