Skip to content

Commit f71c1c6

Browse files
fix model
1 parent 48145b4 commit f71c1c6

File tree

4 files changed

+28
-11
lines changed

4 files changed

+28
-11
lines changed

packages/models-library/src/models_library/api_schemas_webserver/projects_nodes.py

Lines changed: 20 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88

99
from ..api_schemas_directorv2.dynamic_services import RetrieveDataOut
1010
from ..basic_types import PortInt
11-
from ..projects_nodes import InputID, InputsDict
11+
from ..projects_nodes import InputID, InputsDict, PartialNode
1212
from ..projects_nodes_io import NodeID
1313
from ..services import ServiceKey, ServicePortKey, ServiceVersion
1414
from ..services_enums import ServiceState
@@ -29,14 +29,26 @@ class NodeCreate(InputSchemaWithoutCamelCase):
2929

3030

3131
class NodePatch(InputSchemaWithoutCamelCase):
32-
service_key: ServiceKey | None = Field(default=None, alias="key")
33-
service_version: ServiceVersion | None = Field(default=None, alias="version")
34-
label: str | None = Field(default=None)
32+
service_key: Annotated[
33+
ServiceKey | None,
34+
Field(alias="key"),
35+
] = None
36+
service_version: Annotated[
37+
ServiceVersion | None,
38+
Field(alias="version"),
39+
] = None
40+
label: str | None = None
3541
inputs: Annotated[
3642
InputsDict, Field(default_factory=dict, json_schema_extra={"default": {}})
3743
]
38-
inputs_required: list[InputID] | None = Field(default=None, alias="inputsRequired")
39-
input_nodes: list[NodeID] | None = Field(default=None, alias="inputNodes")
44+
inputs_required: Annotated[
45+
list[InputID] | None,
46+
Field(alias="inputsRequired"),
47+
] = None
48+
input_nodes: Annotated[
49+
list[NodeID] | None,
50+
Field(alias="inputNodes"),
51+
] = None
4052
progress: Annotated[
4153
float | None,
4254
Field(
@@ -50,7 +62,7 @@ class NodePatch(InputSchemaWithoutCamelCase):
5062
str, Any
5163
] | None = None # NOTE: it is used by frontend for File Picker
5264

53-
def to_model(self) -> Node:
65+
def to_model(self) -> PartialNode:
5466
data = remap_keys(
5567
self.model_dump(
5668
mode="json",
@@ -61,7 +73,7 @@ def to_model(self) -> Node:
6173
"service_version": "version",
6274
},
6375
)
64-
return Node(**data)
76+
return PartialNode(**data)
6577

6678

6779
class NodeCreated(OutputSchema):

packages/models-library/src/models_library/projects_nodes.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -274,3 +274,8 @@ def _convert_from_enum(cls, v):
274274
extra="forbid",
275275
populate_by_name=True,
276276
)
277+
278+
279+
class PartialNode(Node):
280+
key: Annotated[ServiceKey | None, Field(default=None)]
281+
version: Annotated[ServiceVersion | None, Field(default=None)]

services/web/server/src/simcore_service_webserver/projects/_nodes_handlers.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -229,13 +229,13 @@ async def patch_project_node(request: web.Request) -> web.Response:
229229
path_params = parse_request_path_parameters_as(NodePathParams, request)
230230
node_patch = await parse_request_body_as(NodePatch, request)
231231

232-
await projects_api.patch_project_node(
232+
await projects_api.update_project_node(
233233
request.app,
234234
product_name=req_ctx.product_name,
235235
user_id=req_ctx.user_id,
236236
project_id=path_params.project_id,
237237
node_id=path_params.node_id,
238-
node_patch=Node.model_validate(node_patch.model_dump()),
238+
node_patch=node_patch.to_model(),
239239
)
240240

241241
return web.json_response(status=status.HTTP_204_NO_CONTENT)

services/web/server/src/simcore_service_webserver/projects/projects_api.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -993,7 +993,7 @@ async def is_project_hidden(app: web.Application, project_id: ProjectID) -> bool
993993
return await db.is_hidden(project_id)
994994

995995

996-
async def patch_project_node(
996+
async def update_project_node(
997997
app: web.Application,
998998
*,
999999
product_name: ProductName,

0 commit comments

Comments
 (0)