From 2857507fae93dd3724f362ab9b95f015abb9c3c4 Mon Sep 17 00:00:00 2001 From: bronku Date: Wed, 26 Mar 2025 14:42:48 +0100 Subject: [PATCH] Add POST endpoint for creating new cakes --- internal/server/post.go | 22 +++++++++++++++++++++ internal/server/server.go | 1 + internal/server/templates/confirmation.html | 2 +- 3 files changed, 24 insertions(+), 1 deletion(-) diff --git a/internal/server/post.go b/internal/server/post.go index 1b33504..27cd08c 100644 --- a/internal/server/post.go +++ b/internal/server/post.go @@ -10,6 +10,28 @@ import ( "github.com/Bronku/iroon/internal/store" ) +func (h *Server) postCake(r *http.Request) (any, int, error) { + err := r.ParseForm() + if err != nil { + return nil, http.StatusInternalServerError, err + } + + var n store.Cake + n.ID, err = strconv.Atoi(r.FormValue("id")) + if err != nil { + return nil, http.StatusBadRequest, err + } + n.Name = r.FormValue("name") + n.Price, err = strconv.Atoi(r.FormValue("price")) + if err != nil { + return nil, http.StatusBadRequest, err + } + n.Category = r.FormValue("category") + n.Availability = r.FormValue("availibility") + fmt.Println(n) + return n, http.StatusAccepted, err +} + func (h *Server) postOrder(r *http.Request) (any, int, error) { cakes, err := h.s.GetCakes() if err != nil { diff --git a/internal/server/server.go b/internal/server/server.go index 49edc48..d4dc392 100644 --- a/internal/server/server.go +++ b/internal/server/server.go @@ -27,6 +27,7 @@ func (h *Server) loadHandler() { mux.HandleFunc("POST /order/", h.render(h.postOrder, "confirmation.html")) mux.HandleFunc("GET /cakes", h.render(h.cakes, "cakes.html")) mux.HandleFunc("GET /cake/", h.render(h.cake, "cake.html")) + mux.HandleFunc("POST /cake/", h.render(h.postCake, "confirmation.html")) h.Handler = mux } diff --git a/internal/server/templates/confirmation.html b/internal/server/templates/confirmation.html index 18232b2..df9812b 100644 --- a/internal/server/templates/confirmation.html +++ b/internal/server/templates/confirmation.html @@ -5,5 +5,5 @@ index
-

Order {{.ID}} for {{.Name}} {{.Surname}} confirmed

+

{{.ID}} confirmed