small improvements

This commit is contained in:
bronku 2026-06-11 09:10:27 +02:00
parent bb32802324
commit 5f2d6f00bc
10 changed files with 117 additions and 178 deletions

View file

@ -1,9 +0,0 @@
package server
import (
"net/http"
"github.com/a-h/templ"
)
type fetcher func(r *http.Request) (templ.Component, int, error)

View file

@ -8,6 +8,7 @@ import (
"github.com/a-h/templ"
"git.bronku.xyz/bronku/cake-order-tracker/config"
"git.bronku.xyz/bronku/cake-order-tracker/models"
"git.bronku.xyz/bronku/cake-order-tracker/server/templates"
)
@ -26,15 +27,15 @@ func (h *Server) orders(_ *http.Request) (templ.Component, int, error) {
y, m, _ = time.Now().Date()
first, last := monthInterval(y, m)
orders, err := h.s.GetOrders(first, last)
return templates.OrdersPage(first.Format("2006-01-02"), last.Format("2006-01-02"), orders), http.StatusOK, err
return templates.OrdersPage(first.Format(config.DateFormat), last.Format(config.DateFormat), orders), http.StatusOK, err
}
func (h *Server) ordersSearch(r *http.Request) (templ.Component, int, error) {
from, err := time.Parse("2006-01-02", r.URL.Query().Get("from"))
from, err := time.Parse(config.DateFormat, r.URL.Query().Get("from"))
if err != nil {
from = time.Time{}
}
to, err := time.Parse("2006-01-02", r.URL.Query().Get("to"))
to, err := time.Parse(config.DateFormat, r.URL.Query().Get("to"))
if err != nil {
to = time.Time{}
}
@ -48,7 +49,7 @@ func (h *Server) cakes(_ *http.Request) (templ.Component, int, error) {
}
func (h *Server) cake(r *http.Request) (templ.Component, int, error) {
url := strings.Split(r.URL.String(), "/")
url := strings.Split(r.URL.Path, "/")
if len(url) < 3 || url[2] == "" {
return templates.CakePage(models.Cake{}), http.StatusOK, nil
}
@ -73,7 +74,7 @@ func (h *Server) order(r *http.Request) (templ.Component, int, error) {
return nil, http.StatusInternalServerError, err
}
url := strings.Split(r.URL.String(), "/")
url := strings.Split(r.URL.Path, "/")
if len(url) < 3 || url[2] == "" {
return templates.OrderPage(models.Order{Date: time.Now()}, catalogue), http.StatusOK, nil
}

View file

@ -1,9 +0,0 @@
package server
import "net/http"
func (h *Server) redirect(path string, code int) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
http.Redirect(w, r, path, code)
}
}

View file

@ -1,7 +1,6 @@
package server
import (
"fmt"
"net/http"
"strconv"
"strings"
@ -9,6 +8,7 @@ import (
"github.com/a-h/templ"
"git.bronku.xyz/bronku/cake-order-tracker/config"
"git.bronku.xyz/bronku/cake-order-tracker/models"
"git.bronku.xyz/bronku/cake-order-tracker/server/templates"
)
@ -30,7 +30,6 @@ func (h *Server) postCake(r *http.Request) (templ.Component, int, error) {
return nil, http.StatusBadRequest, err
}
n.ID, err = h.s.SaveCake(n)
fmt.Println(err)
return templates.Confirmation("Potwierdzone", n.ID), http.StatusAccepted, err
}
@ -41,7 +40,6 @@ func (h *Server) postOrder(r *http.Request) (templ.Component, int, error) {
}
err = r.ParseForm()
fmt.Println(r.PostForm)
if err != nil {
return nil, http.StatusBadRequest, err
}
@ -55,14 +53,14 @@ func (h *Server) postOrder(r *http.Request) (templ.Component, int, error) {
if err != nil {
return nil, http.StatusBadRequest, err
}
n.Date, err = time.Parse("2006-01-02", r.FormValue("date"))
n.Date, err = time.Parse(config.DateFormat, r.FormValue("date"))
if err != nil {
return nil, http.StatusBadRequest, err
}
n.Cakes = make([]models.Cake, 0)
for _, e := range cakes {
e.Amount, err = strconv.Atoi(r.FormValue(fmt.Sprintf("cake[%d]", e.ID)))
e.Amount, err = strconv.Atoi(r.FormValue("cake[" + strconv.Itoa(e.ID) + "]"))
if err != nil {
continue
}
@ -77,6 +75,5 @@ func (h *Server) postOrder(r *http.Request) (templ.Component, int, error) {
n.Status = strings.TrimSpace(r.FormValue("status"))
n.ID, err = h.s.SaveOrder(n)
fmt.Println(n)
return templates.Confirmation("Potwierdzone", n.ID), http.StatusAccepted, err
}

View file

@ -4,52 +4,44 @@ import (
"embed"
"net/http"
"github.com/a-h/templ"
"git.bronku.xyz/bronku/cake-order-tracker/store"
)
type Server struct {
s *store.Store
routes map[string]route
http.Handler
}
type fetcher func(r *http.Request) (templ.Component, int, error)
type route struct {
function fetcher
type Server struct {
s *store.Store
http.Handler
}
//go:embed static/*
var static embed.FS
func (h *Server) loadHandler() {
mux := http.NewServeMux()
for i, e := range h.routes {
mux.HandleFunc(i, h.render(e.function))
func redirect(path string, code int) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
http.Redirect(w, r, path, code)
}
mux.HandleFunc("GET /", h.redirect("/orders", http.StatusSeeOther))
fs := http.FileServerFS(static)
mux.Handle("GET /static/", fs)
h.Handler = mux
}
func New(store *store.Store) *Server {
var server Server
server.routes = map[string]route{
"GET /order/": {server.order},
"GET /orders": {server.orders},
"GET /orders/search/": {server.ordersSearch},
"GET /cake/": {server.cake},
"GET /cakes": {server.cakes},
"POST /order/": {server.postOrder},
"POST /cake/": {server.postCake},
}
server.s = store
server.loadHandler()
mux := http.NewServeMux()
mux.HandleFunc("GET /", redirect("/orders", http.StatusSeeOther))
mux.HandleFunc("GET /order/", server.render(server.order))
mux.HandleFunc("GET /orders", server.render(server.orders))
mux.HandleFunc("GET /orders/search/", server.render(server.ordersSearch))
mux.HandleFunc("GET /cake/", server.render(server.cake))
mux.HandleFunc("GET /cakes", server.render(server.cakes))
mux.HandleFunc("POST /order/", server.render(server.postOrder))
mux.HandleFunc("POST /cake/", server.render(server.postCake))
fs := http.FileServerFS(static)
mux.Handle("GET /static/", fs)
server.Handler = mux
return &server
}