| BZ-Client documentation | Contained in the BZ-Client distribution. |
BZ::Client::Bug - Client side representation of a bug in Bugzilla
This class provides methods for accessing and managing bugs in Bugzilla.
my $client = BZ::Client->new("url" => $url,
"user" => $user,
"password" => $password);
my $bugs = BZ::Client::Bug->get($client, $ids);
This section lists the class methods, which are available in this module.
my $bugs = BZ::Client::Bug->get($client, $ids);
Returns a list of bug instances with the given ID's.
my $bug = BZ::Client::Bug->new("id" => $id);
Creates a new instance with the given ID.
my $id = BZ::Client::Bug->create($client, $params);
Creates a new bug and returns the bug ID.
my $bugs = BZ::Client::Bug->search($client, $params);
Searches for bugs matching the given parameters.
This section lists the modules instance methods.
my $id = $bug->id(); $bug->id($id);
Gets or sets the bugs ID.
my $alias = $bug->alias(); $bug->alias($alias);
Gets or sets the bugs alias. If there is no alias or aliases are disabled in Bugzilla, this will be an empty string.
my $assigned_to = $bug->assigned_to(); $bug->assigned_to($assigned_to);
Gets or sets the login name of the user to whom the bug is assigned.
my $component = $bug->component(); $bug->component($component);
Gets or sets the name of the current component of this bug.
my $dateTime = $bug->creation_time(); $bug->creation_time($dateTime);
Gets or sets the date and time, when the bug was created.
my $dupeOf = $bug->dupe_of(); $bug->dupe_of($dupeOf);
Gets or sets the bug ID of the bug that this bug is a duplicate of. If this bug isn't a duplicate of any bug, this will be an empty int.
my $isOpen = $bug->is_open(); $bug->is_open($isOpen);
Gets or sets, whether this bug is closed. The return value, or parameter value is true (1) if this bug is open, false (0) if it is closed.
my $lastChangeTime = $bug->last_change_time(); $bug->last_change_time($lastChangeTime);
Gets or sets the date and time, when the bug was last changed.
my $priority = $bug->priority(); $bug->priority($priority);
Gets or sets the priority of the bug.
my $product = $bug->product(); $bug->product($product);
Gets or sets the name of the product this bug is in.
my $resolution = $bug->resolution(); $bug->resolution($resolution);
Gets or sets the current resolution of the bug, or an empty string if the bug is open.
my $severity = $bug->severity(); $bug->severity($severity);
Gets or sets the current severity of the bug.
my $status = $bug->status(); $bug->status($status);
Gets or sets the current status of the bug.
my $summary = $bug->summary(); $bug->summary($summary);
Gets or sets the summary of this bug.
L<BZ::Client>, L<BZ::Client::API>
| BZ-Client documentation | Contained in the BZ-Client distribution. |
# # BZ::Client::Bug - Client side representation of a bug in Bugzilla # use strict; use warnings "all"; package BZ::Client::Bug; use BZ::Client::API(); our $VERSION = 1.0; our @ISA = qw(BZ::Client::API); sub legal_values($$$) { my($class, $client, $field) = @_; $client->log("debug", "BZ::Client::Bug::legal_values: Asking for $field"); my $params = { "field" => $field }; my $result = $class->api_call($client, "Bug.legal_values", $params); my $values = $result->{"values"}; if (!$values || "ARRAY" ne ref($values)) { $class->error($client, "Invalid reply by server, expected array of values."); } $client->log("debug", "BZ::Client::Bug::legal_values: Got " . join(",", @$values)); return $values; } sub get($$;$) { my($class, $client, $ids, $permissive) = @_; $client->log("debug", "BZ::Client::Bug::get: Asking for " . (ref($ids) eq "ARRAY" ? join(",", @$ids) : $ids)); my $params = { ids => $ids }; $params->{"permissive"} = BZ::Client::XMLRPC::boolean::TRUE() if $permissive; my $result = $class->api_call($client, "Bug.get", $params); my $bugs = $result->{"bugs"}; if (!$bugs || "ARRAY" ne ref($bugs)) { $class->error($client, "Invalid reply by server, expected array of bugs."); } my @result; foreach my $bug (@$bugs) { push(@result, BZ::Client::Bug->new(%$bug)); } $client->log("debug", "BZ::Client::Bug::get: Got " . scalar(@result)); return \@result; } sub search($$$) { my($class, $client, $params) = @_; $client->log("debug", "BZ::Client::Bug::search: Searching"); my $result = $class->api_call($client, "Bug.search", $params); my $bugs = $result->{"bugs"}; if (!$bugs || "ARRAY" ne ref($bugs)) { $class->error($client, "Invalid reply by server, expected array of bugs."); } my @result; foreach my $bug (@$bugs) { push(@result, BZ::Client::Bug->new(%$bug)); } $client->log("debug", "BZ::Client::Bug::search: Got " . scalar(@result)); return \@result; } sub create($$$) { my($class, $client, $params) = @_; $client->log("debug", "BZ::Client::Bug::create: Creating"); my $result = $class->api_call($client, "Bug.create", $params); my $id = $result->{"id"}; if (!$id) { $class->error($client, "Invalid reply by server, expected bug ID."); } return $id; } sub new($@) { my $class = shift; my $self = { @_ }; bless($self, ref($class) || $class); return $self; } sub id($;$) { my $self = shift; if (@_) { $self->{"id"} = shift; } else { return $self->{"id"} } } sub alias($;$) { my $self = shift; if (@_) { $self->{"alias"} = shift; } else { return $self->{"alias"} } } sub assigned_to($;$) { my $self = shift; if (@_) { $self->{"assigned_to"} = shift; } else { return $self->{"assigned_to"} } } sub component($;$) { my $self = shift; if (@_) { $self->{"component"} = shift; } else { return $self->{"component"} } } sub creation_time($;$) { my $self = shift; if (@_) { $self->{"creation_time"} = shift; } else { return $self->{"creation_time"} } } sub dupe_of($;$) { my $self = shift; if (@_) { $self->{"dupe_of"} = shift; } else { return $self->{"dupe_of"} } } sub internals($;$) { my $self = shift; if (@_) { $self->{"internals"} = shift; } else { return $self->{"internals"} } } sub is_open($;$) { my $self = shift; if (@_) { $self->{"is_open"} = shift; } else { return $self->{"is_open"} } } sub last_change_time($;$) { my $self = shift; if (@_) { $self->{"last_change_time"} = shift; } else { return $self->{"last_change_time"} } } sub priority($;$) { my $self = shift; if (@_) { $self->{"priority"} = shift; } else { return $self->{"priority"} } } sub product($;$) { my $self = shift; if (@_) { $self->{"product"} = shift; } else { return $self->{"product"} } } sub resolution($;$) { my $self = shift; if (@_) { $self->{"resolution"} = shift; } else { return $self->{"resolution"} } } sub severity($;$) { my $self = shift; if (@_) { $self->{"severity"} = shift; } else { return $self->{"severity"} } } sub status($;$) { my $self = shift; if (@_) { $self->{"status"} = shift; } else { return $self->{"status"} } } sub summary($;$) { my $self = shift; if (@_) { $self->{"summary"} = shift; } else { return $self->{"summary"} } } 1;