From eef6c85fe3967e3867d119cbf9cab3e6041b2c1f Mon Sep 17 00:00:00 2001 From: Ruidy Date: Sat, 8 Jun 2024 12:27:05 +0200 Subject: [PATCH] add helper file --- internal/server/handle_auth.go | 6 +++--- internal/server/helper.go | 26 ++++++++++++++++++++++++++ internal/server/server.go | 14 -------------- internal/view/login.templ | 1 + 4 files changed, 30 insertions(+), 17 deletions(-) create mode 100644 internal/server/helper.go diff --git a/internal/server/handle_auth.go b/internal/server/handle_auth.go index 5b81e7e..c21baa1 100644 --- a/internal/server/handle_auth.go +++ b/internal/server/handle_auth.go @@ -6,6 +6,7 @@ import ( "github.com/gorilla/sessions" "github.com/labstack/echo-contrib/session" "github.com/labstack/echo/v4" + "github.com/rjNemo/rentease/internal/auth" "github.com/rjNemo/rentease/internal/view" ) @@ -34,14 +35,13 @@ func handleLogin(as *auth.Service) echo.HandlerFunc { } if !as.Authenticate(c.FormValue("email"), c.FormValue("password")) { - return c.Redirect(http.StatusTemporaryRedirect, routeLogin) + return hxRedirect(c, http.StatusTemporaryRedirect, routeLogin) } sess.Values["foo"] = "bar" if err := sess.Save(c.Request(), c.Response()); err != nil { return err } - c.Response().Header().Add("HX-Redirect", "/bookings") - return c.NoContent(200) + return hxRedirect(c, http.StatusOK, "/bookings") } } diff --git a/internal/server/helper.go b/internal/server/helper.go new file mode 100644 index 0000000..fe9be48 --- /dev/null +++ b/internal/server/helper.go @@ -0,0 +1,26 @@ +package server + +import ( + "context" + "log" + + "github.com/a-h/templ" + "github.com/labstack/echo/v4" +) + +func renderTempl(c echo.Context, status int, t templ.Component) error { + c.Response().Writer.WriteHeader(status) + + err := t.Render(context.Background(), c.Response().Writer) + if err != nil { + log.Printf("failed to render response template %s", err) + return err + } + + return nil +} + +func hxRedirect(c echo.Context, statusCode int, url string) error { + c.Response().Header().Add("HX-Redirect", url) + return c.NoContent(statusCode) +} diff --git a/internal/server/server.go b/internal/server/server.go index 5d82e56..33fa7a4 100644 --- a/internal/server/server.go +++ b/internal/server/server.go @@ -5,13 +5,11 @@ import ( "embed" "errors" "fmt" - "log" "net/http" "os" "os/signal" "time" - "github.com/a-h/templ" "github.com/getsentry/sentry-go" sentryecho "github.com/getsentry/sentry-go/echo" "github.com/gorilla/sessions" @@ -123,18 +121,6 @@ func (s Server) Start() { } } -func renderTempl(c echo.Context, status int, t templ.Component) error { - c.Response().Writer.WriteHeader(status) - - err := t.Render(context.Background(), c.Response().Writer) - if err != nil { - log.Printf("failed to render response template %s", err) - return err - } - - return nil -} - func NewRouter(fs embed.FS, debug bool, secret string, origins []string) *echo.Echo { e := echo.New() // config diff --git a/internal/view/login.templ b/internal/view/login.templ index fedb33a..fcb352c 100644 --- a/internal/view/login.templ +++ b/internal/view/login.templ @@ -16,6 +16,7 @@ templ Login() { + Registration is disabled. Please ask an admin to activate it.