diff --git a/http/transaction.go b/http/transaction.go index a565275..c047e0d 100644 --- a/http/transaction.go +++ b/http/transaction.go @@ -35,8 +35,6 @@ func (h *Handler) newTransaction(c *gin.Context) { return } - fmt.Printf("%v\n", payload) - amount := postgres.Numeric{} amount.Set(payload.Amount) @@ -46,13 +44,30 @@ func (h *Handler) newTransaction(c *gin.Context) { return }*/ + payeeID := payload.Payee.ID + if !payeeID.Valid && payload.Payee.Name != "" { + newPayee := postgres.CreatePayeeParams{ + Name: payload.Payee.Name, + BudgetID: payload.BudgetID, + } + payee, err := h.Service.CreatePayee(c.Request.Context(), newPayee) + if err != nil { + c.AbortWithError(http.StatusInternalServerError, fmt.Errorf("create payee: %w", err)) + } + + payeeID = uuid.NullUUID{ + UUID: payee.ID, + Valid: true, + } + } + //if !transactionUUID.Valid { new := postgres.CreateTransactionParams{ Memo: payload.Memo, Date: time.Time(payload.Date), Amount: amount, AccountID: payload.AccountID, - PayeeID: payload.Payee.ID, //TODO handle new payee + PayeeID: payeeID, //TODO handle new payee CategoryID: payload.Category.ID, //TODO handle new category Status: postgres.TransactionStatus(payload.State), }