# This Source Code Form is subject to the terms of the Mozilla Public # License, v. 2.0. If a copy of the MPL was not distributed with this # file, You can obtain one at http://mozilla.org/MPL/2.0/. # # This Source Code Form is "Incompatible With Secondary Licenses", as # defined by the Mozilla Public License, v. 2.0. package Bugzilla::Whine; use 5.10.1; use strict; use warnings; use parent qw(Bugzilla::Object); use Bugzilla::Constants; use Bugzilla::Error; use Bugzilla::User; use Bugzilla::Util; use Bugzilla::Whine::Schedule; use Bugzilla::Whine::Query; ############# # Constants # ############# use constant DB_TABLE => 'whine_events'; use constant DB_COLUMNS => qw( id owner_userid subject body mailifnobugs ); use constant LIST_ORDER => 'id'; #################### # Simple Accessors # #################### sub subject { return $_[0]->{'subject'}; } sub body { return $_[0]->{'body'}; } sub mail_if_no_bugs { return $_[0]->{'mailifnobugs'}; } sub user { my ($self) = @_; return $self->{user} if defined $self->{user}; $self->{user} = new Bugzilla::User($self->{'owner_userid'}); return $self->{user}; } 1; __END__ =head1 NAME Bugzilla::Whine - A Whine event =head1 SYNOPSIS use Bugzilla::Whine; my $event = new Bugzilla::Whine($event_id); my $subject = $event->subject; my $body = $event->body; my $mailifnobugs = $event->mail_if_no_bugs; my $user = $event->user; =head1 DESCRIPTION This module exists to represent a whine event that has been saved to the database. This is an implementation of L<Bugzilla::Object>, and so has all the same methods available as L<Bugzilla::Object>, in addition to what is documented below. =head1 METHODS =head2 Constructors =over =item C<new> Does not accept a bare C<name> argument. Instead, accepts only an id. See also: L<Bugzilla::Object/new>. =back =head2 Accessors These return data about the object, without modifying the object. =over =item C<subject> Returns the subject of the whine event. =item C<body> Returns the body of the whine event. =item C<mail_if_no_bugs> Returns a numeric 1(C<true>) or 0(C<false>) to represent whether this whine event object is supposed to be mailed even if there are no bugs returned by the query. =item C<user> Returns the L<Bugzilla::User> object for the owner of the L<Bugzilla::Whine> event. =back