]> git.donarmstrong.com Git - debbugs.git/blobdiff - Debbugs/SOAP.pm
* Fix get_status([bug => NN]) hashref return
[debbugs.git] / Debbugs / SOAP.pm
index 9b14575ccdf94a7576234d2f2ded5ee97a19be7c..2ca5b21261e4d355a699493c1dcccddc3561c4fe 100644 (file)
@@ -115,7 +115,6 @@ sub get_status {
 
      if (@bugs == 1 and
         ref($bugs[0]) and
-        @{$bugs[0]} <= 1 and
         (@{$bugs[0]} == 0 or
          ref($bugs[0][0]) or
          looks_like_number($bugs[0][0])
@@ -128,8 +127,10 @@ sub get_status {
          my $bug_status;
          if (ref($bug)) {
               my %param = __collapse_params(@{$bug});
+              next unless defined $param{bug};
+              $bug = $param{bug};
               $bug_status = get_bug_status(map {(exists $param{$_})?($_,$param{$_}):()}
-                                           qw(bug dist arch bugusertags sourceversions version)
+                                           qw(bug dist arch bugusertags sourceversions version indicatesource)
                                           );
          }
          else {
@@ -256,6 +257,89 @@ sub get_bug_log{
      return \@messages;
 }
 
+=head2 binary_to_source
+
+     binary_to_source($binary_name,$binary_version,$binary_architecture)
+
+Returns a reference to the source package name and version pair
+corresponding to a given binary package name, version, and
+architecture. If undef is passed as the architecture, returns a list
+of references to all possible pairs of source package names and
+versions for all architectures, with any duplicates removed.
+
+(This function corresponds to L<Debbugs::Packages::binarytosource>)
+
+=cut
+
+sub binary_to_source{
+     my $VERSION = __populate_version(pop);
+
+     return [binarytosource(@_)];
+}
+
+=head2 source_to_binary
+
+     source_to_binary($source_name,$source_version);
+
+Returns a reference to an array of references to binary package name,
+version, and architecture corresponding to a given source package name
+and version. In the case that the given name and version cannot be
+found, the unversioned package to source map is consulted, and the
+architecture is not returned.
+
+(This function corresponds to L<Debbugs::Packages::sourcetobinary>)
+
+=cut
+
+sub source_to_binary {
+     my $VERSION = __populate_version(pop);
+
+     return [source_to_binary(@_)];
+}
+
+=head2 get_versions
+
+     get_version(package=>'foopkg',
+                 dist => 'unstable',
+                 arch => 'i386',
+                );
+
+Returns a list of the versions of package in the distributions and
+architectures listed. This routine only returns unique values.
+
+=over
+
+=item package -- package to return list of versions
+
+=item dist -- distribution (unstable, stable, testing); can be an
+arrayref
+
+=item arch -- architecture (i386, source, ...); can be an arrayref
+
+=item time -- returns a version=>time hash at which the newest package
+matching this version was uploaded
+
+=item source -- returns source/version instead of just versions
+
+=item no_source_arch -- discards the source architecture when arch is
+not passed. [Used for finding the versions of binary packages only.]
+Defaults to 0, which does not discard the source architecture. (This
+may change in the future, so if you care, please code accordingly.)
+
+=item return_archs -- returns a version=>[archs] hash indicating which
+architectures are at which versions.
+
+=back
+
+This function correponds to L<Debbugs::Packages::get_versions>
+
+=cut
+
+sub get_versions{
+     my $VERSION = __populate_version(pop);
+
+     return scalar get_versions(@_);
+}
 
 =head1 VERSION COMPATIBILITY