44 lines
1.5 KiB
Python
44 lines
1.5 KiB
Python
"""Workflow analysis route registration."""
|
|
|
|
from ..services.workflow_service import WorkflowService
|
|
from .context import RouteContext
|
|
|
|
|
|
def register_workflow_analysis_routes(context: RouteContext):
|
|
get_progress_response = context.get("get_progress_response")
|
|
json_api_endpoint = context.get("json_api_endpoint")
|
|
routes = context.get("routes")
|
|
self = context.get("self")
|
|
workflow_service = WorkflowService(context)
|
|
|
|
@routes.post("/model_resolver/analyze")
|
|
async def analyze_workflow(request):
|
|
return await workflow_service.analyze_workflow(request)
|
|
|
|
@routes.get("/model_resolver/analyze-progress/{analysis_id}")
|
|
@json_api_endpoint("analyze-progress")
|
|
async def get_analyze_progress(request):
|
|
"""Get workflow analysis progress."""
|
|
return get_progress_response(
|
|
self.analysis_progress,
|
|
request,
|
|
param_name="analysis_id",
|
|
not_found_payload={
|
|
"status": "unknown",
|
|
"stage": "unknown",
|
|
"message": "No analysis progress available",
|
|
"current": 0,
|
|
"total": 0,
|
|
}
|
|
)
|
|
|
|
@routes.post("/model_resolver/resolve")
|
|
@json_api_endpoint("resolve", return_success_on_error=True)
|
|
async def resolve_models(request):
|
|
return await workflow_service.resolve_models(request)
|
|
|
|
@routes.post("/model_resolver/local-matches")
|
|
@json_api_endpoint("local-matches")
|
|
async def local_matches(request):
|
|
return await workflow_service.local_matches(request)
|