package eu.dnetlib.ariadneplus.publisher; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import eu.dnetlib.ariadneplus.publisher.AriadnePlusPublisherHelper.AriadnePlusTargets; /** * @author enrico.ottonello * */ @RestController public class AriadnePlusPublisherController { private static final Log log = LogFactory.getLog(AriadnePlusPublisherController.class); private static final String DEFAULT_TARGET_ENDPOINT = "GRAPHDB"; @Autowired private AriadnePlusPublisherHelper ariadneplusPublisherHelper; @RequestMapping(value = "/version", method = RequestMethod.GET) public String version() throws AriadnePlusPublisherException { return "3.0.0-SNAPSHOT"; } @RequestMapping(value = "/publish", method = RequestMethod.POST) public void publish(@RequestParam final String record, @RequestParam(required = false) String ariadneplusTarget) throws AriadnePlusPublisherException { if (ariadneplusTarget==null) { ariadneplusTarget = DEFAULT_TARGET_ENDPOINT; } getAriadnePlusPublisherHelper().publish(record, getTarget(ariadneplusTarget)); } @RequestMapping(value = "/feedProvenance", method = RequestMethod.POST) public void feedProvenance(@RequestParam final String datasource, @RequestParam final String datasourceApi, @RequestParam(required = false) String ariadneplusTarget) throws AriadnePlusPublisherException { if (ariadneplusTarget==null) { ariadneplusTarget = DEFAULT_TARGET_ENDPOINT; } getAriadnePlusPublisherHelper().feedProvenance(datasource, datasourceApi, getTarget(ariadneplusTarget)); } @RequestMapping(value = "/dropDatasourceApiGraph", method = RequestMethod.POST) public void dropDatasourceApisPartitionInfo(@RequestParam final String datasourceApi, @RequestParam(required = false) String ariadneplusTarget) throws AriadnePlusPublisherException { if (ariadneplusTarget==null) { ariadneplusTarget = DEFAULT_TARGET_ENDPOINT; } getAriadnePlusPublisherHelper().dropDatasourceApiGraph(datasourceApi, getTarget(ariadneplusTarget)); } @RequestMapping(value = "/unpublish", method = RequestMethod.GET) public void unpublish(@RequestParam final String datasourceApi, @RequestParam(required = false) String ariadneplusTarget) throws AriadnePlusPublisherException { getAriadnePlusPublisherHelper().unpublish(datasourceApi, getTarget(ariadneplusTarget)); } private AriadnePlusTargets getTarget(String value) { return AriadnePlusTargets.valueOf(value); } public AriadnePlusPublisherHelper getAriadnePlusPublisherHelper() { return ariadneplusPublisherHelper; } public void setAriadnePlusPublisherHelper(final AriadnePlusPublisherHelper ariadneplusPublisherHelper) { this.ariadneplusPublisherHelper = ariadneplusPublisherHelper; } @RequestMapping(value = "/executeSparql", method = RequestMethod.POST) public String executeSparql(@RequestBody final String queryValue) throws AriadnePlusPublisherException { // queryValue = "PREFIX aocat: \n" + // " PREFIX skos:\n" + // " INSERT { GRAPH { aocat:has_title \" inserito da controller rest\" } }\n" + // " WHERE{\n" + // " GRAPH {\n" + // " { aocat:has_title ?title } .\n" + // " }\n" + // " };"; return getAriadnePlusPublisherHelper().executeSparql(queryValue, getTarget(DEFAULT_TARGET_ENDPOINT)); } }