fix(db): rollback camoufle erreurs dans InsertTransactions

Defer rollback au lieu de l'appeler manuellement à chaque fois
This commit is contained in:
Victor Lacasse-Beaudoin 2023-12-28 12:54:25 -05:00
parent d8fbd798c2
commit 853aa8cc77

View file

@ -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
}