Skip to content

Commit 347d565

Browse files
committed
@GitHK review: annotations
1 parent 1bf2942 commit 347d565

File tree

2 files changed

+37
-36
lines changed

2 files changed

+37
-36
lines changed

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

Lines changed: 33 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -172,6 +172,27 @@ async def create_project(request: web.Request):
172172
)
173173

174174

175+
def _create_page_response(projects, request_url, total, limit, offset) -> web.Response:
176+
page = Page[ProjectListItem].model_validate(
177+
paginate_data(
178+
chunk=[
179+
ProjectListItem.from_domain_model(prj).model_dump(
180+
by_alias=True, exclude_unset=True
181+
)
182+
for prj in projects
183+
],
184+
request_url=request_url,
185+
total=total,
186+
limit=limit,
187+
offset=offset,
188+
)
189+
)
190+
return web.Response(
191+
text=page.model_dump_json(**RESPONSE_MODEL_POLICY),
192+
content_type=MIMETYPE_APPLICATION_JSON,
193+
)
194+
195+
175196
@routes.get(f"/{VTAG}/projects", name="list_projects")
176197
@login_required
177198
@permission_required("project.read")
@@ -212,23 +233,12 @@ async def list_projects(request: web.Request):
212233
order_by=OrderBy.model_construct(**query_params.order_by.model_dump()),
213234
)
214235

215-
page = Page[ProjectListItem].model_validate(
216-
paginate_data(
217-
chunk=[
218-
ProjectListItem.from_domain_model(prj).model_dump(
219-
by_alias=True, exclude_unset=True
220-
)
221-
for prj in projects
222-
],
223-
request_url=request.url,
224-
total=total_number_of_projects,
225-
limit=query_params.limit,
226-
offset=query_params.offset,
227-
)
228-
)
229-
return web.Response(
230-
text=page.model_dump_json(**RESPONSE_MODEL_POLICY),
231-
content_type=MIMETYPE_APPLICATION_JSON,
236+
return _create_page_response(
237+
projects=projects,
238+
request_url=request.url,
239+
total=total_number_of_projects,
240+
limit=query_params.limit,
241+
offset=query_params.offset,
232242
)
233243

234244

@@ -259,23 +269,12 @@ async def list_projects_full_search(request: web.Request):
259269
order_by=OrderBy.model_construct(**query_params.order_by.model_dump()),
260270
)
261271

262-
page = Page[ProjectListItem].model_validate(
263-
paginate_data(
264-
chunk=[
265-
ProjectListItem.from_domain_model(prj).model_dump(
266-
by_alias=True, exclude_unset=True
267-
)
268-
for prj in projects
269-
],
270-
request_url=request.url,
271-
total=total_number_of_projects,
272-
limit=query_params.limit,
273-
offset=query_params.offset,
274-
)
275-
)
276-
return web.Response(
277-
text=page.model_dump_json(**RESPONSE_MODEL_POLICY),
278-
content_type=MIMETYPE_APPLICATION_JSON,
272+
return _create_page_response(
273+
projects=projects,
274+
request_url=request.url,
275+
total=total_number_of_projects,
276+
limit=query_params.limit,
277+
offset=query_params.offset,
279278
)
280279

281280

services/web/server/src/simcore_service_webserver/workspaces/_workspaces_repository.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@
3333
)
3434
from sqlalchemy import asc, desc, func
3535
from sqlalchemy.ext.asyncio import AsyncConnection
36-
from sqlalchemy.sql import select
36+
from sqlalchemy.sql import Select, select
3737

3838
from ..db.plugin import get_asyncpg_engine
3939
from .errors import WorkspaceAccessForbiddenError, WorkspaceNotFoundError
@@ -82,7 +82,9 @@ async def create_workspace(
8282
return Workspace.model_validate(row)
8383

8484

85-
def _create_base_select_query(caller_user_id: UserID, product_name: ProductName):
85+
def _create_base_select_query(
86+
caller_user_id: UserID, product_name: ProductName
87+
) -> Select:
8688
# any other access
8789
access_rights_subquery = (
8890
select(

0 commit comments

Comments
 (0)