view src/main/java/de/mpiwg/itgroup/diva/rest/DivaProxy.java @ 154:84d20006521c

change McGill image server URL.
author Robert Casties <casties@mpiwg-berlin.mpg.de>
date Mon, 16 Oct 2017 15:41:02 +0200
parents 2e911857a759
children f2c1e5be355c
line wrap: on
line source

package de.mpiwg.itgroup.diva.rest;

import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.QueryParam;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;

import de.mpiwg.itgroup.ismi.utils.HTTPUtils;
import de.mpiwg.itgroup.ismi.utils.HTTPUtils.HttpResponse;
import de.mpiwg.itgroup.ismi.utils.HTTPUtils.HttpStringResponse;

@Path("/diva/proxy")
public class DivaProxy {
	
    // was https://images.rasi.mcgill.ca/fcgi-bin/iipsrv.fcgi?FIF=/data7/srv/images/
    private static String IMG_SERVER = "https://db.rasi.mcgill.ca/fcgi-bin/iipsrv.fcgi?FIF=/data7/srv/images/";
	
	@GET
	@Path("/image")
	@Produces("image/jpeg")
	public Response 
		image(
			 @QueryParam("f") String f,
			 @QueryParam("w") String w) throws Exception{
	
		String dirName = getDirName(f);
		
		String url = IMG_SERVER + dirName + "/" + f + "&WID=" + w + "&CVT=JPG";
		
		
		HttpResponse resp = HTTPUtils.getHttpSSLResponse(url);
		
		if(resp.code == 200){
			return Response.ok(resp.content).build();	
		}
		
		return Response.status(Response.Status.NOT_FOUND).build();
	}
	
	
	@GET
	@Path("/json/{file}")
	@Produces(MediaType.APPLICATION_JSON)
	public Response 
		json(
			 @PathParam("file") String file) throws Exception{
	
	    // was https://images.rasi.mcgill.ca/data/
		HttpStringResponse resp = HTTPUtils.getHttpSSLStringResponse("https://db.rasi.mcgill.ca/data/" + file + ".json");
		if(resp.code == 200){
			return Response.ok(resp.content).build();	
		}
		
		return Response.status(Response.Status.NOT_FOUND).build();
		
	}
	
	
	
	private String getDirName(String fileName){
		String[] array = fileName.split("_");
		return fileName.replace("_" + array[array.length-1], "");		
	}
	
	
}