annotate src/main/java/de/mpiwg/itgroup/diva/rest/DivaProxy.java @ 1:2e911857a759

(none)
author jurzua
date Wed, 29 Oct 2014 14:00:28 +0000
parents
children 84d20006521c
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1
jurzua
parents:
diff changeset
1 package de.mpiwg.itgroup.diva.rest;
jurzua
parents:
diff changeset
2
jurzua
parents:
diff changeset
3 import java.io.PrintWriter;
jurzua
parents:
diff changeset
4 import java.util.Map;
jurzua
parents:
diff changeset
5
jurzua
parents:
diff changeset
6 import javax.servlet.http.HttpServletRequest;
jurzua
parents:
diff changeset
7 import javax.servlet.http.HttpServletResponse;
jurzua
parents:
diff changeset
8 import javax.ws.rs.GET;
jurzua
parents:
diff changeset
9 import javax.ws.rs.Path;
jurzua
parents:
diff changeset
10 import javax.ws.rs.PathParam;
jurzua
parents:
diff changeset
11 import javax.ws.rs.Produces;
jurzua
parents:
diff changeset
12 import javax.ws.rs.QueryParam;
jurzua
parents:
diff changeset
13 import javax.ws.rs.core.Context;
jurzua
parents:
diff changeset
14 import javax.ws.rs.core.MediaType;
jurzua
parents:
diff changeset
15 import javax.ws.rs.core.Response;
jurzua
parents:
diff changeset
16
jurzua
parents:
diff changeset
17 import de.mpiwg.itgroup.diva.utils.JSONParam;
jurzua
parents:
diff changeset
18 import de.mpiwg.itgroup.ismi.utils.HTTPUtils;
jurzua
parents:
diff changeset
19 import de.mpiwg.itgroup.ismi.utils.HTTPUtils.HttpResponse;
jurzua
parents:
diff changeset
20 import de.mpiwg.itgroup.ismi.utils.HTTPUtils.HttpStringResponse;
jurzua
parents:
diff changeset
21
jurzua
parents:
diff changeset
22 @Path("/diva/proxy")
jurzua
parents:
diff changeset
23 public class DivaProxy {
jurzua
parents:
diff changeset
24
jurzua
parents:
diff changeset
25 private static String IMG_SERVER = "https://images.rasi.mcgill.ca/fcgi-bin/iipsrv.fcgi?FIF=/data7/srv/images/";
jurzua
parents:
diff changeset
26
jurzua
parents:
diff changeset
27 @GET
jurzua
parents:
diff changeset
28 @Path("/image")
jurzua
parents:
diff changeset
29 @Produces("image/jpeg")
jurzua
parents:
diff changeset
30 public Response
jurzua
parents:
diff changeset
31 image(
jurzua
parents:
diff changeset
32 @QueryParam("f") String f,
jurzua
parents:
diff changeset
33 @QueryParam("w") String w) throws Exception{
jurzua
parents:
diff changeset
34
jurzua
parents:
diff changeset
35 String dirName = getDirName(f);
jurzua
parents:
diff changeset
36
jurzua
parents:
diff changeset
37 String url = IMG_SERVER + dirName + "/" + f + "&WID=" + w + "&CVT=JPG";
jurzua
parents:
diff changeset
38
jurzua
parents:
diff changeset
39
jurzua
parents:
diff changeset
40 HttpResponse resp = HTTPUtils.getHttpSSLResponse(url);
jurzua
parents:
diff changeset
41
jurzua
parents:
diff changeset
42 if(resp.code == 200){
jurzua
parents:
diff changeset
43 return Response.ok(resp.content).build();
jurzua
parents:
diff changeset
44 }
jurzua
parents:
diff changeset
45
jurzua
parents:
diff changeset
46 return Response.status(Response.Status.NOT_FOUND).build();
jurzua
parents:
diff changeset
47 }
jurzua
parents:
diff changeset
48
jurzua
parents:
diff changeset
49
jurzua
parents:
diff changeset
50 @GET
jurzua
parents:
diff changeset
51 @Path("/json/{file}")
jurzua
parents:
diff changeset
52 @Produces(MediaType.APPLICATION_JSON)
jurzua
parents:
diff changeset
53 public Response
jurzua
parents:
diff changeset
54 json(
jurzua
parents:
diff changeset
55 @PathParam("file") String file) throws Exception{
jurzua
parents:
diff changeset
56
jurzua
parents:
diff changeset
57 HttpStringResponse resp = HTTPUtils.getHttpSSLStringResponse("https://images.rasi.mcgill.ca/data/" + file + ".json");
jurzua
parents:
diff changeset
58 if(resp.code == 200){
jurzua
parents:
diff changeset
59 return Response.ok(resp.content).build();
jurzua
parents:
diff changeset
60 }
jurzua
parents:
diff changeset
61
jurzua
parents:
diff changeset
62 return Response.status(Response.Status.NOT_FOUND).build();
jurzua
parents:
diff changeset
63
jurzua
parents:
diff changeset
64 }
jurzua
parents:
diff changeset
65
jurzua
parents:
diff changeset
66
jurzua
parents:
diff changeset
67
jurzua
parents:
diff changeset
68 private String getDirName(String fileName){
jurzua
parents:
diff changeset
69 String[] array = fileName.split("_");
jurzua
parents:
diff changeset
70 return fileName.replace("_" + array[array.length-1], "");
jurzua
parents:
diff changeset
71 }
jurzua
parents:
diff changeset
72
jurzua
parents:
diff changeset
73
jurzua
parents:
diff changeset
74 }