Fix GroupID not being set for original transaction #27

Merged
jacob1123 merged 1 commits from hotfix-transfers into master 2022-02-27 22:53:20 +01:00

View File

@ -57,11 +57,13 @@ func (h *Handler) newTransaction(c *gin.Context) {
} }
if payload.Payee.Type == "account" { if payload.Payee.Type == "account" {
err := h.CreateTransferForOtherAccount(newTransaction, amount, payload, c) groupID, err := h.CreateTransferForOtherAccount(newTransaction, amount, payload, c)
if err != nil { if err != nil {
c.AbortWithError(http.StatusInternalServerError, err) c.AbortWithError(http.StatusInternalServerError, err)
return return
} }
newTransaction.GroupID = groupID
} else { } else {
payeeID, err := GetPayeeID(c.Request.Context(), payload, h) payeeID, err := GetPayeeID(c.Request.Context(), payload, h)
if err != nil { if err != nil {
@ -119,7 +121,7 @@ func (h *Handler) UpdateTransaction(payload NewTransactionPayload, amount numeri
c.JSON(http.StatusOK, transaction) 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.GroupID = uuid.NullUUID{UUID: uuid.New(), Valid: true}
newTransaction.Amount = amount.Neg() newTransaction.Amount = amount.Neg()
newTransaction.AccountID = payload.Payee.ID.UUID 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) _, err := h.Service.CreateTransaction(c.Request.Context(), newTransaction)
if err != nil { 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) { func GetPayeeID(context context.Context, payload NewTransactionPayload, h *Handler) (uuid.NullUUID, error) {