83 lines
3.7 KiB
Java
83 lines
3.7 KiB
Java
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: <https://www.ariadne-infrastructure.eu/resource/ao/cat/1.1/>\n" +
|
|
// " PREFIX skos:<http://www.w3.org/2004/02/skos/core#>\n" +
|
|
// " INSERT { GRAPH <https://ariadne-infrastructure.eu/api_________::ariadne_plus::ads::271> { <https://ariadne-infrastructure.eu/aocat/Resource/0D02D6C0-E687-342E-891D-82B39A880F4E> aocat:has_title \" inserito da controller rest\" } }\n" +
|
|
// " WHERE{\n" +
|
|
// " GRAPH <https://ariadne-infrastructure.eu/api_________::ariadne_plus::ads::271> {\n" +
|
|
// " { <https://ariadne-infrastructure.eu/aocat/Resource/0D02D6C0-E687-342E-891D-82B39A880F4E> aocat:has_title ?title } .\n" +
|
|
// " }\n" +
|
|
// " };";
|
|
return getAriadnePlusPublisherHelper().executeSparql(queryValue, getTarget(DEFAULT_TARGET_ENDPOINT));
|
|
}
|
|
} |