From 2f4f8a75683dd3736841343c29432083b049eb3e Mon Sep 17 00:00:00 2001 From: Jan Bader Date: Fri, 25 Feb 2022 22:02:57 +0000 Subject: [PATCH] Extract method CreateTransferForOtherAccount --- server/transaction.go | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/server/transaction.go b/server/transaction.go index eeef730..adcdcad 100644 --- a/server/transaction.go +++ b/server/transaction.go @@ -49,18 +49,11 @@ func (h *Handler) newTransaction(c *gin.Context) { } if payload.Payee.IsAccount { - newTransaction.GroupID = uuid.NullUUID{UUID: uuid.New(), Valid: true} - newTransaction.Amount = amount.Neg() - newTransaction.AccountID = payload.Payee.ID.UUID - newTransaction.CategoryID = uuid.NullUUID{} - - _, err = h.Service.CreateTransaction(c.Request.Context(), newTransaction) + err := h.CreateTransferForOtherAccount(newTransaction, amount, payload, err, c) if err != nil { c.AbortWithError(http.StatusInternalServerError, fmt.Errorf("create transfer transaction: %w", err)) return } - - newTransaction.Amount = amount } else { payeeID, err := GetPayeeID(c.Request.Context(), payload, h) if err != nil { @@ -80,6 +73,15 @@ func (h *Handler) newTransaction(c *gin.Context) { c.JSON(http.StatusOK, transaction) } +func (h *Handler) CreateTransferForOtherAccount(newTransaction postgres.CreateTransactionParams, amount numeric.Numeric, payload NewTransactionPayload, err error, c *gin.Context) error { + newTransaction.GroupID = uuid.NullUUID{UUID: uuid.New(), Valid: true} + newTransaction.Amount = amount.Neg() + newTransaction.AccountID = payload.Payee.ID.UUID + + _, err = h.Service.CreateTransaction(c.Request.Context(), newTransaction) + return err +} + func GetPayeeID(context context.Context, payload NewTransactionPayload, h *Handler) (uuid.NullUUID, error) { payeeID := payload.Payee.ID if payeeID.Valid {