=head2 get_usertag
my %ut = get_usertag('don@donarmstrong.com','this-bug-sucks','eat-this-bug');
+ my %ut = get_usertag('don@donarmstrong.com');
Returns a hashref of bugs which have the specified usertags for the
user set.
+In the second case, returns all of the usertags for the user passed.
+
=cut
use Debbugs::User qw(read_usertags);
=head2 get_bugs
my @bugs = get_bugs(...);
+ my @bugs = get_bugs([...]);
-Returns a list of bugs.
+Returns a list of bugs. In the second case, allows the variable
+parameters to be specified as an array reference in case your favorite
+language's SOAP implementation is craptacular.
-See L<Debbugs::Bugs::get_bugs> for details.
+See L<Debbugs::Bugs::get_bugs> for details on what C<...> actually
+means.
=cut
sub get_bugs{
my $VERSION = __populate_version(pop);
my ($self,@params) = @_;
+ # Because some soap implementations suck and can't handle
+ # variable numbers of arguments we allow get_bugs([]);
+ if (@params == 1 and ref($params[0]) eq 'ARRAY') {
+ @params = @{$params[0]};
+ }
my %params;
# Because some clients can't handle passing arrayrefs, we allow
# options to be specified multiple times
my $VERSION = __populate_version(pop);
my ($self,$num) = @_;
my $newest_bug = Debbugs::bugs::newest_bug();
- @bugs = ($newest_bug - $num + 1) .. $newest_bug;
-}
+ return [($newest_bug - $num + 1) .. $newest_bug];
+}
=head2 get_bug_log
]
+Currently $msg_num is completely ignored.
+
=cut
use Debbugs::Log qw();
use Debbugs::MIME qw(parse);
sub get_bug_log{
+ my $VERSION = __populate_version(pop);
my ($self,$bug,$msg_num) = @_;
my $location = getbuglocation($bug,'log');
next if defined $msg_id and $msg_id =~ /handler\..+\.ack(?:info)?\@/;
my $message = parse($record->{text});
my ($header,$body) = map {join("\n",make_list($_))}
- values %{$message};
- push @messages,{html => $record->{html},
- header => $header,
+ @{$message}{qw(header body)};
+ push @messages,{header => $header,
body => $body,
attachments => [],
msg_num => $current_msg,