@RequestMapping(value = "/{eventId}/content", method = GET)
public void getSingleEventContent(@PathVariable("eventId") String eventId)
throws IOException, URISyntaxException, UnknownSubscriptionException, ResourceNotAvailableException {
Optional<EventHolder> holder = retrieveSingleEvent(eventId);
if (!holder.isPresent()) {
throw new ResourceNotAvailableException("Could not find event");
}
Optional<Streamable> streamable = holder.get().streamableObject();
if (streamable.isPresent()) {
Streamable obj = streamable.get();
HttpServletResponse resp = requestUtils.resolveResponseObject();
String ct = obj.getContentType();
resp.setContentType(ct);
resp.setStatus(200);
InputStream is = obj.asStream();
try (ServletOutputStream os = resp.getOutputStream()) {
byte[] buffer = new byte[1024];
int count;
while ((count = is.read(buffer)) > 0) {
os.write(buffer, 0, count);
os.flush();
}
}
}
else {
throw new ResourceNotAvailableException("No content for this event available");
}
}