diff --git a/app/adapter/http/controller/user_controller.go b/app/adapter/http/controller/user_controller.go index 6b8058e..319c907 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 { + userService service.UserService +} - db, err := db.InitDB() - if err != nil { - panic(err) - } +func NewUserController(userService service.UserService) *UserController { + return &UserController{userService: userService} +} - 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.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 0c45886..675c776 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) + } + userService := service.NewUserService(repository.NewUserRepository(db)) + userController := controller.NewUserController(userService) + Router = mux.NewRouter().StrictSlash(true) - Router.HandleFunc("/users", controller.ControlGetUser).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) }