From 5661ac4594a2601cea42629128214da9bd844702 Mon Sep 17 00:00:00 2001 From: bronku Date: Mon, 31 Mar 2025 07:42:31 +0200 Subject: [PATCH] extracted UpdateOrderContents --- foo.db | Bin 73728 -> 73728 bytes internal/store/order.go | 31 ++++++++++++++++++------------- 2 files changed, 18 insertions(+), 13 deletions(-) diff --git a/foo.db b/foo.db index c5879bece89ed936c6f3676cea8d3ae4a8ade01b..bca1e7584d91dab7b4a88bb668b054018d2ef9b1 100644 GIT binary patch delta 802 zcmb7COK4M35WREXC-0?snUsDKNtFcJYe7R^nuJ!xYWfxXNh6j}5HuzcLeSb;vF*l2 zP!vQPE<%N37vjQ2Q3-<8RJ+lI2<@WaM%@%QQYh%6(3STk3)kMwnKLu@4D*>=ljqjt zc`w9^P2CWGb>Yzo7t=s$fOIOK)eYwx!nksBh&ne*epj1Zy3-T2LlZ9#dxFQ9ozxnJ zHxSsbO=kvDlT+7cXWGoRXuu2y!Xcm8el!yL$GH^mkcG?S^QS#L8DEy%*u!lj%{6(< z;5j^tgVQVD+V~alcQaI7x5?Crh>FCG78|a@HM)_9w=MMuJmjI5XHAo=x@*N0Zat z`9xQ5E}9-YHE}T)Jv5pe4R-aVkEb%1b62V(iUiEc$iheX%F=*PUb1@G5Xu}wrj&*M z(WQLjMaYYviJimni;R&>GU)g^UK_bnJMc6)8=qz+HX2%7hVUdXC|G{nii9hhG7-ZwxZG;ZK pxE_(k4jp`R-ISQI&21Y4)Yul+yo2+=xKscD delta 578 zcmYk4O=uHA6oB8G*`I8>$xAGT27^g#SBfdR`Lj(fO|2)>KfFj!D#epR4tfb*5<#&b znlKb9hy_JZp;TD}gNe<>p0wRV!9&$c@FGIN9)z5nL=fjP^WOKpnc>Y;+DfIZ)Q;dx zJu;0muP?1k1}qQq!?<+$>J`K1e+!mS3$soJOFoM^dpj{wc8&nVtF0Nm^pP(-gq%zPNtx|`UsY+$) z(mFk(H}r#k(FbbLE`6jr)n)N4iE?R42LK&;!0D9YF%78!)R1t4L}RTeV;9Jk@fHbp zBbgZ31_Q=`_RR=Q`S1F+%zbl8CYs)x#wTOUv#jsI6P%WNf-ssj=l82a1LsW_<|>s6 zDsXE-f)!@lQ4KweVLED}%2DIUlBwQWMNQ>;I+Hy;K9Q3WXUI}LTU9tqWqZo7mxI{e zjEjfO2T|Wkh!%RMF?AT!0QLq$@(!b|cM*RHBKf|f90TQlM+%+Ri!dc1oaqZZ z4*Z`W>Am+)L$ax%lYPo!!2VK+PHjFO9~|xHF)AmNgpk9CWu=dYt!l2Cvn(&If=+di uuW&#=={tR+&$9QS_HDvR@n|Qb$Vyx6?%3S&b%pL0<$rkYbGl!(Gk*Yi+=DCt diff --git a/internal/store/order.go b/internal/store/order.go index 3346ed2..af3f840 100644 --- a/internal/store/order.go +++ b/internal/store/order.go @@ -99,6 +99,23 @@ func (s *Store) GetTopOrders(from, to time.Time) ([]models.Order, error) { 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) + if err != nil { + return err + } + + query = "insert into ordered_cake(customer_order, cake, amount) values (?,?,?);" + for _, e := range newOrder.Cakes { + _, err := tx.Exec(query, newOrder.ID, e.ID, e.Amount) + if err != nil { + return err + } + } + 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 (?, ?, ?, ?, ?, ?, ?, ?) returning id;" if newOrder.ID != 0 { @@ -129,24 +146,12 @@ func (s *Store) SaveOrder(newOrder models.Order) (int, error) { return newOrder.ID, err } - // remove all ordered_cakes associated with this order before inserting - query = "delete from ordered_cake where customer_order = ?;" - _, err = tx.Exec(query, newOrder.ID) + err = s.UpdateOrderContents(tx, newOrder) if err != nil { _ = tx.Rollback() return newOrder.ID, err } - // add all ordered_cakes for this order - query = "insert into ordered_cake(customer_order, cake, amount) values (?,?,?);" - for _, e := range newOrder.Cakes { - _, err := tx.Exec(query, newOrder.ID, e.ID, e.Amount) - if err != nil { - _ = tx.Rollback() - return newOrder.ID, err - } - } - err = tx.Commit() return newOrder.ID, err }