From 6f22e066ab31103d84fc8c82ff189c62c62e2317 Mon Sep 17 00:00:00 2001 From: Tim Wundenberg Date: Sun, 15 Sep 2024 11:38:51 +0200 Subject: [PATCH] fix: restructure handler.go #181 --- handler.go => handler/auth.go | 35 ++--------------------------------- handler/default.go | 28 ++++++++++++++++++++++++++++ handler/workout.go | 15 +++++++++++++++ main.go | 5 +++-- 4 files changed, 48 insertions(+), 35 deletions(-) rename handler.go => handler/auth.go (56%) create mode 100644 handler/default.go create mode 100644 handler/workout.go diff --git a/handler.go b/handler/auth.go similarity index 56% rename from handler.go rename to handler/auth.go index 91097c8..9bb57cb 100644 --- a/handler.go +++ b/handler/auth.go @@ -1,32 +1,13 @@ -package main +package handler import ( - "me-fit/middleware" "me-fit/service" - "me-fit/template/mail" - "me-fit/utils" "database/sql" "net/http" ) -func getHandler(db *sql.DB) http.Handler { - var router = http.NewServeMux() - - if utils.Environment == "dev" { - router.HandleFunc("/mail/", handleMails) - } - - router.HandleFunc("/", service.HandleIndexAnd404(db)) - - // Serve static files (CSS, JS and images) - router.Handle("/static/", http.StripPrefix("/static/", http.FileServer(http.Dir("./static/")))) - - router.Handle("/workout", auth(db, service.HandleWorkoutPage(db))) - router.Handle("POST /api/workout", auth(db, service.HandleWorkoutNewComp(db))) - router.Handle("GET /api/workout", auth(db, service.HandleWorkoutGetComp(db))) - router.Handle("DELETE /api/workout/{id}", auth(db, service.HandleWorkoutDeleteComp(db))) - +func handleAuth(db *sql.DB, router *http.ServeMux) { // Don't use auth middleware for these routes, as it makes redirecting very difficult, if the mail is not yet verified router.Handle("/auth/signin", service.HandleSignInPage(db)) router.Handle("/auth/signup", service.HandleSignUpPage(db)) @@ -43,16 +24,4 @@ func getHandler(db *sql.DB) http.Handler { router.Handle("/api/auth/change-password", service.HandleChangePasswordComp(db)) router.Handle("/api/auth/reset-password", service.HandleResetPasswordComp(db)) router.Handle("/api/auth/reset-password-actual", service.HandleActualResetPasswordComp(db)) - - return middleware.Logging(middleware.EnableCors(router)) -} - -func auth(db *sql.DB, h http.Handler) http.Handler { - return middleware.EnsureValidSession(db, h) -} - -func handleMails(w http.ResponseWriter, r *http.Request) { - if r.URL.Path == "/mail/register" { - mail.Register("test-code").Render(r.Context(), w) - } } diff --git a/handler/default.go b/handler/default.go new file mode 100644 index 0000000..e877d59 --- /dev/null +++ b/handler/default.go @@ -0,0 +1,28 @@ +package handler + +import ( + "me-fit/middleware" + "me-fit/service" + + "database/sql" + "net/http" +) + +func GetHandler(db *sql.DB) http.Handler { + var router = http.NewServeMux() + + router.HandleFunc("/", service.HandleIndexAnd404(db)) + + // Serve static files (CSS, JS and images) + router.Handle("/static/", http.StripPrefix("/static/", http.FileServer(http.Dir("./static/")))) + + handleWorkout(db, router) + + handleAuth(db, router) + + return middleware.Logging(middleware.EnableCors(router)) +} + +func auth(db *sql.DB, h http.Handler) http.Handler { + return middleware.EnsureValidSession(db, h) +} diff --git a/handler/workout.go b/handler/workout.go new file mode 100644 index 0000000..d78212c --- /dev/null +++ b/handler/workout.go @@ -0,0 +1,15 @@ +package handler + +import ( + "me-fit/service" + + "database/sql" + "net/http" +) + +func handleWorkout(db *sql.DB, router *http.ServeMux) { + router.Handle("/workout", auth(db, service.HandleWorkoutPage(db))) + router.Handle("POST /api/workout", auth(db, service.HandleWorkoutNewComp(db))) + router.Handle("GET /api/workout", auth(db, service.HandleWorkoutGetComp(db))) + router.Handle("DELETE /api/workout/{id}", auth(db, service.HandleWorkoutDeleteComp(db))) +} diff --git a/main.go b/main.go index 54e8d25..d67222a 100644 --- a/main.go +++ b/main.go @@ -1,10 +1,11 @@ package main import ( - "log" + "me-fit/handler" "me-fit/utils" "database/sql" + "log" "log/slog" "net/http" @@ -34,7 +35,7 @@ func main() { var server = http.Server{ Addr: ":8080", - Handler: getHandler(db), + Handler: handler.GetHandler(db), } slog.Info("Starting server on " + server.Addr)