From 853aa8cc779c5830bd5b9e04f41e2029ac4b7af4 Mon Sep 17 00:00:00 2001 From: Victor Lacasse-Beaudoin Date: Thu, 28 Dec 2023 12:54:25 -0500 Subject: [PATCH] fix(db): rollback camoufle erreurs dans InsertTransactions MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Defer rollback au lieu de l'appeler manuellement à chaque fois --- data/dataclient.go | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/data/dataclient.go b/data/dataclient.go index 8715e89..92c1de0 100644 --- a/data/dataclient.go +++ b/data/dataclient.go @@ -79,20 +79,18 @@ func (d *DataClient) InsertTransactions(transactions []models.Transaction) ([]mo // Start transaction tx, err := d.DB.Beginx() if err != nil { - tx.Rollback() return rowsInserted, err } + defer tx.Rollback() for _, transaction := range transactions { // Check values if transaction.MembreID == "" { - tx.Rollback() return rowsInserted, errors.New("Impossible d'insérer une transaction sans membre_id") } rows, err := tx.NamedQuery("INSERT INTO transactions (membre_id, given_at, is_perpetual) VALUES (:membre_id, current_timestamp, :is_perpetual) RETURNING id, membre_id, is_perpetual;", &transaction) if err != nil { - tx.Rollback() return rowsInserted, err } defer rows.Close() @@ -100,7 +98,6 @@ func (d *DataClient) InsertTransactions(transactions []models.Transaction) ([]mo for rows.Next() { var transactionRow models.Transaction if err := rows.Scan(&transactionRow.ID, &transactionRow.MembreID, &transactionRow.IsPerpetual); err != nil { - tx.Rollback() return rowsInserted, err }