48 lines
2.1 KiB
Java
48 lines
2.1 KiB
Java
|
package eu.dnetlib.ariadneplus.publisher;
|
||
|
|
||
|
import eu.dnetlib.ariadneplus.publisher.AriadnePlusPublisherHelper.AriadnePlusTargets;
|
||
|
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.RequestMapping;
|
||
|
import org.springframework.web.bind.annotation.RequestMethod;
|
||
|
import org.springframework.web.bind.annotation.RequestParam;
|
||
|
import org.springframework.web.bind.annotation.RestController;
|
||
|
|
||
|
@RestController
|
||
|
public class AriadnePlusPublisherController {
|
||
|
|
||
|
private static final Log log = LogFactory.getLog(AriadnePlusPublisherController.class);
|
||
|
//TODO: to nicely handle arrors, follow https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#boot-features-error-handling
|
||
|
|
||
|
@Autowired
|
||
|
private AriadnePlusPublisherHelper ariadneplusPublisherHelper;
|
||
|
|
||
|
@RequestMapping(value = "/publish", method = RequestMethod.POST)
|
||
|
public void publish(@RequestParam final String record, @RequestParam(required = false) String ariadneplusTarget) throws AriadnePlusPublisherException {
|
||
|
getAriadnePlusPublisherHelper().publish(record, 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));
|
||
|
}
|
||
|
|
||
|
@RequestMapping(value = "/dropRegistry", method = RequestMethod.GET)
|
||
|
public void unpublish() throws AriadnePlusPublisherException {
|
||
|
getAriadnePlusPublisherHelper().dropRegistry();
|
||
|
}
|
||
|
|
||
|
private AriadnePlusTargets getTarget(String value) {
|
||
|
return AriadnePlusTargets.valueOf(value);
|
||
|
}
|
||
|
|
||
|
public AriadnePlusPublisherHelper getAriadnePlusPublisherHelper() {
|
||
|
return ariadneplusPublisherHelper;
|
||
|
}
|
||
|
|
||
|
public void setAriadnePlusPublisherHelper(final AriadnePlusPublisherHelper ariadneplusPublisherHelper) {
|
||
|
this.ariadneplusPublisherHelper = ariadneplusPublisherHelper;
|
||
|
}
|
||
|
}
|