diff --git a/handler.go b/handler.go
index 2e9790e..60660cc 100644
--- a/handler.go
+++ b/handler.go
@@ -57,28 +57,49 @@ func (h *handler) addOrder(w http.ResponseWriter, r *http.Request) {
fmt.Println("can't parse order id: ", err)
return
}
- n.Name = r.FormValue("name")
- n.Surname = r.FormValue("surname")
- n.Phone = r.FormValue("phone")
- n.Location = r.FormValue("location")
+
+ n.Name = strings.TrimSpace(r.FormValue("name"))
+
+ n.Surname = strings.TrimSpace(r.FormValue("surname"))
+
+ n.Phone = strings.TrimSpace(r.FormValue("phone"))
+
+ n.Location = strings.TrimSpace(r.FormValue("location"))
+
n.Date, err = time.Parse("2006-01-02", r.FormValue("date"))
if err != nil {
w.WriteHeader(http.StatusBadRequest)
fmt.Println("can't parse order date: ", err)
return
}
+
n.Paid, err = strconv.Atoi(r.FormValue("paid"))
if err != nil {
w.WriteHeader(http.StatusBadRequest)
fmt.Println("can't parse order paid: ", err)
return
}
- n.Cakes = make([]cake, 0)
- h.s.saveOrder(n)
+ n.Accepted = time.Now()
+
+ n.Cakes = make([]cake, 0)
+ for _, e := range h.s.getCakes() {
+ value := r.FormValue(fmt.Sprintf("cake[%d]", e.ID))
+ if value == "" {
+ continue
+ }
+ amount, err := strconv.Atoi(value)
+ e.Amount = amount
+ if err != nil {
+ continue
+ }
+ n.Cakes = append(n.Cakes, e)
+ }
fmt.Println("parsed order: ", n)
+ h.s.saveOrder(n)
+
w.Header().Set("content-type", "text/html")
w.WriteHeader(http.StatusAccepted)
w.Write([]byte("accepted back"))
diff --git a/index.html b/index.html
index 82634b4..d47cabb 100644
--- a/index.html
+++ b/index.html
@@ -5,11 +5,35 @@
New
-
+
+
+ |
+ Name |
+ Surname |
+ Phone |
+ Location |
+ Date |
+ Accepted |
+ Paid |
+ Cakes |
+
{{range .}}
- -
- {{.Name}} {{.Surname}}
-
+
+ | edit |
+ {{.Name}} |
+ {{.Surname}} |
+ {{.Phone}} |
+ {{.Location}} |
+ {{.Date.Format "2006-01-02"}} |
+ {{.Accepted.Format "2006-01-02"}} |
+ {{.Paid}} |
+
+ {{range .Cakes}}
+ {{.Name}}
+ {{.Amount}}
+ {{end}}
+ |
+
{{end}}
-
+
\ No newline at end of file
diff --git a/main.go b/main.go
index 2d30540..3aebaf2 100644
--- a/main.go
+++ b/main.go
@@ -18,12 +18,15 @@ func main() {
h.tmpl = templates
h.s = NewStore()
- h.s.saveCake(cake{"Sernik", -1, 120, 0})
- h.s.saveCake(cake{"Malinowa chmurka", -1, 120, 0})
+ h.s.saveCake(cake{"Sernik ulubiony", -1, 65, 0})
+ h.s.saveCake(cake{"Malinowa chmurka", -1, 150, 0})
+ h.s.saveCake(cake{"Mako sernik", -1, 150, 0})
+ h.s.saveCake(cake{"Rolada makowa", -1, 80, 0})
+ h.s.saveCake(cake{"Wieniec bezowy", -1, 120, 0})
- h.s.saveOrder(order{-1, "Albert", "Camus", "123456789", "Kartuzy", time.Now().AddDate(0, 0, 7), 0, nil})
- h.s.saveOrder(order{-1, "George", "Orwell", "", "Kartuzy", time.Now().AddDate(0, 1, 0), 0, nil})
- h.s.saveOrder(order{-1, "Karl", "Marx", "0700", "Somonino", time.Now(), 0, nil})
+ h.s.saveOrder(order{-1, "Albert", "Camus", "123456789", "Kartuzy", time.Now().AddDate(0, 0, 7), time.Now(), 0, nil})
+ h.s.saveOrder(order{-1, "George", "Orwell", "", "Kartuzy", time.Now().AddDate(0, 1, 0), time.Now(), 0, nil})
+ h.s.saveOrder(order{-1, "Karl", "Marx", "0700", "Somonino", time.Now(), time.Now(), 0, nil})
http.HandleFunc("GET /order/", logger(h.form))
http.HandleFunc("GET /", logger(h.index))
diff --git a/middleware.go b/middleware.go
index 0fcd6cf..97c16bc 100644
--- a/middleware.go
+++ b/middleware.go
@@ -9,9 +9,9 @@ import (
func logger(in http.HandlerFunc) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
start := time.Now()
- log := fmt.Sprint(r.Method, " ", r.URL.String())
+ //log := fmt.Sprint(r.Method, " ", r.URL.String())
+ fmt.Println(r.Method, r.URL.String())
in(w, r)
- log += fmt.Sprint(" ", time.Since(start))
- fmt.Println(log)
+ fmt.Println(r.Method, "finished in", time.Since(start))
}
}
diff --git a/model.go b/model.go
index 58cc687..92d911c 100644
--- a/model.go
+++ b/model.go
@@ -16,6 +16,7 @@ type order struct {
Phone string
Location string
Date time.Time
+ Accepted time.Time
Paid int // increments of 0.01
Cakes []cake
}