Skip to content

Commit 9b59cdf

Browse files
maintenance: project listing
1 parent c56eed1 commit 9b59cdf

File tree

1 file changed

+20
-16
lines changed

1 file changed

+20
-16
lines changed

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

Lines changed: 20 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,24 @@ async def _aggregate_data_to_projects_from_other_sources(
9595
return updated_projects
9696

9797

98+
async def _convert_db_projects_to_api_projects(
99+
app: web.Application,
100+
db,
101+
db_projects: list,
102+
) -> list[dict]:
103+
"""
104+
Converts db schema projects to API schema (legacy postprocessing).
105+
"""
106+
api_projects: list[dict] = []
107+
for db_prj in db_projects:
108+
db_prj_dict = db_prj.model_dump()
109+
db_prj_dict.pop("product_name", None)
110+
db_prj_dict["tags"] = await db.get_tags_by_project(project_id=f"{db_prj.id}")
111+
user_email = await get_user_email_legacy(app, db_prj.prj_owner)
112+
api_projects.append(convert_to_schema_names(db_prj_dict, user_email))
113+
return api_projects
114+
115+
98116
async def list_projects( # pylint: disable=too-many-arguments
99117
app: web.Application,
100118
user_id: UserID,
@@ -172,14 +190,7 @@ async def list_projects( # pylint: disable=too-many-arguments
172190
order_by=order_by,
173191
)
174192

175-
# This is a legacy postprocessing step to convert db schema to API schema (to be backwards compatible)
176-
api_projects: list[dict] = []
177-
for db_prj in db_projects:
178-
db_prj_dict = db_prj.model_dump()
179-
db_prj_dict.pop("product_name", None)
180-
db_prj_dict["tags"] = await db.get_tags_by_project(project_id=f"{db_prj.id}")
181-
user_email = await get_user_email_legacy(app, db_prj.prj_owner)
182-
api_projects.append(convert_to_schema_names(db_prj_dict, user_email))
193+
api_projects = await _convert_db_projects_to_api_projects(app, db, db_projects)
183194

184195
final_projects = await _aggregate_data_to_projects_from_other_sources(
185196
app, db_projects=api_projects, user_id=user_id
@@ -219,14 +230,7 @@ async def list_projects_full_depth(
219230
order_by=order_by,
220231
)
221232

222-
# This is a legacy postprocessing step to convert db schema to API schema (to be backwards compatible)
223-
api_projects: list[dict] = []
224-
for db_prj in db_projects:
225-
db_prj_dict = db_prj.model_dump()
226-
db_prj_dict.pop("product_name", None)
227-
db_prj_dict["tags"] = await db.get_tags_by_project(project_id=f"{db_prj.id}")
228-
user_email = await get_user_email_legacy(app, db_prj.prj_owner)
229-
api_projects.append(convert_to_schema_names(db_prj_dict, user_email))
233+
api_projects = await _convert_db_projects_to_api_projects(app, db, db_projects)
230234

231235
final_projects = await _aggregate_data_to_projects_from_other_sources(
232236
app, db_projects=api_projects, user_id=user_id

0 commit comments

Comments
 (0)