From 6711a4055f4a700cf07228e51a88936460d5128b Mon Sep 17 00:00:00 2001 From: Elton Minetto Date: Tue, 29 Sep 2020 22:07:32 -0300 Subject: [PATCH] feat: improvements in structures --- api/handler/{ => book}/book.go | 6 +++--- api/handler/{ => book}/book_test.go | 10 +++++----- api/handler/{ => loan}/loan.go | 6 +++--- api/handler/{ => loan}/loan_test.go | 6 +++--- api/handler/{ => user}/user.go | 6 +++--- api/handler/{ => user}/user_test.go | 10 +++++----- api/main.go | 16 +++++++++------- 7 files changed, 31 insertions(+), 29 deletions(-) rename api/handler/{ => book}/book.go (97%) rename api/handler/{ => book}/book_test.go (96%) rename api/handler/{ => loan}/loan.go (94%) rename api/handler/{ => loan}/loan_test.go (97%) rename api/handler/{ => user}/user.go (97%) rename api/handler/{ => user}/user_test.go (96%) diff --git a/api/handler/book.go b/api/handler/book/book.go similarity index 97% rename from api/handler/book.go rename to api/handler/book/book.go index 7cad6f5..cdf181a 100644 --- a/api/handler/book.go +++ b/api/handler/book/book.go @@ -1,4 +1,4 @@ -package handler +package book import ( "encoding/json" @@ -162,8 +162,8 @@ func deleteBook(service book.UseCase) http.Handler { }) } -//MakeBookHandlers make url handlers -func MakeBookHandlers(r *mux.Router, n negroni.Negroni, service book.UseCase) { +//MakeHandlers make url handlers +func MakeHandlers(r *mux.Router, n negroni.Negroni, service book.UseCase) { r.Handle("/v1/book", n.With( negroni.Wrap(listBooks(service)), )).Methods("GET", "OPTIONS").Name("listBooks") diff --git a/api/handler/book_test.go b/api/handler/book/book_test.go similarity index 96% rename from api/handler/book_test.go rename to api/handler/book/book_test.go index 7c51eab..5be49f7 100644 --- a/api/handler/book_test.go +++ b/api/handler/book/book_test.go @@ -1,4 +1,4 @@ -package handler +package book import ( "encoding/json" @@ -24,7 +24,7 @@ func Test_listBooks(t *testing.T) { manager := mock.NewMockUseCase(controller) r := mux.NewRouter() n := negroni.New() - MakeBookHandlers(r, *n, manager) + MakeHandlers(r, *n, manager) path, err := r.GetRoute("listBooks").GetPathTemplate() assert.Nil(t, err) assert.Equal(t, "/v1/book", path) @@ -74,7 +74,7 @@ func Test_createBook(t *testing.T) { manager := mock.NewMockUseCase(controller) r := mux.NewRouter() n := negroni.New() - MakeBookHandlers(r, *n, manager) + MakeHandlers(r, *n, manager) path, err := r.GetRoute("createBook").GetPathTemplate() assert.Nil(t, err) assert.Equal(t, "/v1/book", path) @@ -106,7 +106,7 @@ func Test_getBook(t *testing.T) { manager := mock.NewMockUseCase(controller) r := mux.NewRouter() n := negroni.New() - MakeBookHandlers(r, *n, manager) + MakeHandlers(r, *n, manager) path, err := r.GetRoute("getBook").GetPathTemplate() assert.Nil(t, err) assert.Equal(t, "/v1/book/{id}", path) @@ -133,7 +133,7 @@ func Test_deleteBook(t *testing.T) { manager := mock.NewMockUseCase(controller) r := mux.NewRouter() n := negroni.New() - MakeBookHandlers(r, *n, manager) + MakeHandlers(r, *n, manager) path, err := r.GetRoute("deleteBook").GetPathTemplate() assert.Nil(t, err) assert.Equal(t, "/v1/book/{id}", path) diff --git a/api/handler/loan.go b/api/handler/loan/loan.go similarity index 94% rename from api/handler/loan.go rename to api/handler/loan/loan.go index 8e655a3..a621b9c 100644 --- a/api/handler/loan.go +++ b/api/handler/loan/loan.go @@ -1,4 +1,4 @@ -package handler +package loan import ( "fmt" @@ -96,8 +96,8 @@ func returnBook(bookService book.UseCase, loanService loan.UseCase) http.Handler }) } -//MakeLoanHandlers make url handlers -func MakeLoanHandlers(r *mux.Router, n negroni.Negroni, bookService book.UseCase, userService user.UseCase, loanService loan.UseCase) { +//MakeHandlers make url handlers +func MakeHandlers(r *mux.Router, n negroni.Negroni, bookService book.UseCase, userService user.UseCase, loanService loan.UseCase) { r.Handle("/v1/loan/borrow/{book_id}/{user_id}", n.With( negroni.Wrap(borrowBook(bookService, userService, loanService)), )).Methods("GET", "OPTIONS").Name("borrowBook") diff --git a/api/handler/loan_test.go b/api/handler/loan/loan_test.go similarity index 97% rename from api/handler/loan_test.go rename to api/handler/loan/loan_test.go index 82b838a..b1d7408 100644 --- a/api/handler/loan_test.go +++ b/api/handler/loan/loan_test.go @@ -1,4 +1,4 @@ -package handler +package loan import ( "fmt" @@ -26,7 +26,7 @@ func Test_borrowBook(t *testing.T) { lMock := lmock.NewMockUseCase(controller) r := mux.NewRouter() n := negroni.New() - MakeLoanHandlers(r, *n, bMock, uMock, lMock) + MakeHandlers(r, *n, bMock, uMock, lMock) path, err := r.GetRoute("borrowBook").GetPathTemplate() assert.Nil(t, err) assert.Equal(t, "/v1/loan/borrow/{book_id}/{user_id}", path) @@ -75,7 +75,7 @@ func Test_returnBook(t *testing.T) { lMock := lmock.NewMockUseCase(controller) r := mux.NewRouter() n := negroni.New() - MakeLoanHandlers(r, *n, bMock, uMock, lMock) + MakeHandlers(r, *n, bMock, uMock, lMock) path, err := r.GetRoute("returnBook").GetPathTemplate() assert.Nil(t, err) assert.Equal(t, "/v1/loan/return/{book_id}", path) diff --git a/api/handler/user.go b/api/handler/user/user.go similarity index 97% rename from api/handler/user.go rename to api/handler/user/user.go index f0945c8..1472e94 100644 --- a/api/handler/user.go +++ b/api/handler/user/user.go @@ -1,4 +1,4 @@ -package handler +package user import ( "encoding/json" @@ -162,8 +162,8 @@ func deleteUser(service user.UseCase) http.Handler { }) } -//MakeUserHandlers make url handlers -func MakeUserHandlers(r *mux.Router, n negroni.Negroni, service user.UseCase) { +//MakeHandlers make url handlers +func MakeHandlers(r *mux.Router, n negroni.Negroni, service user.UseCase) { r.Handle("/v1/user", n.With( negroni.Wrap(listUsers(service)), )).Methods("GET", "OPTIONS").Name("listUsers") diff --git a/api/handler/user_test.go b/api/handler/user/user_test.go similarity index 96% rename from api/handler/user_test.go rename to api/handler/user/user_test.go index d3d045f..9f60833 100644 --- a/api/handler/user_test.go +++ b/api/handler/user/user_test.go @@ -1,4 +1,4 @@ -package handler +package user import ( "encoding/json" @@ -24,7 +24,7 @@ func Test_listUsers(t *testing.T) { m := mock.NewMockUseCase(controller) r := mux.NewRouter() n := negroni.New() - MakeUserHandlers(r, *n, m) + MakeHandlers(r, *n, m) path, err := r.GetRoute("listUsers").GetPathTemplate() assert.Nil(t, err) assert.Equal(t, "/v1/user", path) @@ -74,7 +74,7 @@ func Test_createUser(t *testing.T) { m := mock.NewMockUseCase(controller) r := mux.NewRouter() n := negroni.New() - MakeUserHandlers(r, *n, m) + MakeHandlers(r, *n, m) path, err := r.GetRoute("createUser").GetPathTemplate() assert.Nil(t, err) assert.Equal(t, "/v1/user", path) @@ -107,7 +107,7 @@ func Test_getUser(t *testing.T) { m := mock.NewMockUseCase(controller) r := mux.NewRouter() n := negroni.New() - MakeUserHandlers(r, *n, m) + MakeHandlers(r, *n, m) path, err := r.GetRoute("getUser").GetPathTemplate() assert.Nil(t, err) assert.Equal(t, "/v1/user/{id}", path) @@ -134,7 +134,7 @@ func Test_deleteUser(t *testing.T) { m := mock.NewMockUseCase(controller) r := mux.NewRouter() n := negroni.New() - MakeUserHandlers(r, *n, m) + MakeHandlers(r, *n, m) path, err := r.GetRoute("deleteUser").GetPathTemplate() assert.Nil(t, err) assert.Equal(t, "/v1/user/{id}", path) diff --git a/api/main.go b/api/main.go index b659bd0..47f80df 100644 --- a/api/main.go +++ b/api/main.go @@ -21,7 +21,9 @@ import ( "github.com/prometheus/client_golang/prometheus/promhttp" "github.com/codegangsta/negroni" - "github.com/eminetto/clean-architecture-go-v2/api/handler" + bhandler "github.com/eminetto/clean-architecture-go-v2/api/handler/book" + lhandler "github.com/eminetto/clean-architecture-go-v2/api/handler/loan" + uhandler "github.com/eminetto/clean-architecture-go-v2/api/handler/user" "github.com/eminetto/clean-architecture-go-v2/api/middleware" "github.com/eminetto/clean-architecture-go-v2/config" "github.com/eminetto/clean-architecture-go-v2/pkg/metric" @@ -40,12 +42,12 @@ func main() { defer db.Close() bookRepo := brepo.NewMySQLRepository(db) - bookManager := book.NewService(bookRepo) + bookService := book.NewService(bookRepo) userRepo := urepo.NewMySQLRepoRepository(db) - userManager := user.NewService(userRepo, password.NewService()) + userService := user.NewService(userRepo, password.NewService()) - loanUseCase := loan.NewService(userManager, bookManager) + loanUseCase := loan.NewService(userService, bookService) metricService, err := metric.NewPrometheusService() if err != nil { @@ -59,13 +61,13 @@ func main() { negroni.NewLogger(), ) //book - handler.MakeBookHandlers(r, *n, bookManager) + bhandler.MakeHandlers(r, *n, bookService) //user - handler.MakeUserHandlers(r, *n, userManager) + uhandler.MakeHandlers(r, *n, userService) //loan - handler.MakeLoanHandlers(r, *n, bookManager, userManager, loanUseCase) + lhandler.MakeHandlers(r, *n, bookService, userService, loanUseCase) http.Handle("/", r) http.Handle("/metrics", promhttp.Handler())