Mercurial > hg > LGDataverses
diff src/main/java/de/mpiwg/gazetteer/utils/LGDatasetPage.java @ 14:be7787c36e58 default tip
new: nofity LGSercies for deleted files
author | Zoe Hong <zhong@mpiwg-berlin.mpg.de> |
---|---|
date | Mon, 02 Nov 2015 16:41:23 +0100 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/main/java/de/mpiwg/gazetteer/utils/LGDatasetPage.java Mon Nov 02 16:41:23 2015 +0100 @@ -0,0 +1,85 @@ +package de.mpiwg.gazetteer.utils; + + +import java.io.IOException; +import java.net.URLEncoder; +import java.security.KeyManagementException; +import java.security.NoSuchAlgorithmException; +import java.util.logging.Logger; + +import javax.ejb.EJB; +import javax.faces.context.FacesContext; +import javax.inject.Named; + +import org.apache.commons.lang.StringUtils; +import org.primefaces.json.JSONException; +import org.primefaces.json.JSONObject; + +import de.mpiwg.gazetteer.utils.HTTPUtils.HttpStringResponse; +import edu.harvard.iq.dataverse.DatasetServiceBean; +import edu.harvard.iq.dataverse.FileMetadata; + +@Named("LGDatasetPage") +public class LGDatasetPage{ + + private static final Logger logger = Logger.getLogger(LGDatasetPage.class.getCanonicalName()); + + @EJB + DatasetServiceBean datasetService; + + + // synchronize dataset to LGServices + public String syncDatasetToLGServices(String datasetId, String persistentId) { + logger.info("syncDatasetToLGServices. datasetId: " + datasetId); + + // notify LGServices the deleted file + // this is not efficient + // sync the dataset at once, need to go through all files in the dataset + + HttpStringResponse response = null; + try { + //String LGServicesPath = "http://localhost:8080/LGServices"; + String LGServicesPath = PropertiesUtils.getPropValue("LGServices"); // get property in config.properties file + + String query = LGServicesPath + "/updateFileStatus?datasetId="+datasetId+"&datasetPersistentId="+persistentId; // get all dataverse alias from LGDataverse + + response = HTTPUtils.getStringResponse(query); + JSONObject data = new JSONObject(response.content); + String status = data.getString("status"); + //logger.info("status: " + status); + if (!StringUtils.equals(status, "OK")) { + logger.warning("error when updateFileStatus in LGServices."); + } + + } catch (KeyManagementException | NoSuchAlgorithmException + | IOException | JSONException e) { + + e.printStackTrace(); + } + + return ""; + } + + + // out link to LGMap + public String viewLGMapOutputLink(FileMetadata fm) { + System.out.println("viewLGMapOutputLink"); + + Long fileId = fm.getDataFile().getId(); + + try { + // get LGMap url from the config.properties file + String LGMapPath = PropertiesUtils.getPropValue("LGMap"); // get property in config.properties file + String retVal = LGMapPath + "/map.php?mode=1&name="+URLEncoder.encode(fm.getLabel(), "UTF-8")+"&fileId="+fileId; + //logger.info("open LGMap at " + retVal); + + FacesContext.getCurrentInstance().getExternalContext().redirect(retVal); + } catch (IOException ex) { + logger.warning("Failed to issue a redirect to file download url."); + } + + return ""; + } + + +}