X-Git-Url: https://git.mdrn.pl/wl-app.git/blobdiff_plain/48b2fe9f7c2dc3d9aeaaa6dbfb27c7da4f3235ff..269195b3729c1bdc22e9053ee4ebca667ea8549d:/Android/r2-streamer/r2-server/src/main/java/org/readium/r2_streamer/server/handler/ManifestHandler.java diff --git a/Android/r2-streamer/r2-server/src/main/java/org/readium/r2_streamer/server/handler/ManifestHandler.java b/Android/r2-streamer/r2-server/src/main/java/org/readium/r2_streamer/server/handler/ManifestHandler.java new file mode 100755 index 0000000..71860a0 --- /dev/null +++ b/Android/r2-streamer/r2-server/src/main/java/org/readium/r2_streamer/server/handler/ManifestHandler.java @@ -0,0 +1,56 @@ +package org.readium.r2_streamer.server.handler; + +import org.readium.r2_streamer.fetcher.EpubFetcher; +import org.readium.r2_streamer.server.ResponseStatus; +import com.fasterxml.jackson.core.JsonGenerationException; +import com.fasterxml.jackson.databind.JsonMappingException; +import com.fasterxml.jackson.databind.ObjectMapper; + +import java.io.IOException; +import java.util.Map; + +import fi.iki.elonen.NanoHTTPD; +import fi.iki.elonen.router.RouterNanoHTTPD; + +/** + * Created by mahavir on 3/2/17. + */ + +public class ManifestHandler extends RouterNanoHTTPD.DefaultHandler { + private static final String TAG = "ManifestHandler"; + + @Override + public String getMimeType() { + return "application/webpub+json"; + } + + @Override + public String getText() { + return ResponseStatus.FAILURE_RESPONSE; + } + + @Override + public NanoHTTPD.Response.IStatus getStatus() { + return NanoHTTPD.Response.Status.OK; + } + + @Override + public NanoHTTPD.Response get(RouterNanoHTTPD.UriResource uriResource, Map urlParams, NanoHTTPD.IHTTPSession session) { + try { + + EpubFetcher fetcher = uriResource.initParameter(EpubFetcher.class); + + ObjectMapper objectMapper = new ObjectMapper(); + String json = objectMapper.writeValueAsString(fetcher.publication); + + return NanoHTTPD.newFixedLengthResponse(getStatus(), getMimeType(), json); + + } catch (JsonGenerationException | JsonMappingException e) { + System.out.println(TAG + " JsonGenerationException | JsonMappingException " + e.toString()); + return NanoHTTPD.newFixedLengthResponse(NanoHTTPD.Response.Status.INTERNAL_ERROR, getMimeType(), ResponseStatus.FAILURE_RESPONSE); + } catch (IOException e) { + System.out.println(TAG + " IOException " + e.toString()); + return NanoHTTPD.newFixedLengthResponse(NanoHTTPD.Response.Status.INTERNAL_ERROR, getMimeType(), ResponseStatus.FAILURE_RESPONSE); + } + } +} \ No newline at end of file