From 6e10f76d5ac99418056534d749e493e0a50c9387 Mon Sep 17 00:00:00 2001 From: "Bradley M. Kuhn" Date: Mon, 14 Dec 2015 17:30:44 -0800 Subject: [PATCH] Wrap addSupporter operations in transaction All of the addSupporter must now succeed (including sub-operations like addEmailAddress). This causes one failing test to now pass: ok 55 - addSupporter: fails if email_address given but email cannot be inserted --- Supporters/lib/Supporters.pm | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Supporters/lib/Supporters.pm b/Supporters/lib/Supporters.pm index ec20b9c..8fd9e42 100644 --- a/Supporters/lib/Supporters.pm +++ b/Supporters/lib/Supporters.pm @@ -96,6 +96,7 @@ sub addSupporter ($$) { if ($sp->{public_ack}) { die "display_name required if public_ack requested" unless defined $sp->{display_name}; } + $this->_beginWork; my $sth = $this->dbh->prepare( "INSERT INTO supporter(ledger_entity_id, display_name, public_ack)" . " values(?, ?, ?)"); @@ -107,6 +108,7 @@ sub addSupporter ($$) { $this->addEmailAddress($id, $sp->{email_address}, $sp->{email_address_type}) if defined $sp->{email_address}; + $this->_commit; return $id; } ######################################################################