From 72ed1ae61badcf0ada852052d435ed13fb23c58b Mon Sep 17 00:00:00 2001 From: bronku Date: Wed, 26 Mar 2025 13:26:26 +0100 Subject: [PATCH] Fix SQL casing and improve error handling --- internal/store/cake.go | 18 +++++++----------- internal/store/migrations.go | 2 +- internal/store/migrations/1.sql | 2 +- internal/store/migrations/2.sql | 2 +- internal/store/migrations/3.sql | 2 +- internal/store/migrations/4.sql | 9 +++++++++ 6 files changed, 20 insertions(+), 15 deletions(-) create mode 100644 internal/store/migrations/4.sql diff --git a/internal/store/cake.go b/internal/store/cake.go index 969c6ef..03ee8e2 100644 --- a/internal/store/cake.go +++ b/internal/store/cake.go @@ -19,7 +19,7 @@ func (s *Store) cakeCount() int { if err != nil { return out } - rows.Close() + defer rows.Close() _ = rows.Next() _ = rows.Scan(&out) return out @@ -53,23 +53,19 @@ func (s *Store) searchCakes(id int) (int, error) { } return i, nil } - return -1, errors.New("cake not found") + return 0, errors.New("cake not found") } func (s *Store) GetCake(id int) (Cake, error) { if id <= 0 { return Cake{}, errors.New("Invalid cake id") } - if len(s.cakes) < id { - i, err := s.searchCakes(id) - return s.cakes[i], err - } - if s.cakes[id-1].ID != id { - i, err := s.searchCakes(id) - return s.cakes[i], err - } - return s.cakes[id-1], nil + i, err := s.searchCakes(id) + if err != nil { + return Cake{}, err + } + return s.cakes[i], err } func (s *Store) GetCakes() ([]Cake, error) { diff --git a/internal/store/migrations.go b/internal/store/migrations.go index 0137dae..5f44f39 100644 --- a/internal/store/migrations.go +++ b/internal/store/migrations.go @@ -24,7 +24,7 @@ func (s *Store) loadFile(file string) { query, _ := migrations.ReadFile("migrations/" + file) _, err = s.db.Exec(string(query)) if err != nil { - log.Fatal("error executing migration: ", file) + log.Fatal("error executing migration: ", file, err) } } diff --git a/internal/store/migrations/1.sql b/internal/store/migrations/1.sql index e874f9c..5dc0972 100644 --- a/internal/store/migrations/1.sql +++ b/internal/store/migrations/1.sql @@ -23,4 +23,4 @@ create table ordered_cake ( primary key (customer_order, cake) ); -PRAGMA user_version = 1; +pragma user_version = 1; diff --git a/internal/store/migrations/2.sql b/internal/store/migrations/2.sql index b8b6b93..2bccfe8 100644 --- a/internal/store/migrations/2.sql +++ b/internal/store/migrations/2.sql @@ -5,4 +5,4 @@ create table session ( lastAccess text ); -PRAGMA user_version = 2; +pragma user_version = 2; diff --git a/internal/store/migrations/3.sql b/internal/store/migrations/3.sql index b0c5616..d745f40 100644 --- a/internal/store/migrations/3.sql +++ b/internal/store/migrations/3.sql @@ -4,4 +4,4 @@ add column category text; alter table cake add column availability text; -PRAGMA user_version = 3; +pragma user_version = 3; diff --git a/internal/store/migrations/4.sql b/internal/store/migrations/4.sql new file mode 100644 index 0000000..9c1bd19 --- /dev/null +++ b/internal/store/migrations/4.sql @@ -0,0 +1,9 @@ +update cake +set + category = "common"; + +update cake +set + availability = "avaiable"; + +pragma user_version = 4;