fixed tests

This commit is contained in:
bronku 2025-03-31 21:09:38 +02:00
parent fea05c928c
commit e204255691
3 changed files with 43 additions and 22 deletions

View file

@ -12,7 +12,7 @@ import (
func (h *Server) orders(_ *http.Request) (any, int, error) {
//r.URL.Query().Get()
orders, err := h.s.GetTopOrders(time.Now(), time.Now().Add(time.Hour*24))
orders, err := h.s.GetFilteredOrder("", time.Now(), time.Now().Add(time.Hour*24))
data := struct {
Today string
Orders []models.Order

View file

@ -4,7 +4,6 @@ import (
"database/sql"
"errors"
"fmt"
"strconv"
"time"
"github.com/Bronku/iroon/internal/models"
@ -79,28 +78,19 @@ func (s *Store) GetOrder(id int) (models.Order, error) {
}
func (s *Store) GetFilteredOrder(filter string, from, to time.Time) ([]models.Order, error) {
if filter == "" {
return s.GetTopOrders(from, to)
}
start := from.Format("2006-01-02") + " 00:00"
end := to.Format("2006-01-02") + " 99:99"
if to.IsZero() {
end = "9999-99-99 99:99"
}
if filter == "" {
query := "select * from customer_order where status != 'done' and delivery_date >= ? and delivery_date <= ? ;"
return s.getOrdersFromQuery(query, start, end)
}
query := "select id, name, surname, phone, location, order_date, delivery_date, status, paid from order_fts(?) where delivery_date >= ? and delivery_date <= ? order by rank;"
return s.getOrdersFromQuery(query, filter, start, end)
}
func (s *Store) GetTopOrders(from, to time.Time) ([]models.Order, error) {
start := from.Format("2006-01-02") + " 00:00"
end := to.Format("2006-01-02") + " 99:99"
if to.IsZero() {
end = "9999-99-99 99:99"
}
query := "select * from customer_order where status != 'done' and delivery_date >= ? and delivery_date <= ? ;"
return s.getOrdersFromQuery(query, start, end)
}
func (s *Store) UpdateOrderContents(tx *sql.Tx, newOrder models.Order) error {
query := "delete from ordered_cake where customer_order = ?;"
_, err := tx.Exec(query, newOrder.ID)
@ -118,12 +108,43 @@ func (s *Store) UpdateOrderContents(tx *sql.Tx, newOrder models.Order) error {
return nil
}
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 (?, ?, ?, ?, ?, ?, ?, ?);"
if newOrder.ID != 0 {
query = "update customer_order set name = ?, surname = ?, phone = ?, location = ?, order_date = ?, delivery_date = ?, status = ?, paid = ? where id = "
query += strconv.Itoa(newOrder.ID) + " ;"
func (s *Store) UpdateOrder(newOrder models.Order) error {
_, err := s.GetOrder(newOrder.ID)
if err != nil {
return err
}
query := "update customer_order set name = ?, surname = ?, phone = ?, location = ?, order_date = ?, delivery_date = ?, status = ?, paid = ? where id = ?;"
accepted := newOrder.Accepted.Format("2006-01-02 15:04")
date := newOrder.Date.Format("2006-01-02 15:04")
tx, err := s.db.Begin()
if err != nil {
return err
}
_, err = tx.Exec(query, newOrder.Name, newOrder.Surname, newOrder.Phone, newOrder.Location, accepted, date, newOrder.Status, newOrder.Paid, newOrder.ID)
if err != nil {
_ = tx.Rollback()
return err
}
err = s.UpdateOrderContents(tx, newOrder)
if err != nil {
_ = tx.Rollback()
return err
}
err = tx.Commit()
return nil
}
func (s *Store) SaveOrder(newOrder models.Order) (int, error) {
if newOrder.ID != 0 {
return newOrder.ID, s.UpdateOrder(newOrder)
}
query := "insert into customer_order(name, surname, phone, location, order_date, delivery_date, status, paid) values (?, ?, ?, ?, ?, ?, ?, ?);"
tx, err := s.db.Begin()
if err != nil {
return 0, err

View file

@ -19,7 +19,7 @@ func TestStore(t *testing.T) {
if len(cakes) != 0 {
t.Errorf("Expected empty cakes list, got: %v", cakes)
}
orders, err := s.GetTopOrders(time.Now(), time.Now().Add(time.Hour*24))
orders, err := s.GetFilteredOrder("", time.Now(), time.Now().Add(time.Hour*24))
if err != nil {
t.Errorf("Error getting orders: %v", err)
}
@ -170,7 +170,7 @@ func TestStore(t *testing.T) {
}
// get orders
orders, err = s.GetTopOrders(time.Time{}, time.Time{})
orders, err = s.GetFilteredOrder("", time.Time{}, time.Time{})
if err != nil {
t.Fatalf("Failed to get all orders after creation: %v", err)
}