From 26f7249b6cad79ca48531bfb734ab96780fd30d2 Mon Sep 17 00:00:00 2001 From: Martin Cech Date: Wed, 19 Oct 2022 10:27:33 -0700 Subject: [PATCH] move more logic to the workflow service --- lib/galaxy/webapps/galaxy/api/workflows.py | 9 ++------- lib/galaxy/webapps/galaxy/services/workflows.py | 10 ++++++++++ 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/lib/galaxy/webapps/galaxy/api/workflows.py b/lib/galaxy/webapps/galaxy/api/workflows.py index e824f17b5a9..1f8e1c48340 100644 --- a/lib/galaxy/webapps/galaxy/api/workflows.py +++ b/lib/galaxy/webapps/galaxy/api/workflows.py @@ -1241,7 +1241,6 @@ SkipStepCountsQueryParam: bool = Query( class FastAPIWorkflows: service: WorkflowsService = depends(WorkflowsService) invocations_service: InvocationsService = depends(InvocationsService) - workflows_manager: WorkflowsManager = depends(WorkflowsManager) @router.get( "/api/workflows", @@ -1412,9 +1411,7 @@ class FastAPIWorkflows: trans: ProvidesUserContext = DependsOnTrans, workflow_id: DecodedDatabaseIdField = StoredWorkflowIDPathParam, ): - workflow_to_delete = self.workflows_manager.get_stored_workflow(trans, workflow_id) - self.workflows_manager.check_security(trans, workflow_to_delete) - self.workflows_manager.delete(workflow_to_delete) + self.service.delete(trans, workflow_id) return Response(status_code=status.HTTP_204_NO_CONTENT) @router.post( @@ -1426,9 +1423,7 @@ class FastAPIWorkflows: trans: ProvidesUserContext = DependsOnTrans, workflow_id: DecodedDatabaseIdField = StoredWorkflowIDPathParam, ): - workflow_to_undelete = self.workflows_manager.get_stored_workflow(trans, workflow_id) - self.workflows_manager.check_security(trans, workflow_to_undelete) - self.workflows_manager.undelete(workflow_to_undelete) + self.service.undelete(trans, workflow_id) return Response(status_code=status.HTTP_204_NO_CONTENT) # TODO: remove this endpoint after 23.1 release diff --git a/lib/galaxy/webapps/galaxy/services/workflows.py b/lib/galaxy/webapps/galaxy/services/workflows.py index 8758110155e..c96f654de33 100644 --- a/lib/galaxy/webapps/galaxy/services/workflows.py +++ b/lib/galaxy/webapps/galaxy/services/workflows.py @@ -99,6 +99,16 @@ class WorkflowsService(ServiceBase): return workflows, total_matches return rval, total_matches + def delete(self, trans, workflow_id): + workflow_to_delete = self._workflows_manager.get_stored_workflow(trans, workflow_id) + self._workflows_manager.check_security(trans, workflow_to_delete) + self._workflows_manager.delete(workflow_to_delete) + + def undelete(self, trans, workflow_id): + workflow_to_undelete = self._workflows_manager.get_stored_workflow(trans, workflow_id) + self._workflows_manager.check_security(trans, workflow_to_undelete) + self._workflows_manager.undelete(workflow_to_undelete) + def __get_full_shed_url(self, url): for shed_url in self._tool_shed_registry.tool_sheds.values(): if url in shed_url: