Skip to content

Commit 2f96719

Browse files
committed
mv
1 parent abe96f4 commit 2f96719

File tree

2 files changed

+49
-1
lines changed

2 files changed

+49
-1
lines changed
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
from aiohttp import web
2+
from models_library.api_schemas_webserver.projects import ProjectListItem
3+
from models_library.rest_pagination import Page
4+
from models_library.rest_pagination_utils import paginate_data
5+
from servicelib.mimetype_constants import MIMETYPE_APPLICATION_JSON
6+
from servicelib.rest_constants import RESPONSE_MODEL_POLICY
7+
8+
from .. import _permalink_service
9+
from .._projects_service_read import _paralell_update
10+
from ..models import ProjectDict
11+
12+
13+
async def aggregate_data_to_projects_from_request(
14+
request: web.Request,
15+
projects: list[ProjectDict],
16+
) -> list[ProjectDict]:
17+
18+
update_permalink_per_project = [
19+
# permalink
20+
_permalink_service.aggregate_permalink_in_project(request, project=prj)
21+
for prj in projects
22+
]
23+
24+
updated_projects: list[ProjectDict] = await _paralell_update(
25+
*update_permalink_per_project,
26+
)
27+
return updated_projects
28+
29+
30+
def create_page_response(projects, request_url, total, limit, offset) -> web.Response:
31+
page = Page[ProjectListItem].model_validate(
32+
paginate_data(
33+
chunk=[
34+
ProjectListItem.from_domain_model(prj).model_dump(
35+
by_alias=True, exclude_unset=True
36+
)
37+
for prj in projects
38+
],
39+
request_url=request_url,
40+
total=total,
41+
limit=limit,
42+
offset=offset,
43+
)
44+
)
45+
return web.Response(
46+
text=page.model_dump_json(**RESPONSE_MODEL_POLICY),
47+
content_type=MIMETYPE_APPLICATION_JSON,
48+
)

services/web/server/src/simcore_service_webserver/projects/_controller/projects_rest.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,6 @@
4848
from ...utils_aiohttp import envelope_json_response
4949
from .. import (
5050
_permalink_service,
51-
_projects_rest_utils,
5251
_projects_service,
5352
_projects_service_create,
5453
_projects_service_read,
@@ -68,6 +67,7 @@
6867
)
6968
from ..exceptions import ProjectStartsTooManyDynamicNodesError
7069
from ..models import ProjectDict
70+
from . import _projects_rest_utils
7171
from ._rest_exceptions import handle_plugin_requests_exceptions
7272
from ._rest_schemas import ProjectPathParams, RequestContext
7373

0 commit comments

Comments
 (0)