diff --git a/internal/models/data.go b/internal/models/data.go index d3f0468..73968f7 100644 --- a/internal/models/data.go +++ b/internal/models/data.go @@ -1,5 +1,7 @@ package models +import "time" + type Cake struct { Name string ID int @@ -8,3 +10,16 @@ type Cake struct { Category string Availability string } + +type Order struct { + ID int + Name string + Surname string + Phone string + Location string + Date time.Time + Accepted time.Time + Status string + Paid int // increments of 0.01 + Cakes []Cake +} diff --git a/internal/server/get.go b/internal/server/get.go index 4085e30..f4d82b7 100644 --- a/internal/server/get.go +++ b/internal/server/get.go @@ -6,7 +6,6 @@ import ( "strings" "github.com/Bronku/iroon/internal/models" - "github.com/Bronku/iroon/internal/store" ) func (h *Server) index(r *http.Request) (any, int, error) { @@ -40,7 +39,7 @@ func (h *Server) cake(r *http.Request) (any, int, error) { func (h *Server) order(r *http.Request) (any, int, error) { type formData struct { - Order store.Order + Order models.Order Catalogue []models.Cake } var err error diff --git a/internal/server/post.go b/internal/server/post.go index b27aa13..3dfbfa1 100644 --- a/internal/server/post.go +++ b/internal/server/post.go @@ -8,7 +8,6 @@ import ( "time" "github.com/Bronku/iroon/internal/models" - "github.com/Bronku/iroon/internal/store" ) func (h *Server) postCake(r *http.Request) (any, int, error) { @@ -45,7 +44,7 @@ func (h *Server) postOrder(r *http.Request) (any, int, error) { return nil, http.StatusBadRequest, err } - var n store.Order + var n models.Order n.ID, err = strconv.Atoi(r.FormValue("id")) if err != nil { return nil, http.StatusBadRequest, err diff --git a/internal/store/order.go b/internal/store/order.go index ee7dbfd..0652d4e 100644 --- a/internal/store/order.go +++ b/internal/store/order.go @@ -8,21 +8,8 @@ import ( "github.com/Bronku/iroon/internal/models" ) -type Order struct { - ID int - Name string - Surname string - Phone string - Location string - Date time.Time - Accepted time.Time - Status string - Paid int // increments of 0.01 - Cakes []models.Cake -} - -func (s *Store) GetOrder(id int) (Order, error) { - var out Order +func (s *Store) GetOrder(id int) (models.Order, error) { + var out models.Order row, err := s.db.Query("select id, name, surname, phone, location, order_date, delivery_date, status, paid from customer_order where id = ?;", id) if err != nil { return out, err @@ -62,8 +49,8 @@ func (s *Store) GetOrder(id int) (Order, error) { return out, nil } -func (s *Store) GetOrders() ([]Order, error) { - var out []Order +func (s *Store) GetOrders() ([]models.Order, error) { + var out []models.Order rows, err := s.db.Query("select id, name, surname, phone, location, order_date, delivery_date, status, paid from customer_order;") if err != nil { return out, err @@ -71,7 +58,7 @@ func (s *Store) GetOrders() ([]Order, error) { defer rows.Close() for rows.Next() { - var o Order + var o models.Order var order_date, delivery_date string err = rows.Scan(&o.ID, &o.Name, &o.Surname, &o.Phone, &o.Location, &order_date, &delivery_date, &o.Status, &o.Paid) if err != nil { @@ -108,7 +95,7 @@ func (s *Store) GetOrders() ([]Order, error) { return out, nil } -func (s *Store) SaveOrder(newOrder Order) (int, error) { +func (s *Store) SaveOrder(newOrder models.Order) (int, error) { query := "insert into customer_order(name, surname, phone, location, order_date, delivery_date, status, paid) values (?, ?, ?, ?, ?, ?, ?, ?) returning id;" if newOrder.ID != 0 { query = "update customer_order set name = ?, surname = ?, phone = ?, location = ?, order_date = ?, delivery_date = ?, status = ?, paid = ? where id = " diff --git a/internal/store/store_test.go b/internal/store/store_test.go index fbdeb69..ce8a9dc 100644 --- a/internal/store/store_test.go +++ b/internal/store/store_test.go @@ -110,7 +110,7 @@ func TestStore(t *testing.T) { // create new order now := time.Now() - newOrder := Order{ + newOrder := models.Order{ Name: "John", Surname: "Doe", Phone: "123-456-7890", @@ -130,7 +130,7 @@ func TestStore(t *testing.T) { } // create another order - anotherOrder := Order{ + anotherOrder := models.Order{ Name: "Jane", Surname: "Doe", Phone: "123-456-7890", @@ -162,7 +162,7 @@ func TestStore(t *testing.T) { } // update non existing order - var updatedOrder Order + var updatedOrder models.Order updatedOrder.ID = 10 _, err = s.SaveOrder(updatedOrder) if err == nil {