]> git.donarmstrong.com Git - debbugs.git/blobdiff - Debbugs/SOAP.pm
update documentation for get_usertag
[debbugs.git] / Debbugs / SOAP.pm
index f9a44566467622e8af576c87d2641f3d7e495049..ed669a125f64d9c6768efedf6caa8327f384250f 100644 (file)
@@ -52,10 +52,13 @@ our %DEBBUGS_SOAP_COOKIES;
 =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);
@@ -108,10 +111,14 @@ sub get_status {
 =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
 
@@ -120,6 +127,11 @@ use Debbugs::Bugs qw();
 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
@@ -151,9 +163,9 @@ sub newest_bugs{
      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
 
@@ -177,12 +189,15 @@ the following
  ]
 
 
+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');
@@ -208,9 +223,8 @@ sub get_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,