Skip to content

Commit 412d7d6

Browse files
committed
models
1 parent 7f8c06c commit 412d7d6

File tree

2 files changed

+24
-21
lines changed

2 files changed

+24
-21
lines changed

api/specs/web-server/_folders.py

Lines changed: 23 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
from models_library.folders import FolderID
1919
from models_library.generics import Envelope
2020
from models_library.rest_pagination import PageQueryParameters
21+
from models_library.utils.json_serialization import json_dumps
2122
from models_library.workspaces import WorkspaceID
2223
from pydantic import Json
2324
from simcore_service_webserver._meta import API_VTAG
@@ -27,6 +28,27 @@
2728
FoldersPathParams,
2829
)
2930

31+
32+
class _ListQuery(PageQueryParameters):
33+
workspace_id: WorkspaceID | None = None
34+
folder_id: FolderID | None = None
35+
36+
order_by: Annotated[
37+
Json,
38+
Query(
39+
description=FolderListWithJsonStrQueryParams.__fields__[
40+
"order_by"
41+
].field_info.description,
42+
),
43+
] = json_dumps(
44+
FolderListWithJsonStrQueryParams.__fields__["order_by"].field_info.default
45+
)
46+
filters: Annotated[
47+
Json | None,
48+
Query(description=FolderFilters.schema_json(indent=1)),
49+
] = None
50+
51+
3052
router = APIRouter(
3153
prefix=f"/{API_VTAG}",
3254
tags=[
@@ -49,24 +71,7 @@ async def create_folder(_b: CreateFolderBodyParams):
4971
response_model=Envelope[list[FolderGet]],
5072
)
5173
async def list_folders(
52-
_q: Annotated[PageQueryParameters, Depends()],
53-
folder_id: FolderID | None = None,
54-
workspace_id: WorkspaceID | None = None,
55-
order_by: Annotated[
56-
Json,
57-
Query(
58-
description=FolderListWithJsonStrQueryParams.__fields__[
59-
"order_by"
60-
].field_info.description,
61-
example=FolderListWithJsonStrQueryParams.__fields__[
62-
"order_by"
63-
].field_info.extra.get("example"),
64-
),
65-
] = FolderListWithJsonStrQueryParams.__fields__["order_by"].field_info.default,
66-
filters: Annotated[
67-
Json | None,
68-
Query(description=FolderFilters.schema_json(indent=1)),
69-
] = None,
74+
_q: Annotated[_ListQuery, Depends()],
7075
):
7176
...
7277

services/web/server/src/simcore_service_webserver/folders/_models.py

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
null_or_none_str_to_none_validator,
1313
)
1414
from models_library.workspaces import WorkspaceID
15-
from pydantic import Extra, Field, Json, validator
15+
from pydantic import BaseModel, Extra, Field, Json, validator
1616
from servicelib.aiohttp.requests_validation import RequestParams, StrictRequestParams
1717
from servicelib.request_keys import RQT_USERID_KEY
1818

@@ -89,7 +89,6 @@ class Config:
8989
)(null_or_none_str_to_none_validator)
9090

9191

92-
9392
class FolderListFullSearchWithJsonStrQueryParams(
9493
PageQueryParameters, FolderListSortParams, FiltersQueryParameters[FolderFilters]
9594
):
@@ -108,7 +107,6 @@ class Config:
108107
extra = Extra.forbid
109108

110109

111-
112110
assert RemoveQueryParams # nosec
113111

114112
__all__: tuple[str, ...] = ("RemoveQueryParams",)

0 commit comments

Comments
 (0)