summaryrefslogtreecommitdiffstats
path: root/Bugzilla/Whine.pm
diff options
context:
space:
mode:
authorEric Black <eblack@higherone.com>2010-07-06 02:16:04 +0200
committerMax Kanat-Alexander <mkanat@bugzilla.org>2010-07-06 02:16:04 +0200
commit4e7c28de087834ba8fca4350a01798c1f9732f23 (patch)
tree32205916e1ac14cc1cb5737c8641cfcf33b27b72 /Bugzilla/Whine.pm
parenta0a2aa902a5be9a178d997d19d9fd6bd75e2edbb (diff)
downloadbugzilla-4e7c28de087834ba8fca4350a01798c1f9732f23.tar.gz
bugzilla-4e7c28de087834ba8fca4350a01798c1f9732f23.tar.xz
Bug 530468: Create a read-only Bugzilla::Whine object for whine events and
have editwhines.cgi use it r=mkanat, a=mkanat
Diffstat (limited to 'Bugzilla/Whine.pm')
-rw-r--r--Bugzilla/Whine.pm132
1 files changed, 132 insertions, 0 deletions
diff --git a/Bugzilla/Whine.pm b/Bugzilla/Whine.pm
new file mode 100644
index 000000000..73b0802b1
--- /dev/null
+++ b/Bugzilla/Whine.pm
@@ -0,0 +1,132 @@
+# -*- Mode: perl; indent-tabs-mode: nil -*-
+#
+# The contents of this file are subject to the Mozilla Public
+# License Version 1.1 (the "License"); you may not use this file
+# except in compliance with the License. You may obtain a copy of
+# the License at http://www.mozilla.org/MPL/
+#
+# Software distributed under the License is distributed on an "AS
+# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
+# implied. See the License for the specific language governing
+# rights and limitations under the License.
+#
+# The Original Code is the Bugzilla Bug Tracking System.
+#
+# The Initial Developer of the Original Code is Eric Black.
+# Portions created by the Initial Developer are Copyright (C) 2010
+# Eric Black. All Rights Reserved.
+#
+# Contributor(s): Eric Black <black.eric@gmail.com>
+
+use strict;
+
+package Bugzilla::Whine;
+
+use base 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