feat: expose authoring contract inventory
This commit is contained in:
@@ -5,6 +5,7 @@ from typing import Any, Literal, cast
|
||||
|
||||
from wf_api import CapabilityStepUpdate
|
||||
from wf_api.models import (
|
||||
AuthoringContractInventoryPayload,
|
||||
CompileDraftWorkspaceResult,
|
||||
CreateArtifactFromWorkspaceResult,
|
||||
CreateDraftWorkspaceFromCapabilityResult,
|
||||
@@ -76,6 +77,25 @@ class RpcDraftClientMixin:
|
||||
{"workspace_id": workspace_id, "include_draft": include_draft},
|
||||
)
|
||||
|
||||
async def inspect_draft_authoring_contract(
|
||||
self: RpcCaller,
|
||||
*,
|
||||
workspace_id: str,
|
||||
revision: int,
|
||||
selected_step_id: str | None = None,
|
||||
) -> AuthoringContractInventoryPayload | DraftWorkspaceResult:
|
||||
return cast(
|
||||
AuthoringContractInventoryPayload | DraftWorkspaceResult,
|
||||
await self._call(
|
||||
"workflow.draft_workspaces.inspect_authoring_contract",
|
||||
{
|
||||
"workspace_id": workspace_id,
|
||||
"revision": revision,
|
||||
"selected_step_id": selected_step_id,
|
||||
},
|
||||
),
|
||||
)
|
||||
|
||||
async def create_draft_workspace_from_capability(
|
||||
self: RpcCaller,
|
||||
*,
|
||||
|
||||
@@ -7,6 +7,7 @@ while registering nested handlers for response validation and OpenRPC output.
|
||||
import fastapi_jsonrpc as jsonrpc
|
||||
|
||||
from wf_api.models import (
|
||||
AuthoringContractInventoryPayload,
|
||||
CompileDraftWorkspaceResult,
|
||||
CreateArtifactFromWorkspaceResult,
|
||||
CreateDraftWorkspaceFromCapabilityResult,
|
||||
@@ -33,6 +34,7 @@ from ..models import (
|
||||
DeleteDraftWorkspaceParams,
|
||||
GetDraftWorkspaceParams,
|
||||
HandleDraftParams,
|
||||
InspectDraftAuthoringContractParams,
|
||||
ListDraftWorkspacesParams,
|
||||
PatchDraftParams,
|
||||
PatchDraftWorkspaceParams,
|
||||
@@ -113,6 +115,22 @@ def register_methods(
|
||||
except (ValueError, KeyError, LookupError, FileNotFoundError) as exc:
|
||||
raise_workflow_rpc_error(exc)
|
||||
|
||||
@entrypoint.method(
|
||||
name="workflow.draft_workspaces.inspect_authoring_contract",
|
||||
errors=[WorkflowRpcError],
|
||||
)
|
||||
async def workflow_draft_workspaces_inspect_authoring_contract(
|
||||
params: InspectDraftAuthoringContractParams = RpcParams(),
|
||||
) -> AuthoringContractInventoryPayload | DraftWorkspaceResult:
|
||||
try:
|
||||
return await server.api.inspect_draft_authoring_contract(
|
||||
workspace_id=params.workspace_id,
|
||||
revision=params.revision,
|
||||
selected_step_id=params.selected_step_id,
|
||||
)
|
||||
except (ValueError, KeyError, LookupError, FileNotFoundError) as exc:
|
||||
raise_workflow_rpc_error(exc)
|
||||
|
||||
@entrypoint.method(
|
||||
name="workflow.draft_workspaces.create_from_capability",
|
||||
errors=[WorkflowRpcError],
|
||||
|
||||
@@ -147,6 +147,12 @@ class GetDraftWorkspaceParams(RpcParamsModel):
|
||||
include_draft: bool = False
|
||||
|
||||
|
||||
class InspectDraftAuthoringContractParams(RpcParamsModel):
|
||||
workspace_id: str = Field(min_length=1)
|
||||
revision: int = Field(ge=1)
|
||||
selected_step_id: str | None = Field(default=None, min_length=1)
|
||||
|
||||
|
||||
class PatchDraftWorkspaceParams(RpcParamsModel):
|
||||
workspace_id: str = Field(min_length=1)
|
||||
revision: int = Field(ge=1)
|
||||
|
||||
Reference in New Issue
Block a user