From 9de60c3c5e1cd769c4a1be60b9767aabaf865ed7 Mon Sep 17 00:00:00 2001 From: "Bradley M. Kuhn" Date: Wed, 30 Dec 2015 03:13:41 -0800 Subject: [PATCH] Use donorId rather than supporterId as main handle Since we converted to making this a more general donor database, change the handle used for an individual in the database from supporterId to donorId. Note that I left addSupporter() method name untouched because it does automatically assume you mean a supporter, not a mere donor. Later, an addDonor() method should likely be added. --- Supporters/lib/Supporters.pm | 60 ++++++++++++++++++------------------ Supporters/t/Supporters.t | 36 +++++++++++----------- 2 files changed, 48 insertions(+), 48 deletions(-) diff --git a/Supporters/lib/Supporters.pm b/Supporters/lib/Supporters.pm index 2c5a866..151c192 100644 --- a/Supporters/lib/Supporters.pm +++ b/Supporters/lib/Supporters.pm @@ -237,7 +237,7 @@ Arguments: =over -=item $supporterId +=item $donorId Valid supporter id number currently in the database. die() will occur if the id number is not in the database already as a supporter id. @@ -256,9 +256,9 @@ returned; it means the preferred email address wasn't selected for some reason. =cut sub setPreferredEmailAddress($$$) { - my($self, $supporterId, $emailAddress) = @_; + my($self, $donorId, $emailAddress) = @_; - die "setPreferredEmailAddress: invalid supporter id, $supporterId" unless $self->_verifyId($supporterId); + die "setPreferredEmailAddress: invalid supporter id, $donorId" unless $self->_verifyId($donorId); die "setPreferredEmailAddress: email address not defined" unless defined $emailAddress; die "setPreferredEmailAddress: invalid email address, $emailAddress" unless Mail::RFC822::Address::valid($emailAddress); @@ -266,7 +266,7 @@ sub setPreferredEmailAddress($$$) { my $ems = $self->dbh()->selectall_hashref("SELECT ea.email_address, ea.id, sem.preferred " . "FROM email_address ea, donor_email_address_mapping sem " . "WHERE ea.id = sem.email_address_id AND ". - "sem.donor_id = " . $self->dbh->quote($supporterId, 'SQL_INTEGER'), + "sem.donor_id = " . $self->dbh->quote($donorId, 'SQL_INTEGER'), 'email_address'); # Shortcut: it was already set return $ems->{$emailAddress}{id} if (defined $ems->{$emailAddress} and $ems->{$emailAddress}{preferred}); @@ -284,7 +284,7 @@ sub setPreferredEmailAddress($$$) { if ($anotherPreferred) { $self->dbh->do("UPDATE donor_email_address_mapping " . "SET preferred = " . $self->dbh->quote(0, 'SQL_BOOLEAN') . " " . - "WHERE donor_id = " . $self->dbh->quote($supporterId, 'SQL_INTEGER')); + "WHERE donor_id = " . $self->dbh->quote($donorId, 'SQL_INTEGER')); } $self->dbh->do("UPDATE donor_email_address_mapping " . "SET preferred = " . $self->dbh->quote(1, 'SQL_BOOLEAN') . " " . @@ -300,7 +300,7 @@ Arguments: =over -=item $supporterId +=item $donorId Valid supporter id number currently in the database. die() will occur if the id number is not in the database already as a supporter id. @@ -319,16 +319,16 @@ returned; it means the preferred email address wasn't selected for some reason. =cut sub getPreferredEmailAddress($$) { - my($self, $supporterId) = @_; + my($self, $donorId) = @_; - die "setPreferredEmailAddress: invalid supporter id, $supporterId" unless $self->_verifyId($supporterId); + die "setPreferredEmailAddress: invalid supporter id, $donorId" unless $self->_verifyId($donorId); my $ems = $self->dbh()->selectall_hashref("SELECT email_address FROM email_address em, donor_email_address_mapping sem " . "WHERE preferred AND sem.email_address_id = em.id AND " . - "sem.donor_id = " . $self->dbh->quote($supporterId, 'SQL_INTEGER'), + "sem.donor_id = " . $self->dbh->quote($donorId, 'SQL_INTEGER'), 'email_address'); my $rowCount = scalar keys %{$ems}; - die "setPreferredEmailAddress: DATABASE INTEGRITY ERROR: more than one email address is preferred for supporter, \"$supporterId\"" + die "setPreferredEmailAddress: DATABASE INTEGRITY ERROR: more than one email address is preferred for supporter, \"$donorId\"" if $rowCount > 1; if ($rowCount != 1) { @@ -566,7 +566,7 @@ Arguments: =over -=item $supporterId +=item $donorId Valid donor_id number currently in the database. die() will occur if the id number is not in the database already as a supporter id. @@ -589,7 +589,7 @@ Returns: =item undef - if the C<$requestType> is not found for C<$supporterId> (or, as above, + if the C<$requestType> is not found for C<$donorId> (or, as above, the C<$requestType> is found but has been fufilled and C<$ignoreFulfilledRequests>. @@ -645,17 +645,17 @@ If the request has been fufilled, the following keys will also ahve values. =cut sub getRequest($$;$) { - my($self, $supporterId, $requestType, $ignoreFulfilledRequests) = @_; + my($self, $donorId, $requestType, $ignoreFulfilledRequests) = @_; - die "getRequest: undefined supporterId" unless defined $supporterId; - die "getRequest: supporterId, \"$supporterId\" not found in supporter database" - unless $self->_verifyId($supporterId); + die "getRequest: undefined donorId" unless defined $donorId; + die "getRequest: donorId, \"$donorId\" not found in supporter database" + unless $self->_verifyId($donorId); die "getRequest: undefined requestType" unless defined $requestType; my $req = $self->dbh()->selectall_hashref("SELECT r.id, r.request_type_id, r.request_configuration_id, r.date_requested, r.notes, rt.type " . "FROM request r, request_type rt WHERE r.request_type_id = rt.id AND " . - "r.donor_id = " . $self->dbh->quote($supporterId, 'SQL_INTEGER') . + "r.donor_id = " . $self->dbh->quote($donorId, 'SQL_INTEGER') . " AND rt.type = " . $self->dbh->quote($requestType), 'type'); return undef unless (defined $req and defined $req->{$requestType} and defined $req->{$requestType}{'id'}); @@ -700,7 +700,7 @@ A hash reference, the following keys are considered: =over -=item supporterId +=item donorId Valid donor_id number currently in the database. die() will occur if the id number is not in the database already as a supporter id. @@ -739,10 +739,10 @@ Returns the id value of the request entry. sub addRequest($$) { my($self, $params) = @_; - die "addRequest: undefined supporterId" unless defined $params->{supporterId}; - my $supporterId = $params->{supporterId}; - die "addRequest: supporterId, \"$supporterId\" not found in supporter database" - unless $self->_verifyId($supporterId); + die "addRequest: undefined donorId" unless defined $params->{donorId}; + my $donorId = $params->{donorId}; + die "addRequest: donorId, \"$donorId\" not found in supporter database" + unless $self->_verifyId($donorId); $self->_beginWork; eval { @@ -764,7 +764,7 @@ sub addRequest($$) { my $sth = $self->dbh->prepare("INSERT INTO request(donor_id, request_type_id, request_configuration_id, notes, date_requested) " . "VALUES(?, ?, ?, ?, date('now'))"); - $sth->execute($supporterId, $params->{requestTypeId}, $params->{requestConfigurationId}, $params->{notes}); + $sth->execute($donorId, $params->{requestTypeId}, $params->{requestConfigurationId}, $params->{notes}); my $id = $self->dbh->last_insert_id("","","",""); $self->_commit; return $id; @@ -783,7 +783,7 @@ A hash reference, the following keys are considered: =over -=item supporterId +=item donorId Valid donor_id number currently in the database. die() will occur if the id number is not in the database already as a supporter id. @@ -793,7 +793,7 @@ A hash reference, the following keys are considered: requestType of the request to be fulfilled. die() will occur if this is undefined. undef is returned if there is no unfulfilled request of requestType in the database for supporter identified by - C<$params->{supporterId}> + C<$params->{donorId}> =item who @@ -815,14 +815,14 @@ Returns the id value of the fulfillment entry. sub fulfillRequest($$) { my($self, $params) = @_; - die "fulfillRequest: undefined supporterId" unless defined $params->{supporterId}; - my $supporterId = $params->{supporterId}; - die "fulfillRequest: supporterId, \"$supporterId\" not found in supporter database" - unless $self->_verifyId($supporterId); + die "fulfillRequest: undefined donorId" unless defined $params->{donorId}; + my $donorId = $params->{donorId}; + die "fulfillRequest: donorId, \"$donorId\" not found in supporter database" + unless $self->_verifyId($donorId); die "fulfillRequest: undefined who" unless defined $params->{who}; die "fulfillRequest: undefined requestType" unless defined $params->{requestType}; - my $req = $self->getRequest($supporterId, $params->{requestType}); + my $req = $self->getRequest($donorId, $params->{requestType}); return undef if not defined $req; my $requestId = $req->{requestId}; return undef if not defined $requestId; diff --git a/Supporters/t/Supporters.t b/Supporters/t/Supporters.t index f7fb751..2694e86 100644 --- a/Supporters/t/Supporters.t +++ b/Supporters/t/Supporters.t @@ -249,15 +249,15 @@ foreach my $size (@sizeList) { =cut -dies_ok { $sp->addRequest({}); } "addRequest: dies if supporterId not specified."; +dies_ok { $sp->addRequest({}); } "addRequest: dies if donorId not specified."; -dies_ok { $sp->addRequest({ supporterId => $drapperId }); } +dies_ok { $sp->addRequest({ donorId => $drapperId }); } "addRequest: dies if requestTypeId / requestType not specified."; -dies_ok { $sp->addRequest({ supporterId => 0, requestTypeId => $tShirt0RequestTypeId }); } - "addRequest: dies if supporterId invalid."; +dies_ok { $sp->addRequest({ donorId => 0, requestTypeId => $tShirt0RequestTypeId }); } + "addRequest: dies if donorId invalid."; -dies_ok { $sp->addRequest({ supporterId => $drapperId, requestTypeId => 0 }); } +dies_ok { $sp->addRequest({ donorId => $drapperId, requestTypeId => 0 }); } "addRequest: dies if requestTypeId invalid."; is($sp->{__NESTED_TRANSACTION_COUNTER__}, 0, "addRequest: assure proper beginWork/commit matching."); @@ -265,7 +265,7 @@ is($sp->{__NESTED_TRANSACTION_COUNTER__}, 0, "addRequest: assure proper beginWor my $emailListRequestId; lives_ok { $emailListRequestId = - $sp->addRequest({ supporterId => $drapperId, requestType => "join-announce-email-list" }); } + $sp->addRequest({ donorId => $drapperId, requestType => "join-announce-email-list" }); } "addRequest: succeeds with a requestType but no configuration parameter."; ok( (defined $emailListRequestId and looks_like_number($emailListRequestId) and $emailListRequestId > 0), @@ -278,7 +278,7 @@ ok((defined $joinEmailListRequestId and looks_like_number($joinEmailListRequestI my $tshirtSmallRequestId; lives_ok { $tshirtSmallRequestId = - $sp->addRequest({ supporterId => $drapperId, requestType => "t-shirt-small-only", + $sp->addRequest({ donorId => $drapperId, requestType => "t-shirt-small-only", requestConfiguration => 'Small', notes => 'he probably needs a larger size but this shirt has none'}); } "addRequest: succeeds with a requestType and requestConfiguration and a note."; @@ -288,7 +288,7 @@ ok( (defined $tshirtSmallRequestId and looks_like_number($tshirtSmallRequestId) my $tShirt0RequestId; lives_ok { $tShirt0RequestId = - $sp->addRequest({ supporterId => $drapperId, requestTypeId => $tShirt0RequestTypeId, + $sp->addRequest({ donorId => $drapperId, requestTypeId => $tShirt0RequestTypeId, requestConfigurationId => $tShirt0Data->{$tShirt0RequestTypeId}{'MenL'} }); } "addRequest: succeeds with a requestTypeId and requestConfigurationId with no a note."; @@ -306,23 +306,23 @@ my $fulfillRequestId; dies_ok { $fulfillRequestId = $sp->fulfillRequest( { requestType => "t-shirt-small-only", who => 'joe', how => "in-person delivery" }); } - "fulfillRequest: dies if supporterId not specified"; + "fulfillRequest: dies if donorId not specified"; -dies_ok { $fulfillRequestId = $sp->fulfillRequest( { supporterId => $drapperId + 1000, +dies_ok { $fulfillRequestId = $sp->fulfillRequest( { donorId => $drapperId + 1000, requestType => "t-shirt-small-only", who => 'joe', how => "in-person delivery" }); } - "fulfillRequest: dies if supporterId not found in database"; + "fulfillRequest: dies if donorId not found in database"; -dies_ok { $fulfillRequestId = $sp->fulfillRequest( { supporterId => $drapperId, who => 'joe', +dies_ok { $fulfillRequestId = $sp->fulfillRequest( { donorId => $drapperId, who => 'joe', how => "in-person delivery" }); } "fulfillRequest: dies if requestType not specified"; -dies_ok { $fulfillRequestId = $sp->fulfillRequest( { supporterId => $drapperId, +dies_ok { $fulfillRequestId = $sp->fulfillRequest( { donorId => $drapperId, requestType => "t-shirt-small-only", how => "in-person delivery" }); } "fulfillRequest: dies if who not specified"; -lives_ok { $fulfillRequestId = $sp->fulfillRequest( { supporterId => $drapperId, +lives_ok { $fulfillRequestId = $sp->fulfillRequest( { donorId => $drapperId, requestType => "t-shirt-small-only", who => 'joe', how => "in-person delivery" }); } "fulfillRequest: succeeds for existing request"; @@ -338,7 +338,7 @@ is_deeply($val, { $fulfillRequestId => { id => $fulfillRequestId, date => $today "fulfillRequest: databse entry from successful return is correct"); my $badFR; -lives_ok { $badFR = $sp->fulfillRequest( { supporterId => $drapperId, who => 'john', +lives_ok { $badFR = $sp->fulfillRequest( { donorId => $drapperId, who => 'john', requestType => "does-not-exist", how => "in-person delivery" }); } "fulfillRequest: attempt to fulfill a request never made does not die..."; @@ -352,7 +352,7 @@ is($sp->getRequestType("does-not-exist"), undef, my $lookedUpFulfillmentId; -lives_ok { $lookedUpFulfillmentId = $sp->fulfillRequest( { supporterId => $drapperId, +lives_ok { $lookedUpFulfillmentId = $sp->fulfillRequest( { donorId => $drapperId, requestType => "t-shirt-small-only", who => 'peggy', how => "left in his office." }); } "fulfillRequest: attempt to fulfill an already-fulfill request does not die ..."; @@ -364,9 +364,9 @@ is($lookedUpFulfillmentId, $fulfillRequestId, =cut -dies_ok { $sp->getRequest(undef, undef); } "getRequest: dies if supporterId not specified."; +dies_ok { $sp->getRequest(undef, undef); } "getRequest: dies if donorId not specified."; -dies_ok { $sp->getRequest(0, "t-shirt-small-only"); } "getRequest: dies if supporterId invalid."; +dies_ok { $sp->getRequest(0, "t-shirt-small-only"); } "getRequest: dies if donorId invalid."; dies_ok { $sp->getRequest($drapperId, undef); } "getRequest: dies if requestType not specified.";