Merge changes Id5a40c39,Ifd32fd7f
* changes: Remove duplication of DELETE endpoint with POST for draft changes Add support for plugin REST endpoints without view names
This commit is contained in:
@@ -34,7 +34,8 @@ import com.google.inject.Provider;
|
||||
|
||||
import java.io.IOException;
|
||||
|
||||
public class DeleteDraftChange implements RestModifyView<ChangeResource, Input> {
|
||||
public class DeleteDraftChange implements
|
||||
RestModifyView<ChangeResource, Input>, UiAction<ChangeResource> {
|
||||
public static class Input {
|
||||
}
|
||||
|
||||
@@ -74,26 +75,16 @@ public class DeleteDraftChange implements RestModifyView<ChangeResource, Input>
|
||||
return Response.none();
|
||||
}
|
||||
|
||||
static class Action extends DeleteDraftChange implements UiAction<ChangeResource> {
|
||||
@Inject
|
||||
public Action(Provider<ReviewDb> dbProvider,
|
||||
GitRepositoryManager gitManager,
|
||||
GitReferenceUpdated gitRefUpdated,
|
||||
PatchSetInfoFactory patchSetInfoFactory) {
|
||||
super(dbProvider, gitManager, gitRefUpdated, patchSetInfoFactory);
|
||||
}
|
||||
|
||||
@Override
|
||||
public UiAction.Description getDescription(ChangeResource rsrc) {
|
||||
try {
|
||||
return new UiAction.Description()
|
||||
.setTitle(String.format("Delete Draft Change %d",
|
||||
rsrc.getChange().getChangeId()))
|
||||
.setVisible(rsrc.getChange().getStatus() == Status.DRAFT
|
||||
&& rsrc.getControl().canDeleteDraft(dbProvider.get()));
|
||||
} catch (OrmException e) {
|
||||
throw new IllegalStateException(e);
|
||||
}
|
||||
@Override
|
||||
public UiAction.Description getDescription(ChangeResource rsrc) {
|
||||
try {
|
||||
return new UiAction.Description()
|
||||
.setTitle(String.format("Delete Draft Change %d",
|
||||
rsrc.getChange().getChangeId()))
|
||||
.setVisible(rsrc.getChange().getStatus() == Status.DRAFT
|
||||
&& rsrc.getControl().canDeleteDraft(dbProvider.get()));
|
||||
} catch (OrmException e) {
|
||||
throw new IllegalStateException(e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -38,7 +38,8 @@ import com.google.inject.Provider;
|
||||
|
||||
import java.io.IOException;
|
||||
|
||||
public class DeleteDraftPatchSet implements RestModifyView<RevisionResource, Input> {
|
||||
public class DeleteDraftPatchSet implements RestModifyView<RevisionResource, Input>,
|
||||
UiAction<RevisionResource> {
|
||||
public static class Input {
|
||||
}
|
||||
|
||||
@@ -80,6 +81,24 @@ public class DeleteDraftPatchSet implements RestModifyView<RevisionResource, Inp
|
||||
return Response.none();
|
||||
}
|
||||
|
||||
@Override
|
||||
public UiAction.Description getDescription(RevisionResource rsrc) {
|
||||
PatchSet.Id current = rsrc.getChange().currentPatchSetId();
|
||||
try {
|
||||
int psCount = dbProvider.get().patchSets()
|
||||
.byChange(rsrc.getChange().getId()).toList().size();
|
||||
return new UiAction.Description()
|
||||
.setTitle(String.format("Delete Draft Revision %d",
|
||||
rsrc.getPatchSet().getPatchSetId()))
|
||||
.setVisible(rsrc.getPatchSet().isDraft()
|
||||
&& rsrc.getPatchSet().getId().equals(current)
|
||||
&& rsrc.getControl().canDeleteDraft(dbProvider.get())
|
||||
&& psCount > 1);
|
||||
} catch (OrmException e) {
|
||||
throw new IllegalStateException(e);
|
||||
}
|
||||
}
|
||||
|
||||
private void deleteDraftPatchSet(PatchSet patchSet, Change change)
|
||||
throws ResourceNotFoundException, OrmException, IOException {
|
||||
try {
|
||||
@@ -139,32 +158,4 @@ public class DeleteDraftPatchSet implements RestModifyView<RevisionResource, Inp
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
static class Action extends DeleteDraftPatchSet implements UiAction<RevisionResource> {
|
||||
@Inject
|
||||
public Action(Provider<ReviewDb> dbProvider,
|
||||
GitRepositoryManager gitManager,
|
||||
GitReferenceUpdated gitRefUpdated,
|
||||
PatchSetInfoFactory patchSetInfoFactory) {
|
||||
super(dbProvider, gitManager, gitRefUpdated, patchSetInfoFactory);
|
||||
}
|
||||
|
||||
@Override
|
||||
public UiAction.Description getDescription(RevisionResource rsrc) {
|
||||
PatchSet.Id current = rsrc.getChange().currentPatchSetId();
|
||||
try {
|
||||
int psCount = dbProvider.get().patchSets()
|
||||
.byChange(rsrc.getChange().getId()).toList().size();
|
||||
return new UiAction.Description()
|
||||
.setTitle(String.format("Delete Draft Revision %d",
|
||||
rsrc.getPatchSet().getPatchSetId()))
|
||||
.setVisible(rsrc.getPatchSet().isDraft()
|
||||
&& rsrc.getPatchSet().getId().equals(current)
|
||||
&& rsrc.getControl().canDeleteDraft(dbProvider.get())
|
||||
&& psCount > 1);
|
||||
} catch (OrmException e) {
|
||||
throw new IllegalStateException(e);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -50,7 +50,6 @@ public class Module extends RestApiModule {
|
||||
put(CHANGE_KIND, "topic").to(PutTopic.class);
|
||||
delete(CHANGE_KIND, "topic").to(PutTopic.class);
|
||||
delete(CHANGE_KIND).to(DeleteDraftChange.class);
|
||||
post(CHANGE_KIND, "delete").to(DeleteDraftChange.Action.class);
|
||||
post(CHANGE_KIND, "abandon").to(Abandon.class);
|
||||
post(CHANGE_KIND, "publish").to(Publish.CurrentRevision.class);
|
||||
post(CHANGE_KIND, "restore").to(Restore.class);
|
||||
@@ -68,7 +67,6 @@ public class Module extends RestApiModule {
|
||||
post(REVISION_KIND, "cherrypick").to(CherryPick.class);
|
||||
get(REVISION_KIND, "commit").to(GetCommit.class);
|
||||
delete(REVISION_KIND).to(DeleteDraftPatchSet.class);
|
||||
post(REVISION_KIND, "delete").to(DeleteDraftPatchSet.Action.class);
|
||||
get(REVISION_KIND, "mergeable").to(Mergeable.class);
|
||||
post(REVISION_KIND, "publish").to(Publish.class);
|
||||
get(REVISION_KIND, "related").to(GetRelated.class);
|
||||
|
Reference in New Issue
Block a user