summaryrefslogtreecommitdiffstats
path: root/extensions/Push/lib/Connector/ReviewBoard/Resource.pm
diff options
context:
space:
mode:
Diffstat (limited to 'extensions/Push/lib/Connector/ReviewBoard/Resource.pm')
-rw-r--r--extensions/Push/lib/Connector/ReviewBoard/Resource.pm38
1 files changed, 38 insertions, 0 deletions
diff --git a/extensions/Push/lib/Connector/ReviewBoard/Resource.pm b/extensions/Push/lib/Connector/ReviewBoard/Resource.pm
new file mode 100644
index 000000000..3f8d434ce
--- /dev/null
+++ b/extensions/Push/lib/Connector/ReviewBoard/Resource.pm
@@ -0,0 +1,38 @@
+# 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::Extension::Push::Connector::ReviewBoard::Resource;
+
+use 5.10.1;
+use strict;
+use warnings;
+
+use URI;
+use Carp qw(croak confess);
+use Scalar::Util qw(blessed);
+
+sub new {
+ my ($class, %params) = @_;
+
+ croak "->new() is a class method" if blessed($class);
+ return bless(\%params, $class);
+}
+
+sub client { $_[0]->{client} }
+
+sub path { confess 'Unimplemented'; }
+
+sub uri {
+ my ($self, @path) = @_;
+
+ my $uri = URI->new($self->client->base_uri);
+ $uri->path(join('/', $self->path, @path) . '/');
+
+ return $uri;
+}
+
+1;