1 # This module is part of debbugs, and is released
2 # under the terms of the GPL version 2, or any later version at your option.
3 # See the file README and COPYING for more information.
4 # Copyright 2007 by Don Armstrong <don@donarmstrong.com>.
26 use vars qw($DEBUG %EXPORT_TAGS @EXPORT_OK @EXPORT);
27 use base qw(Exporter SOAP::Server::Parameters);
30 $DEBUG = 0 unless defined $DEBUG;
36 Exporter::export_ok_tags();
37 $EXPORT_TAGS{all} = [@EXPORT_OK];
42 use Debbugs::Status qw(get_bug_status);
43 use Debbugs::Common qw(make_list);
44 use Storable qw(nstore retrieve);
47 our $CURRENT_VERSION = 1;
48 our %DEBBUGS_SOAP_COOKIES;
53 my %ut = get_usertag('don@donarmstrong.com','this-bug-sucks','eat-this-bug');
55 Returns a hashref of bugs which have the specified usertags for the
60 use Debbugs::User qw(read_usertags);
63 my $VERSION = __populate_version(pop);
64 my ($self,$email, @tags) = @_;
66 read_usertags(\%ut, $email);
68 @tags{@tags} = (1) x @tags;
70 for my $tag (keys %ut) {
71 delete $ut{$tag} unless exists $tags{$tag};
82 my @statuses = get_status(@bugs);
84 Returns an arrayref of hashrefs which output the status for specific
87 See L<Debbugs::Status::get_bug_status> for details.
92 my $VERSION = __populate_version(pop);
93 my ($self,@bugs) = @_;
94 @bugs = make_list(@bugs);
98 my $bug_status = get_bug_status(bug => $bug);
99 if (defined $bug_status and keys %{$bug_status} > 0) {
100 $status{$bug} = $bug_status;
103 # __prepare_response($self);
109 my @bugs = get_bugs(...);
111 See L<Debbugs::Bugs::get_bugs> for details.
115 use Debbugs::Bugs qw();
118 my $VERSION = __populate_version(pop);
119 my ($self,@params) = @_;
121 while (my ($key,$value) = splice @params,0,2) {
122 push @{$params{$key}}, $value;
125 @bugs = Debbugs::Bugs::get_bugs(%params);
130 =head1 VERSION COMPATIBILITY
132 The functionality provided by the SOAP interface will change over time.
134 To the greatest extent possible, we will attempt to provide backwards
135 compatibility with previous versions; however, in order to have
136 backwards compatibility, you need to specify the version with which
141 sub __populate_version{
143 return $request->{___debbugs_soap_version};