feat: translation middleware
This commit is contained in:
@@ -0,0 +1,24 @@
|
||||
package handlehome
|
||||
|
||||
import (
|
||||
"net/http"
|
||||
|
||||
"git.schreifuchs.ch/schreifuchs/schreifuchs.ch/internal/components/page"
|
||||
"git.schreifuchs.ch/schreifuchs/schreifuchs.ch/web/layouts"
|
||||
"git.schreifuchs.ch/schreifuchs/schreifuchs.ch/web/pages"
|
||||
)
|
||||
|
||||
func (h *Handler) home(w http.ResponseWriter, r *http.Request) {
|
||||
pageHeaders, err := h.src.GetPages()
|
||||
if err != nil {
|
||||
w.WriteHeader(http.StatusInternalServerError)
|
||||
return
|
||||
}
|
||||
|
||||
layouts.Render(r.Context(), w, r, pages.Home(pageHeaders))
|
||||
}
|
||||
|
||||
func (h *Handler) page(w http.ResponseWriter, r *http.Request) {
|
||||
uid := r.PathValue("uid")
|
||||
layouts.Render(r.Context(), w, r, pages.ContentPage(page.Page{Title: uid}))
|
||||
}
|
||||
@@ -1,12 +0,0 @@
|
||||
package handler
|
||||
|
||||
import (
|
||||
"net/http"
|
||||
|
||||
"github.com/a-h/templ"
|
||||
"git.schreifuchs.ch/schreifuchs/schreifuchs.ch/web/pages"
|
||||
)
|
||||
|
||||
func Home() http.Handler {
|
||||
return templ.Handler(pages.Index())
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
package handlehome
|
||||
|
||||
import (
|
||||
"net/http"
|
||||
|
||||
"git.schreifuchs.ch/schreifuchs/schreifuchs.ch/internal/components/page"
|
||||
)
|
||||
|
||||
type Handler struct {
|
||||
src pageService
|
||||
}
|
||||
|
||||
func New(mux *http.ServeMux, srv pageService) *Handler {
|
||||
h := &Handler{
|
||||
src: srv,
|
||||
}
|
||||
|
||||
mux.HandleFunc("GET /{$}", h.home)
|
||||
mux.HandleFunc("GET /{uid}", h.page)
|
||||
return h
|
||||
}
|
||||
|
||||
type pageService interface {
|
||||
GetPages() ([]page.Page, error)
|
||||
}
|
||||
@@ -1,12 +0,0 @@
|
||||
package handler
|
||||
|
||||
import (
|
||||
"net/http"
|
||||
|
||||
"github.com/a-h/templ"
|
||||
"git.schreifuchs.ch/schreifuchs/schreifuchs.ch/web/pages"
|
||||
)
|
||||
|
||||
func Home() http.Handler {
|
||||
return templ.Handler(pages.Index())
|
||||
}
|
||||
Reference in New Issue
Block a user