getRequestType with no arguments returns full list
I debated whether to create a getRequestTypes() instead, but this seemed reasonable. I am too far out of Perl5 programming culture to know if this sort of interface is recommended practice.
This commit is contained in:
parent
7398b2f3f7
commit
1577a5613c
2 changed files with 29 additions and 9 deletions
|
@ -682,22 +682,27 @@ Arguments:
|
|||
|
||||
=item type
|
||||
|
||||
A string describing the request.
|
||||
A string describing the request. Argument is optional.
|
||||
|
||||
=back
|
||||
|
||||
Returns the id value of the request_type entry. undef is returned if there
|
||||
is no request of that type.
|
||||
If type is given, returns a scalar the id value of the request_type entry.
|
||||
undef is returned if there is no request of that type.
|
||||
|
||||
If type is not given, a list of all known request types is returned.
|
||||
|
||||
=cut
|
||||
|
||||
sub getRequestType($$) {
|
||||
sub getRequestType($;$) {
|
||||
my($self, $type) = @_;
|
||||
|
||||
return undef if not defined $type;
|
||||
if (not defined $type) {
|
||||
return @{$self->dbh()->selectcol_arrayref("SELECT type, id FROM request_type ORDER BY id", { Columns=>[1] })};
|
||||
} else {
|
||||
my $val = $self->dbh()->selectall_hashref("SELECT id, type FROM request_type WHERE type = '$type'", 'type');
|
||||
return $val->{$type}{id} if (defined $val and defined $val->{$type} and defined $val->{$type}{id});
|
||||
return undef;
|
||||
}
|
||||
}
|
||||
######################################################################
|
||||
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
use strict;
|
||||
use warnings;
|
||||
|
||||
use Test::More tests => 331;
|
||||
use Test::More tests => 334;
|
||||
use Test::Exception;
|
||||
use Sub::Override;
|
||||
use File::Temp qw/tempfile/;
|
||||
|
@ -413,6 +413,10 @@ lives_ok { $tShirt0RequestTypeId = $sp->addRequestType('t-shirt-0'); }
|
|||
ok( (defined $tShirt0RequestTypeId and looks_like_number($tShirt0RequestTypeId) and $tShirt0RequestTypeId > 0),
|
||||
"addRequestType: id is a number");
|
||||
|
||||
my @allRequestsList = $sp->getRequestType();
|
||||
|
||||
is_deeply(\@allRequestsList, ['t-shirt-0' ], "getRequestType: no argument returns full list of request types (1)");
|
||||
|
||||
my $testSameRequestType;
|
||||
|
||||
lives_ok { $testSameRequestType = $sp->addRequestType('t-shirt-0'); }
|
||||
|
@ -490,6 +494,11 @@ my $joinEmailListRequestId = $sp->getRequestType("join-announce-email-list");
|
|||
ok((defined $joinEmailListRequestId and looks_like_number($joinEmailListRequestId) and $joinEmailListRequestId > 0),
|
||||
"addRequest: underlying call to addRequestType works properly, per getRequestType");
|
||||
|
||||
@allRequestsList = $sp->getRequestType();
|
||||
|
||||
is_deeply(\@allRequestsList, ['t-shirt-0', 'join-announce-email-list'],
|
||||
"getRequestType: no argument returns full list of request types (2)");
|
||||
|
||||
my $tshirtSmallRequestId;
|
||||
|
||||
lives_ok { $tshirtSmallRequestId =
|
||||
|
@ -501,7 +510,13 @@ lives_ok { $tshirtSmallRequestId =
|
|||
ok( (defined $tshirtSmallRequestId and looks_like_number($tshirtSmallRequestId) and $tshirtSmallRequestId > 0),
|
||||
"addRequest: successful call returns an integer id.");
|
||||
|
||||
@allRequestsList = $sp->getRequestType();
|
||||
|
||||
is_deeply(\@allRequestsList, ['t-shirt-0', 'join-announce-email-list', 't-shirt-small-only' ],
|
||||
"getRequestType: no argument returns full list of request types (3)");
|
||||
|
||||
my $tShirt0RequestId;
|
||||
|
||||
lives_ok { $tShirt0RequestId =
|
||||
$sp->addRequest({ donorId => $drapperId, requestTypeId => $tShirt0RequestTypeId,
|
||||
requestConfigurationId => $tShirt0Data->{$tShirt0RequestTypeId}{'MenL'} }); }
|
||||
|
|
Loading…
Reference in a new issue