Compare commits

..

1 Commits

Author SHA1 Message Date
73e7c784a3 feat(transaction-recurring): #100 generate transactions
Some checks failed
Build Docker Image / Build-Docker-Image (push) Failing after 4m18s
2025-05-29 00:06:06 +02:00

View File

@@ -333,8 +333,17 @@ func (s TransactionRecurringImpl) Delete(user *types.User, id string) error {
func (s TransactionRecurringImpl) GenerateTransactions(user *types.User) error {
now := s.clock.Now()
tx, err := s.db.Beginx()
err = db.TransformAndLogDbError("transactionRecurring GenerateTransactions", nil, err)
if err != nil {
return err
}
defer func() {
_ = tx.Rollback()
}()
recurringTransactions := make([]*types.TransactionRecurring, 0)
err := s.db.Select(&recurringTransactions, `
err = tx.Select(&recurringTransactions, `
SELECT * FROM transaction_recurring WHERE user_id = ? AND next_execution <= ?`,
user.Id, now)
err = db.TransformAndLogDbError("transactionRecurring GenerateTransactions", nil, err)
@@ -358,7 +367,7 @@ func (s TransactionRecurringImpl) GenerateTransactions(user *types.User) error {
}
nextExecution := transactionRecurring.NextExecution.AddDate(0, int(transactionRecurring.IntervalMonths), 0)
r, err := s.db.Exec(`UPDATE transaction_recurring SET next_execution = ? WHERE id = ? AND user_id = ?`,
r, err := tx.Exec(`UPDATE transaction_recurring SET next_execution = ? WHERE id = ? AND user_id = ?`,
nextExecution, transactionRecurring.Id, user.Id)
err = db.TransformAndLogDbError("transactionRecurring GenerateTransactions", r, err)
if err != nil {
@@ -366,6 +375,11 @@ func (s TransactionRecurringImpl) GenerateTransactions(user *types.User) error {
}
}
err = tx.Commit()
err = db.TransformAndLogDbError("transactionRecurring GenerateTransactions", nil, err)
if err != nil {
return err
}
return nil
}