Refactor server: use render func for templates

This commit is contained in:
bronku 2025-03-22 23:46:33 +01:00
parent ca4e448f82
commit a7bd1478bf
6 changed files with 60 additions and 39 deletions

View file

@ -1,57 +1,44 @@
package server
import (
"fmt"
"net/http"
"strconv"
"strings"
"time"
"github.com/Bronku/iroon/store"
)
func (h *Server) index(w http.ResponseWriter, r *http.Request) {
w.Header().Set("content-type", "text/html")
orders, err := h.s.GetOrders()
if err != nil {
fmt.Fprint(w, "server side error getting orders: ", err)
return
}
err = h.tmpl.ExecuteTemplate(w, "index.html", orders)
if err != nil {
fmt.Println("error executing the template: ", err)
}
func (h *Server) index(r *http.Request) (any, error) {
return h.s.GetOrders()
}
func (h *Server) getOrder(w http.ResponseWriter, r *http.Request) {
url := strings.Split(r.URL.String(), "/")
o := store.Order{
ID: -1,
Date: time.Now(),
}
id, err := strconv.Atoi(url[2])
if err == nil {
newOrder, err := h.s.GetOrder(id)
if err == nil {
o = newOrder
}
}
func (h *Server) order(r *http.Request) (any, error) {
type formData struct {
Order store.Order
Catalogue []store.Cake
}
var err error
var data formData
cakes, err := h.s.GetCakes()
data.Catalogue, err = h.s.GetCakes()
if err != nil {
fmt.Fprint(w, "server side error getting available cakes: ", err)
return
return nil, err
}
data := formData{o, cakes}
//fmt.Println(data)
w.Header().Set("content-type", "text/html")
err = h.tmpl.ExecuteTemplate(w, "order.html", data)
if err != nil {
fmt.Println("error executing the template: ", err)
url := strings.Split(r.URL.String(), "/")
if len(url) < 3 || url[2] == "" {
return data, nil
}
id, err := strconv.Atoi(url[2])
if err != nil {
return nil, err
}
data.Order, err = h.s.GetOrder(id)
if err != nil {
return nil, err
}
return data, nil
}