package eu.dnetlib.manager.wf; import java.util.List; import java.util.stream.Collectors; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.DeleteMapping; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import eu.dnetlib.common.controller.AbstractDnetController; import eu.dnetlib.is.info.KeyValue; import eu.dnetlib.manager.wf.model.WorkflowConfiguration; import eu.dnetlib.manager.wf.model.WorkflowSection; import eu.dnetlib.manager.wf.model.WorkflowSubscription; import eu.dnetlib.manager.wf.workflows.procs.ExecutionStatus; @RestController @RequestMapping("/ajax/wfs") public class WfConfigurationsController extends AbstractDnetController { @Autowired private WorkflowManagerService wfManagerService; @GetMapping("/sections") public List listWfSections() throws Exception { return wfManagerService.listSsections(); } @GetMapping("/sections/{section}") public List> listWfConfigurations(@PathVariable final String section) throws Exception { return wfManagerService.listWfConfigurationsBySection(section) .stream() .map(x -> new KeyValue<>(x.getId(), x.getName())) .collect(Collectors.toList()); } @GetMapping("/conf/{id}") public WorkflowConfiguration getWfConfiguration(@PathVariable final String id) throws Exception { return wfManagerService.findWorkflowConfiguration(id); } @PostMapping("/conf") public WorkflowConfiguration saveWfConfiguration(@RequestBody final WorkflowConfiguration conf) throws Exception { return wfManagerService.saveWfConfiguration(conf); } @DeleteMapping("/conf/{id}") public void deleteWfConfiguration(@PathVariable final String id) throws Exception { wfManagerService.deleteWfConfiguration(id); } @GetMapping("/conf/{id}/start") public ExecutionStatus startWorkflowConfiguration(@PathVariable final String id) throws Exception { return wfManagerService.startWorkflowConfiguration(id, null, null); } @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); } @GetMapping("/conf/{id}/subscriptions") public List listWorkflowSubscriptions(@PathVariable final String id) throws Exception { return wfManagerService.listSubscriptions(id); } @PostMapping("/conf/{id}/subscriptions") public void saveWorkflowSubscriptions(@PathVariable final String id, @RequestBody final List subscriptions) throws Exception { wfManagerService.saveSubscriptions(id, subscriptions); } }