Skip to content

Commit 3ba4099

Browse files
add list node
1 parent 85ff304 commit 3ba4099

File tree

1 file changed

+17
-0
lines changed

1 file changed

+17
-0
lines changed

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

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
from models_library.projects import ProjectID
66
from models_library.projects_nodes import Node, PartialNode
77
from models_library.projects_nodes_io import NodeID
8+
from pydantic import TypeAdapter
89
from simcore_postgres_database.utils_repos import transaction_context
910
from simcore_postgres_database.webserver_models import projects_nodes
1011
from sqlalchemy.ext.asyncio import AsyncConnection
@@ -60,6 +61,22 @@ async def get_node(
6061
return Node.model_validate(row, from_attributes=True)
6162

6263

64+
async def list_nodes(
65+
app: web.Application,
66+
connection: AsyncConnection | None = None,
67+
*,
68+
project_id: ProjectID,
69+
) -> list[Node]:
70+
async with transaction_context(get_asyncpg_engine(app), connection) as conn:
71+
result = await conn.stream(
72+
sa.select(*_SELECTION_PROJECTS_NODES_DB_ARGS).where(
73+
projects_nodes.c.project_uuid == f"{project_id}"
74+
)
75+
)
76+
rows = await result.all() or []
77+
return TypeAdapter(list[Node]).validate_python(rows)
78+
79+
6380
async def update_node(
6481
app: web.Application,
6582
connection: AsyncConnection | None = None,

0 commit comments

Comments
 (0)