diff --git a/server/transaction.go b/server/transaction.go index 6dc632f..a9cce82 100644 --- a/server/transaction.go +++ b/server/transaction.go @@ -57,11 +57,13 @@ func (h *Handler) newTransaction(c *gin.Context) { } if payload.Payee.Type == "account" { - err := h.CreateTransferForOtherAccount(newTransaction, amount, payload, c) + groupID, err := h.CreateTransferForOtherAccount(newTransaction, amount, payload, c) if err != nil { c.AbortWithError(http.StatusInternalServerError, err) return } + + newTransaction.GroupID = groupID } else { payeeID, err := GetPayeeID(c.Request.Context(), payload, h) if err != nil { @@ -119,7 +121,7 @@ func (h *Handler) UpdateTransaction(payload NewTransactionPayload, amount numeri c.JSON(http.StatusOK, transaction) } -func (h *Handler) CreateTransferForOtherAccount(newTransaction postgres.CreateTransactionParams, amount numeric.Numeric, payload NewTransactionPayload, c *gin.Context) error { +func (h *Handler) CreateTransferForOtherAccount(newTransaction postgres.CreateTransactionParams, amount numeric.Numeric, payload NewTransactionPayload, c *gin.Context) (uuid.NullUUID, error) { newTransaction.GroupID = uuid.NullUUID{UUID: uuid.New(), Valid: true} newTransaction.Amount = amount.Neg() newTransaction.AccountID = payload.Payee.ID.UUID @@ -129,9 +131,9 @@ func (h *Handler) CreateTransferForOtherAccount(newTransaction postgres.CreateTr _, err := h.Service.CreateTransaction(c.Request.Context(), newTransaction) if err != nil { - return fmt.Errorf("create transfer transaction: %w", err) + return uuid.NullUUID{}, fmt.Errorf("create transfer transaction: %w", err) } - return nil + return newTransaction.GroupID, nil } func GetPayeeID(context context.Context, payload NewTransactionPayload, h *Handler) (uuid.NullUUID, error) {