Use dedicated endpoint for commit message retrieval for revisions
Instead of using GET /changes/<number>/edit:message for both edits and normal revisions, differentiate on the client side and use dedicated endpoints. Change-Id: I7e9786c0b828cca9b0aa76bab43f10d223334d86
This commit is contained in:
committed by
David Pursehouse
parent
8ffdfc1243
commit
25ad15e451
@@ -39,7 +39,6 @@ import com.google.gerrit.extensions.restapi.RestView;
|
||||
import com.google.gerrit.reviewdb.client.Change;
|
||||
import com.google.gerrit.reviewdb.client.PatchSet;
|
||||
import com.google.gerrit.reviewdb.server.ReviewDb;
|
||||
import com.google.gerrit.server.ChangeUtil;
|
||||
import com.google.gerrit.server.edit.ChangeEdit;
|
||||
import com.google.gerrit.server.edit.ChangeEditJson;
|
||||
import com.google.gerrit.server.edit.ChangeEditModifier;
|
||||
@@ -47,7 +46,6 @@ import com.google.gerrit.server.edit.ChangeEditUtil;
|
||||
import com.google.gerrit.server.edit.UnchangedCommitMessageException;
|
||||
import com.google.gerrit.server.patch.PatchListNotAvailableException;
|
||||
import com.google.gerrit.server.project.InvalidChangeOperationException;
|
||||
import com.google.gerrit.server.project.NoSuchChangeException;
|
||||
import com.google.gwtorm.server.OrmException;
|
||||
import com.google.inject.Inject;
|
||||
import com.google.inject.Provider;
|
||||
@@ -492,28 +490,22 @@ public class ChangeEdits implements
|
||||
|
||||
@Singleton
|
||||
public static class GetMessage implements RestReadView<ChangeResource> {
|
||||
private final ChangeUtil changeUtil;
|
||||
private final ChangeEditUtil editUtil;
|
||||
|
||||
@Inject
|
||||
GetMessage(ChangeUtil changeUtil,
|
||||
ChangeEditUtil editUtil) {
|
||||
this.changeUtil = changeUtil;
|
||||
GetMessage(ChangeEditUtil editUtil) {
|
||||
this.editUtil = editUtil;
|
||||
}
|
||||
|
||||
@Override
|
||||
public BinaryResult apply(ChangeResource rsrc) throws AuthException, IOException,
|
||||
OrmException, NoSuchChangeException {
|
||||
public BinaryResult apply(ChangeResource rsrc) throws AuthException,
|
||||
IOException, ResourceNotFoundException {
|
||||
Optional<ChangeEdit> edit = editUtil.byChange(rsrc.getChange());
|
||||
// TODO(davido): Clean this up by returning 404 when edit doesn't exist.
|
||||
// Client should call GET /changes/{id}/revisions/current/commit in this
|
||||
// case; or, to be consistent with GET content logic, the client could
|
||||
// call directly the right endpoint.
|
||||
String m = edit.isPresent()
|
||||
? edit.get().getEditCommit().getFullMessage()
|
||||
: changeUtil.getMessage(rsrc.getChange());
|
||||
return BinaryResult.create(m).base64();
|
||||
if (edit.isPresent()) {
|
||||
return BinaryResult.create(
|
||||
edit.get().getEditCommit().getFullMessage()).base64();
|
||||
}
|
||||
throw new ResourceNotFoundException();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user