2023-03-10 15:20:49 +01:00
|
|
|
package eu.dnetlib.manager.wf;
|
|
|
|
|
|
|
|
import java.util.List;
|
2023-03-21 12:13:23 +01:00
|
|
|
import java.util.stream.Collectors;
|
2023-03-10 15:20:49 +01:00
|
|
|
|
2023-03-23 12:24:56 +01:00
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
2023-03-21 15:28:18 +01:00
|
|
|
import org.springframework.web.bind.annotation.DeleteMapping;
|
2023-03-10 15:20:49 +01:00
|
|
|
import org.springframework.web.bind.annotation.GetMapping;
|
|
|
|
import org.springframework.web.bind.annotation.PathVariable;
|
2023-03-21 15:28:18 +01:00
|
|
|
import org.springframework.web.bind.annotation.PostMapping;
|
2023-03-10 15:20:49 +01:00
|
|
|
import org.springframework.web.bind.annotation.RequestMapping;
|
|
|
|
import org.springframework.web.bind.annotation.RestController;
|
|
|
|
|
|
|
|
import eu.dnetlib.common.controller.AbstractDnetController;
|
2023-03-21 12:13:23 +01:00
|
|
|
import eu.dnetlib.is.info.KeyValue;
|
2023-03-22 10:42:33 +01:00
|
|
|
import eu.dnetlib.manager.wf.model.WorkflowConfiguration;
|
2023-03-23 12:24:56 +01:00
|
|
|
import eu.dnetlib.manager.wf.model.WorkflowSection;
|
2023-03-21 15:28:18 +01:00
|
|
|
import eu.dnetlib.manager.wf.model.WorkflowSubscription;
|
|
|
|
import eu.dnetlib.manager.wf.workflows.procs.ExecutionStatus;
|
|
|
|
import io.swagger.v3.oas.annotations.parameters.RequestBody;
|
2023-03-10 15:20:49 +01:00
|
|
|
|
|
|
|
@RestController
|
2023-03-22 10:42:33 +01:00
|
|
|
@RequestMapping("/ajax/wfs")
|
|
|
|
public class WfConfigurationsController extends AbstractDnetController {
|
2023-03-10 15:20:49 +01:00
|
|
|
|
2023-03-23 12:24:56 +01:00
|
|
|
@Autowired
|
2023-03-10 15:20:49 +01:00
|
|
|
private WorkflowManagerService wfManagerService;
|
|
|
|
|
2023-03-21 15:28:18 +01:00
|
|
|
@GetMapping("/sections")
|
2023-03-23 12:24:56 +01:00
|
|
|
public List<WorkflowSection> listWfSections() throws Exception {
|
|
|
|
return wfManagerService.listSsections();
|
2023-03-10 15:20:49 +01:00
|
|
|
}
|
|
|
|
|
2023-03-23 12:24:56 +01:00
|
|
|
@GetMapping("/sections/{section}")
|
|
|
|
public List<KeyValue<String>> listWfConfigurations(@PathVariable final String section) throws Exception {
|
|
|
|
return wfManagerService.listWfConfigurationsBySection(section)
|
|
|
|
.stream()
|
2023-03-21 12:13:23 +01:00
|
|
|
.map(x -> new KeyValue<>(x.getId(), x.getName()))
|
|
|
|
.collect(Collectors.toList());
|
|
|
|
}
|
|
|
|
|
2023-03-22 10:42:33 +01:00
|
|
|
@GetMapping("/conf/{id}")
|
|
|
|
public WorkflowConfiguration getWfConfiguration(@PathVariable final String id) throws Exception {
|
|
|
|
return wfManagerService.findWorkflowConfiguration(id);
|
2023-03-21 15:28:18 +01:00
|
|
|
}
|
|
|
|
|
2023-03-22 10:42:33 +01:00
|
|
|
@PostMapping("/conf")
|
|
|
|
public void saveWfConfiguration(@RequestBody final WorkflowConfiguration conf) throws Exception {
|
|
|
|
wfManagerService.saveWfConfiguration(conf);
|
2023-03-21 15:28:18 +01:00
|
|
|
}
|
|
|
|
|
2023-03-22 10:42:33 +01:00
|
|
|
@DeleteMapping("/conf/{id}")
|
|
|
|
public void deleteWfConfiguration(@PathVariable final String id) throws Exception {
|
|
|
|
wfManagerService.deleteWfConfiguration(id);
|
2023-03-21 15:28:18 +01:00
|
|
|
}
|
|
|
|
|
2023-03-22 10:42:33 +01:00
|
|
|
@GetMapping("/conf/{id}/start")
|
|
|
|
public ExecutionStatus startWorkflowConfiguration(@PathVariable final String id) throws Exception {
|
|
|
|
return wfManagerService.startWorkflowConfiguration(id, null, null);
|
2023-03-10 15:20:49 +01:00
|
|
|
}
|
|
|
|
|
2023-03-21 15:28:18 +01:00
|
|
|
@GetMapping("/process/{id}")
|
|
|
|
public ExecutionStatus findProcess(@PathVariable final String id) throws Exception {
|
|
|
|
return wfManagerService.findProcess(id);
|
|
|
|
}
|
|
|
|
|
|
|
|
@DeleteMapping("/process/{id}")
|
|
|
|
public void killProcess(@PathVariable final String id) throws Exception {
|
|
|
|
wfManagerService.killProcess(id);
|
|
|
|
}
|
|
|
|
|
2023-03-22 10:42:33 +01:00
|
|
|
@GetMapping("/conf/{id}/subscriptions")
|
2023-03-21 15:28:18 +01:00
|
|
|
public List<WorkflowSubscription> listWorkflowSubscriptions(@PathVariable final String id) throws Exception {
|
|
|
|
return wfManagerService.listSubscriptions(id);
|
|
|
|
}
|
|
|
|
|
2023-03-22 10:42:33 +01:00
|
|
|
@PostMapping("/conf/{id}/subscriptions")
|
2023-03-21 15:28:18 +01:00
|
|
|
public void saveWorkflowSubscriptions(@PathVariable final String id, @RequestBody final List<WorkflowSubscription> subscriptions) throws Exception {
|
|
|
|
wfManagerService.saveSubscriptions(id, subscriptions);
|
|
|
|
}
|
2023-03-10 15:20:49 +01:00
|
|
|
}
|