This function's parameter hash reference takes the following
optional named parameters:
message_transport_type: method of message sending (e.g. email, sms, etc.)
+ Can be a single string, or an arrayref of strings
borrowernumber : who the message is to be sent
letter_code : type of message being sent (e.g. PASSWORD_RESET)
+ Can be a single string, or an arrayref of strings
message_id : the message_id of the message. In that case the sub will return only 1 result
limit : maximum number of messages to send
push @query_params, $params->{'borrowernumber'};
}
if ( $params->{'letter_code'} ) {
- $statement .= ' AND mq.letter_code = ? ';
- push @query_params, $params->{'letter_code'};
+ my @letter_codes = ref $params->{'letter_code'} eq "ARRAY" ? @{$params->{'letter_code'}} : $params->{'letter_code'};
+ if ( @letter_codes ) {
+ my $q = join( ",", ("?") x @letter_codes );
+ $statement .= " AND mq.letter_code IN ( $q ) ";
+ push @query_params, @letter_codes;
+ }
}
if ( $params->{'type'} ) {
- $statement .= ' AND message_transport_type = ? ';
- push @query_params, $params->{'type'};
+ my @types = ref $params->{'type'} eq "ARRAY" ? @{$params->{'type'}} : $params->{'type'};
+ if ( @types ) {
+ my $q = join( ",", ("?") x @types );
+ $statement .= " AND message_transport_type IN ( $q ) ";
+ push @query_params, @types;
+ }
}
if ( $params->{message_id} ) {
$statement .= ' AND message_id = ?';
my $method = 'LOGIN';
my $help = 0;
my $verbose = 0;
-my $type = q{};
-my $letter_code;
+my @type;
+my @letter_code;
GetOptions(
'u|username:s' => \$username,
'm|method:s' => \$method,
'h|help|?' => \$help,
'v|verbose' => \$verbose,
- 't|type:s' => \$type,
- 'c|code:s' => \$letter_code,
+ 't|type:s' => \@type,
+ 'c|code:s' => \@letter_code,
);
my $usage = << 'ENDUSAGE';
This script has the following parameters :
-u --username: username of mail account
-p --password: password of mail account
- -t --type: If supplied, only processes this type of message ( email, sms )
- -c --code: If supplied, only processes messages with this letter code
+ -t --type: If supplied, only processes this type of message ( email, sms ), repeatable
+ -c --code: If supplied, only processes messages with this letter code, repeatable
-l --limit: The maximum number of messages to process for this run
-m --method: authentication method required by SMTP server (See perldoc Sendmail.pm for supported authentication types.)
-h --help: this message
{
verbose => $verbose,
limit => $limit,
- type => $type,
- letter_code => $letter_code,
+ type => \@type,
+ letter_code => @letter_code,
}
);
}
password => $password,
method => $method,
limit => $limit,
- type => $type,
- letter_code => $letter_code,
+ type => \@type,
+ letter_code => \@letter_code,
}
);