small improvements
This commit is contained in:
parent
bb32802324
commit
5f2d6f00bc
10 changed files with 117 additions and 178 deletions
|
|
@ -1,9 +0,0 @@
|
|||
package server
|
||||
|
||||
import (
|
||||
"net/http"
|
||||
|
||||
"github.com/a-h/templ"
|
||||
)
|
||||
|
||||
type fetcher func(r *http.Request) (templ.Component, int, error)
|
||||
|
|
@ -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
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
}
|
||||
}
|
||||
|
|
@ -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
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue