InlineEdit: Add GET /changes/<id>/edit/path%2fto%2ffile REST endpoint

Add REST endpoint to retrieve file content for change edit.

Change-Id: I7df93398d057eba7d22e65b913ca9d68851ba0c9
This commit is contained in:
David Ostrovsky
2014-08-01 19:43:21 +02:00
parent 2830c29fab
commit fd6c175abe
5 changed files with 95 additions and 2 deletions

View File

@@ -310,4 +310,27 @@ public class ChangeEdits implements
return Response.none();
}
}
@Singleton
static class Get implements RestReadView<ChangeEditResource> {
private final FileContentUtil fileContentUtil;
@Inject
Get(FileContentUtil fileContentUtil) {
this.fileContentUtil = fileContentUtil;
}
@Override
public Response<?> apply(ChangeEditResource rsrc)
throws ResourceNotFoundException, IOException {
try {
return Response.ok(fileContentUtil.getContent(
rsrc.getChangeEdit().getChange().getProject(),
rsrc.getChangeEdit().getRevision().get(),
rsrc.getPath()));
} catch (ResourceNotFoundException rnfe) {
return Response.none();
}
}
}
}

View File

@@ -104,6 +104,7 @@ public class Module extends RestApiModule {
child(CHANGE_KIND, "edit").to(ChangeEdits.class);
put(CHANGE_EDIT_KIND, "/").to(ChangeEdits.Put.class);
delete(CHANGE_EDIT_KIND).to(ChangeEdits.DeleteContent.class);
get(CHANGE_EDIT_KIND, "/").to(ChangeEdits.Get.class);
install(new FactoryModule() {
@Override