summaryrefslogtreecommitdiffstats
path: root/gerrit-server/src/main/java/com/google/gerrit/server/change/DeleteAssignee.java
diff options
context:
space:
mode:
Diffstat (limited to 'gerrit-server/src/main/java/com/google/gerrit/server/change/DeleteAssignee.java')
-rw-r--r--gerrit-server/src/main/java/com/google/gerrit/server/change/DeleteAssignee.java131
1 files changed, 0 insertions, 131 deletions
diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/change/DeleteAssignee.java b/gerrit-server/src/main/java/com/google/gerrit/server/change/DeleteAssignee.java
deleted file mode 100644
index d3feb31c36..0000000000
--- a/gerrit-server/src/main/java/com/google/gerrit/server/change/DeleteAssignee.java
+++ /dev/null
@@ -1,131 +0,0 @@
-// Copyright (C) 2016 The Android Open Source Project
-//
-// Licensed under the Apache License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-package com.google.gerrit.server.change;
-
-import com.google.gerrit.common.TimeUtil;
-import com.google.gerrit.extensions.common.AccountInfo;
-import com.google.gerrit.extensions.restapi.Response;
-import com.google.gerrit.extensions.restapi.RestApiException;
-import com.google.gerrit.reviewdb.client.Account;
-import com.google.gerrit.reviewdb.client.Change;
-import com.google.gerrit.reviewdb.client.ChangeMessage;
-import com.google.gerrit.reviewdb.server.ReviewDb;
-import com.google.gerrit.server.ChangeMessagesUtil;
-import com.google.gerrit.server.IdentifiedUser;
-import com.google.gerrit.server.account.AccountLoader;
-import com.google.gerrit.server.change.DeleteAssignee.Input;
-import com.google.gerrit.server.extensions.events.AssigneeChanged;
-import com.google.gerrit.server.notedb.ChangeUpdate;
-import com.google.gerrit.server.permissions.ChangePermission;
-import com.google.gerrit.server.permissions.PermissionBackendException;
-import com.google.gerrit.server.update.BatchUpdate;
-import com.google.gerrit.server.update.BatchUpdateOp;
-import com.google.gerrit.server.update.ChangeContext;
-import com.google.gerrit.server.update.Context;
-import com.google.gerrit.server.update.RetryHelper;
-import com.google.gerrit.server.update.RetryingRestModifyView;
-import com.google.gerrit.server.update.UpdateException;
-import com.google.gwtorm.server.OrmException;
-import com.google.inject.Inject;
-import com.google.inject.Provider;
-import com.google.inject.Singleton;
-
-@Singleton
-public class DeleteAssignee
- extends RetryingRestModifyView<ChangeResource, Input, Response<AccountInfo>> {
- public static class Input {}
-
- private final ChangeMessagesUtil cmUtil;
- private final Provider<ReviewDb> db;
- private final AssigneeChanged assigneeChanged;
- private final IdentifiedUser.GenericFactory userFactory;
- private final AccountLoader.Factory accountLoaderFactory;
-
- @Inject
- DeleteAssignee(
- RetryHelper retryHelper,
- ChangeMessagesUtil cmUtil,
- Provider<ReviewDb> db,
- AssigneeChanged assigneeChanged,
- IdentifiedUser.GenericFactory userFactory,
- AccountLoader.Factory accountLoaderFactory) {
- super(retryHelper);
- this.cmUtil = cmUtil;
- this.db = db;
- this.assigneeChanged = assigneeChanged;
- this.userFactory = userFactory;
- this.accountLoaderFactory = accountLoaderFactory;
- }
-
- @Override
- protected Response<AccountInfo> applyImpl(
- BatchUpdate.Factory updateFactory, ChangeResource rsrc, Input input)
- throws RestApiException, UpdateException, OrmException, PermissionBackendException {
- rsrc.permissions().check(ChangePermission.EDIT_ASSIGNEE);
-
- try (BatchUpdate bu =
- updateFactory.create(db.get(), rsrc.getProject(), rsrc.getUser(), TimeUtil.nowTs())) {
- Op op = new Op();
- bu.addOp(rsrc.getChange().getId(), op);
- bu.execute();
- Account.Id deletedAssignee = op.getDeletedAssignee();
- return deletedAssignee == null
- ? Response.none()
- : Response.ok(accountLoaderFactory.create(true).fillOne(deletedAssignee));
- }
- }
-
- private class Op implements BatchUpdateOp {
- private Change change;
- private Account deletedAssignee;
-
- @Override
- public boolean updateChange(ChangeContext ctx) throws RestApiException, OrmException {
- change = ctx.getChange();
- ChangeUpdate update = ctx.getUpdate(change.currentPatchSetId());
- Account.Id currentAssigneeId = change.getAssignee();
- if (currentAssigneeId == null) {
- return false;
- }
- IdentifiedUser deletedAssigneeUser = userFactory.create(currentAssigneeId);
- deletedAssignee = deletedAssigneeUser.getAccount();
- // noteDb
- update.removeAssignee();
- // reviewDb
- change.setAssignee(null);
- addMessage(ctx, update, deletedAssigneeUser);
- return true;
- }
-
- public Account.Id getDeletedAssignee() {
- return deletedAssignee != null ? deletedAssignee.getId() : null;
- }
-
- private void addMessage(ChangeContext ctx, ChangeUpdate update, IdentifiedUser deletedAssignee)
- throws OrmException {
- ChangeMessage cmsg =
- ChangeMessagesUtil.newMessage(
- ctx,
- "Assignee deleted: " + deletedAssignee.getNameEmail(),
- ChangeMessagesUtil.TAG_DELETE_ASSIGNEE);
- cmUtil.addChangeMessage(ctx.getDb(), update, cmsg);
- }
-
- @Override
- public void postUpdate(Context ctx) throws OrmException {
- assigneeChanged.fire(change, ctx.getAccount(), deletedAssignee, ctx.getWhen());
- }
- }
-}