From b8265cf80f4b1ed4cd372370c8680bb526d7cc00 Mon Sep 17 00:00:00 2001 From: Ruidy Date: Sat, 25 Jan 2025 00:20:12 +0100 Subject: [PATCH] fix: only update the payments on payment creation --- internal/server/handle_payments.go | 23 ++++--------- internal/view/booking_by_id.templ | 2 +- internal/view/booking_by_id_templ.go | 2 +- internal/view/item_list.templ | 13 ++------ internal/view/item_list_templ.go | 45 ++----------------------- internal/view/payment.templ | 41 +++++++++++++++-------- internal/view/payment_templ.go | 49 +++++++++++++++++++++++++--- 7 files changed, 87 insertions(+), 88 deletions(-) diff --git a/internal/server/handle_payments.go b/internal/server/handle_payments.go index e234ab8..90576a0 100644 --- a/internal/server/handle_payments.go +++ b/internal/server/handle_payments.go @@ -27,7 +27,9 @@ func handleCreatePayment(bs *booking.Service) echo.HandlerFunc { } np := new(CreatePaymentInput) - c.Bind(np) + if err := c.Bind(np); err != nil { + return err + } b := bs.One(id) @@ -38,26 +40,15 @@ func handleCreatePayment(bs *booking.Service) echo.HandlerFunc { nb := bs.One(id) - return renderTempl(c, http.StatusOK, view.ItemList(view.ItemListViewModel{ - Items: u.Map(nb.Items, func(i booking.Item) view.ItemViewModel { - return view.ItemViewModel{ - Id: strconv.Itoa(i.Id), - Item: i.Item, - Quantity: strconv.Itoa(i.Quantity), - Price: strconv.FormatFloat(i.Price, 'f', 2, 64), - SubTotal: strconv.FormatFloat(i.Price*float64(i.Quantity), 'f', 2, 64), - PaymentStatus: i.PaymentStatus, - ItemUrl: fmt.Sprintf("%s/%d", constant.RouteItem, i.Id), - } - }), - Payments: u.Map(nb.Payments, func(p booking.Payment) view.PaymentViewModel { - return view.PaymentViewModel{ + return renderTempl(c, http.StatusOK, view.PaymentList( + u.Map(nb.Payments, func(p booking.Payment) *view.PaymentViewModel { + return &view.PaymentViewModel{ Amount: strconv.FormatFloat(p.Amount, 'f', 2, 64), PaymentMethod: p.PaymentMethod, PaymentUrl: fmt.Sprintf("%s/%d", constant.RoutePayment, p.ID), } }), - })) + )) } } diff --git a/internal/view/booking_by_id.templ b/internal/view/booking_by_id.templ index ea8148d..2644263 100644 --- a/internal/view/booking_by_id.templ +++ b/internal/view/booking_by_id.templ @@ -135,7 +135,7 @@ templ PaymentModal(paymentUrl string) {
diff --git a/internal/view/booking_by_id_templ.go b/internal/view/booking_by_id_templ.go index 4ed193a..51261e5 100644 --- a/internal/view/booking_by_id_templ.go +++ b/internal/view/booking_by_id_templ.go @@ -275,7 +275,7 @@ func PaymentModal(paymentUrl string) templ.Component { if templ_7745c5c3_Err != nil { return templ_7745c5c3_Err } - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 22, "\" hx-target=\"#line-items\" hx-swap=\"outerHTML\" hx-on::after-request=\"if(event.detail.successful) payment_modal.close()\">
") + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 22, "\" hx-target=\"#payment-lines\" hx-swap=\"outerHTML\" hx-on::after-request=\"if(event.detail.successful) payment_modal.close()\">
") if templ_7745c5c3_Err != nil { return templ_7745c5c3_Err } diff --git a/internal/view/item_list.templ b/internal/view/item_list.templ index 239dd9e..5d08fb0 100644 --- a/internal/view/item_list.templ +++ b/internal/view/item_list.templ @@ -16,19 +16,10 @@ templ ItemList(itemList ItemListViewModel) { - + if len(itemList.Payments) >0 { for _,payment := range itemList.Payments { - - - - - { payment.Amount } - { payment.PaymentMethod } - - - - - + @PaymentLine(&payment) } } diff --git a/internal/view/item_list_templ.go b/internal/view/item_list_templ.go index d9841f1..93dd29d 100644 --- a/internal/view/item_list_templ.go +++ b/internal/view/item_list_templ.go @@ -39,58 +39,19 @@ func ItemList(itemList ItemListViewModel) templ.Component { return templ_7745c5c3_Err } } - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 2, " Price (€)Payment MethodSub-total (€) ") + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 2, " Price (€)Payment MethodSub-total (€) ") if templ_7745c5c3_Err != nil { return templ_7745c5c3_Err } if len(itemList.Payments) > 0 { for _, payment := range itemList.Payments { - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 3, "- ") - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - var templ_7745c5c3_Var2 string - templ_7745c5c3_Var2, templ_7745c5c3_Err = templ.JoinStringErrs(payment.Amount) - if templ_7745c5c3_Err != nil { - return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/view/item_list.templ`, Line: 25, Col: 27} - } - _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var2)) - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 4, "") - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - var templ_7745c5c3_Var3 string - templ_7745c5c3_Var3, templ_7745c5c3_Err = templ.JoinStringErrs(payment.PaymentMethod) - if templ_7745c5c3_Err != nil { - return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/view/item_list.templ`, Line: 26, Col: 32} - } - _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var3)) - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 5, "") + templ_7745c5c3_Err = PaymentLine(&payment).Render(ctx, templ_7745c5c3_Buffer) if templ_7745c5c3_Err != nil { return templ_7745c5c3_Err } } } - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 7, "") + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 3, "") if templ_7745c5c3_Err != nil { return templ_7745c5c3_Err } diff --git a/internal/view/payment.templ b/internal/view/payment.templ index f431fbc..593e89a 100644 --- a/internal/view/payment.templ +++ b/internal/view/payment.templ @@ -8,7 +8,12 @@ templ PaymentLine(payment *PaymentViewModel) { { payment.PaymentMethod } - + } @@ -19,21 +24,21 @@ templ PaymentForm(payment *PaymentViewModel) { - - @@ -43,4 +48,14 @@ templ PaymentForm(payment *PaymentViewModel) { -} \ No newline at end of file +} + +templ PaymentList(payments []*PaymentViewModel) { + + if len(payments) >0 { + for _,payment := range payments { + @PaymentLine(payment) + } + } + +} diff --git a/internal/view/payment_templ.go b/internal/view/payment_templ.go index cd577ff..21c6cbd 100644 --- a/internal/view/payment_templ.go +++ b/internal/view/payment_templ.go @@ -62,7 +62,7 @@ func PaymentLine(payment *PaymentViewModel) templ.Component { var templ_7745c5c3_Var4 string templ_7745c5c3_Var4, templ_7745c5c3_Err = templ.JoinStringErrs(payment.PaymentUrl) if templ_7745c5c3_Err != nil { - return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/view/payment.templ`, Line: 11, Col: 69} + return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/view/payment.templ`, Line: 13, Col: 31} } _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var4)) if templ_7745c5c3_Err != nil { @@ -104,7 +104,7 @@ func PaymentForm(payment *PaymentViewModel) templ.Component { var templ_7745c5c3_Var6 string templ_7745c5c3_Var6, templ_7745c5c3_Err = templ.JoinStringErrs(payment.PaymentUrl) if templ_7745c5c3_Err != nil { - return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/view/payment.templ`, Line: 18, Col: 35} + return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/view/payment.templ`, Line: 23, Col: 35} } _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var6)) if templ_7745c5c3_Err != nil { @@ -117,7 +117,7 @@ func PaymentForm(payment *PaymentViewModel) templ.Component { var templ_7745c5c3_Var7 string templ_7745c5c3_Var7, templ_7745c5c3_Err = templ.JoinStringErrs(payment.Amount) if templ_7745c5c3_Err != nil { - return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/view/payment.templ`, Line: 27, Col: 27} + return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/view/payment.templ`, Line: 32, Col: 27} } _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var7)) if templ_7745c5c3_Err != nil { @@ -130,7 +130,7 @@ func PaymentForm(payment *PaymentViewModel) templ.Component { var templ_7745c5c3_Var8 string templ_7745c5c3_Var8, templ_7745c5c3_Err = templ.JoinStringErrs(payment.PaymentMethod) if templ_7745c5c3_Err != nil { - return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/view/payment.templ`, Line: 35, Col: 34} + return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/view/payment.templ`, Line: 40, Col: 34} } _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var8)) if templ_7745c5c3_Err != nil { @@ -144,4 +144,45 @@ func PaymentForm(payment *PaymentViewModel) templ.Component { }) } +func PaymentList(payments []*PaymentViewModel) templ.Component { + return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) { + templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context + if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil { + return templ_7745c5c3_CtxErr + } + templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W) + if !templ_7745c5c3_IsBuffer { + defer func() { + templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer) + if templ_7745c5c3_Err == nil { + templ_7745c5c3_Err = templ_7745c5c3_BufErr + } + }() + } + ctx = templ.InitializeContext(ctx) + templ_7745c5c3_Var9 := templ.GetChildren(ctx) + if templ_7745c5c3_Var9 == nil { + templ_7745c5c3_Var9 = templ.NopComponent + } + ctx = templ.ClearChildren(ctx) + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 9, "") + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + if len(payments) > 0 { + for _, payment := range payments { + templ_7745c5c3_Err = PaymentLine(payment).Render(ctx, templ_7745c5c3_Buffer) + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + } + } + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 10, "") + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + return nil + }) +} + var _ = templruntime.GeneratedTemplate