summaryrefslogtreecommitdiffstats
path: root/Bugzilla/WebService
diff options
context:
space:
mode:
authorDylan William Hardison <dylan@hardison.net>2014-05-28 17:04:37 +0200
committerDylan William Hardison <dylan@hardison.net>2014-05-28 17:04:37 +0200
commit7ea36c899372e8e113935ff036e992a819d786b6 (patch)
tree5a5e09763995a8c783ee98cefe8a5edb1e5eee26 /Bugzilla/WebService
parentb6b83df873a1509797235738e00f9e6307eca876 (diff)
downloadbugzilla-7ea36c899372e8e113935ff036e992a819d786b6.tar.gz
bugzilla-7ea36c899372e8e113935ff036e992a819d786b6.tar.xz
Revert previous commit to re-apply with the schema change in a separate commit.
Diffstat (limited to 'Bugzilla/WebService')
-rw-r--r--Bugzilla/WebService/BugUserLastVisit.pm208
-rw-r--r--Bugzilla/WebService/Constants.pm1
-rw-r--r--Bugzilla/WebService/Server/REST.pm1
-rw-r--r--Bugzilla/WebService/Server/REST/Resources/BugUserLastVisit.pm52
4 files changed, 0 insertions, 262 deletions
diff --git a/Bugzilla/WebService/BugUserLastVisit.pm b/Bugzilla/WebService/BugUserLastVisit.pm
deleted file mode 100644
index 71b637fef..000000000
--- a/Bugzilla/WebService/BugUserLastVisit.pm
+++ /dev/null
@@ -1,208 +0,0 @@
-# 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::WebService::BugUserLastVisit;
-
-use 5.10.1;
-use strict;
-
-use parent qw(Bugzilla::WebService);
-
-use Bugzilla::Bug;
-use Bugzilla::Error;
-use Bugzilla::WebService::Util qw( validate filter );
-use Bugzilla::Constants;
-
-sub update {
- my ($self, $params) = validate(@_, 'ids');
- my $user = Bugzilla->user;
- my $dbh = Bugzilla->dbh;
-
- $user->login(LOGIN_REQUIRED);
-
- my $ids = $params->{ids} // [];
- ThrowCodeError('param_required', { param => 'ids' }) unless @$ids;
-
- # Cache permissions for bugs. This highly reduces the number of calls to the
- # DB. visible_bugs() is only able to handle bug IDs, so we have to skip
- # aliases.
- $user->visible_bugs([grep /^[0-9]$/, @$ids]);
-
- $dbh->bz_start_transaction();
- my @results;
- my $last_visit_ts = $dbh->selectrow_array('SELECT NOW()');
- foreach my $bug_id (@$ids) {
- my $bug = Bugzilla::Bug->check({ id => $bug_id, cache => 1 });
-
- ThrowUserError('user_not_involved', { bug_id => $bug->id })
- unless $user->is_involved_in_bug($bug);
-
- $bug->update_user_last_visit($user, $last_visit_ts);
-
- push(
- @results,
- $self->_bug_user_last_visit_to_hash(
- $bug, $last_visit_ts, $params
- ));
- }
- $dbh->bz_commit_transaction();
-
- return \@results;
-}
-
-sub get {
- my ($self, $params) = validate(@_, 'ids');
- my $user = Bugzilla->user;
- my $ids = $params->{ids};
-
- $user->login(LOGIN_REQUIRED);
-
- if ($ids) {
- # Cache permissions for bugs. This highly reduces the number of calls to
- # the DB. visible_bugs() is only able to handle bug IDs, so we have to
- # skip aliases.
- $user->visible_bugs([grep /^[0-9]$/, @$ids]);
- }
-
- my @last_visits = @{ $user->last_visits };
-
- if ($ids) {
- # remove bugs that we arn't interested in if ids is passed in.
- my %id_set = map { ($_ => 1) } @$ids;
- @last_visits = grep { $id_set{ $_->bug_id } } @last_visits;
- }
-
- return [
- map {
- $self->_bug_user_last_visit_to_hash($_->bug_id, $_->last_visit_ts,
- $params)
- } @last_visits
- ];
-}
-
-sub _bug_user_last_visit_to_hash {
- my ($self, $bug_id, $last_visit_ts, $params) = @_;
-
- my %result = (id => $self->type('int', $bug_id),
- last_visit_ts => $self->type('dateTime', $last_visit_ts));
-
- return filter($params, \%result);
-}
-
-1;
-
-__END__
-=head1 NAME
-
-Bugzilla::WebService::BugUserLastVisit - Find and Store the last time a user
-visited a bug.
-
-=head1 METHODS
-
-See L<Bugzilla::WebService> for a description of how parameters are passed,
-and what B<STABLE>, B<UNSTABLE>, and B<EXPERIMENTAL> mean.
-
-Although the data input and output is the same for JSONRPC, XMLRPC and REST,
-the directions for how to access the data via REST is noted in each method
-where applicable.
-
-=head2 update
-
-B<EXPERIMENTAL>
-
-=over
-
-=item B<Description>
-
-Update the last visit time for the specified bug and current user.
-
-=item B<REST>
-
-To add a single bug id:
-
- POST /rest/bug_user_last_visit/<bug-id>
-
-Tp add one or more bug ids at once:
-
- POST /rest/bug_user_last_visit
-
-The returned data format is the same as below.
-
-=item B<Params>
-
-=over
-
-=item C<ids> (array) - One or more bug ids to add.
-
-=back
-
-=item B<Returns>
-
-=over
-
-=item C<array> - An array of hashes containing the following:
-
-=over
-
-=item C<id> - (int) The bug id.
-
-=item C<last_visit_ts> - (string) The timestamp the user last visited the bug.
-
-=back
-
-=back
-
-=back
-
-=head2 get
-
-B<EXPERIMENTAL>
-
-=over
-
-=item B<Description>
-
-Get the last visited timestamp for one or more specified bug ids or get a
-list of the last 20 visited bugs and their timestamps.
-
-=item B<REST>
-
-To return the last visited timestamp for a single bug id:
-
-GET /rest/bug_visit/<bug-id>
-
-To return more than one bug timestamp or the last 20:
-
-GET /rest/bug_visit
-
-The returned data format is the same as below.
-
-=item B<Params>
-
-=over
-
-=item C<ids> (integer) - One or more optional bug ids to get.
-
-=back
-
-=item B<Returns>
-
-=over
-
-=item C<array> - An array of hashes containing the following:
-
-=over
-
-=item C<id> - (int) The bug id.
-
-=item C<last_visit_ts> - (string) The timestamp the user last visited the bug.
-
-=back
-
-=back
-
-=back
diff --git a/Bugzilla/WebService/Constants.pm b/Bugzilla/WebService/Constants.pm
index c6bbeb9bd..c2a6d855c 100644
--- a/Bugzilla/WebService/Constants.pm
+++ b/Bugzilla/WebService/Constants.pm
@@ -277,7 +277,6 @@ sub WS_DISPATCH {
'User' => 'Bugzilla::WebService::User',
'Product' => 'Bugzilla::WebService::Product',
'Group' => 'Bugzilla::WebService::Group',
- 'BugUserLastVisit' => 'Bugzilla::WebService::BugUserLastVisit',
%hook_dispatch
};
return $dispatch;
diff --git a/Bugzilla/WebService/Server/REST.pm b/Bugzilla/WebService/Server/REST.pm
index 96e4b3179..5457b41db 100644
--- a/Bugzilla/WebService/Server/REST.pm
+++ b/Bugzilla/WebService/Server/REST.pm
@@ -27,7 +27,6 @@ use Bugzilla::WebService::Server::REST::Resources::Classification;
use Bugzilla::WebService::Server::REST::Resources::Group;
use Bugzilla::WebService::Server::REST::Resources::Product;
use Bugzilla::WebService::Server::REST::Resources::User;
-use Bugzilla::WebService::Server::REST::Resources::BugUserLastVisit;
use Scalar::Util qw(blessed reftype);
use MIME::Base64 qw(decode_base64);
diff --git a/Bugzilla/WebService/Server/REST/Resources/BugUserLastVisit.pm b/Bugzilla/WebService/Server/REST/Resources/BugUserLastVisit.pm
deleted file mode 100644
index a434d4bef..000000000
--- a/Bugzilla/WebService/Server/REST/Resources/BugUserLastVisit.pm
+++ /dev/null
@@ -1,52 +0,0 @@
-# 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::WebService::Server::REST::Resources::BugUserLastVisit;
-
-use 5.10.1;
-use strict;
-use warnings;
-
-BEGIN {
- *Bugzilla::WebService::BugUserLastVisit::rest_resources = \&_rest_resources;
-}
-
-sub _rest_resources {
- return [
- # bug-id
- qr{^/bug_user_last_visit/(\d+)$}, {
- GET => {
- method => 'get',
- params => sub {
- return { ids => $_[0] };
- },
- },
- POST => {
- method => 'update',
- params => sub {
- return { ids => $_[0] };
- },
- },
- },
- ];
-}
-
-1;
-__END__
-
-=head1 NAME
-
-Bugzilla::Webservice::Server::REST::Resources::BugUserLastVisit - The
-BugUserLastVisit REST API
-
-=head1 DESCRIPTION
-
-This part of the Bugzilla REST API allows you to lookup and update the last time
-a user visited a bug.
-
-See L<Bugzilla::WebService::BugUserLastVisit> for more details on how to use
-this part of the REST API.