Skip to content

Commit bf93075

Browse files
committed
common model
1 parent 6648b90 commit bf93075

File tree

6 files changed

+33
-18
lines changed

6 files changed

+33
-18
lines changed

api/specs/web-server/_trash.py

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -8,15 +8,10 @@
88
from typing import Annotated
99

1010
from fastapi import APIRouter, Depends, status
11+
from models_library.trash import RemoveQueryParams
1112
from simcore_service_webserver._meta import API_VTAG
12-
from simcore_service_webserver.folders._models import (
13-
FoldersPathParams,
14-
RemoveQueryParams,
15-
)
13+
from simcore_service_webserver.folders._models import FoldersPathParams
1614
from simcore_service_webserver.projects._trash_handlers import ProjectPathParams
17-
from simcore_service_webserver.projects._trash_handlers import (
18-
RemoveQueryParams as RemoveQueryParams_duplicated,
19-
)
2015
from simcore_service_webserver.workspaces._models import WorkspacesPathParams
2116

2217
router = APIRouter(
@@ -83,7 +78,7 @@ def untrash_project(
8378
)
8479
def trash_folder(
8580
_p: Annotated[FoldersPathParams, Depends()],
86-
_q: Annotated[RemoveQueryParams_duplicated, Depends()],
81+
_q: Annotated[RemoveQueryParams, Depends()],
8782
):
8883
...
8984

@@ -116,7 +111,7 @@ def untrash_folder(
116111
)
117112
def trash_workspace(
118113
_p: Annotated[WorkspacesPathParams, Depends()],
119-
_q: Annotated[RemoveQueryParams_duplicated, Depends()],
114+
_q: Annotated[RemoveQueryParams, Depends()],
120115
):
121116
...
122117

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
from pydantic import BaseModel, Field
2+
3+
4+
class RemoveQueryParams(BaseModel):
5+
force: bool = Field(
6+
default=False, description="Force removal (even if resource is active)"
7+
)

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

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,11 @@
55
from models_library.rest_filters import Filters, FiltersQueryParameters
66
from models_library.rest_ordering import OrderBy, OrderDirection
77
from models_library.rest_pagination import PageQueryParameters
8+
from models_library.trash import RemoveQueryParams
89
from models_library.users import UserID
910
from models_library.utils.common_validators import null_or_none_str_to_none_validator
1011
from models_library.workspaces import WorkspaceID
11-
from pydantic import BaseModel, Extra, Field, Json, validator
12+
from pydantic import Extra, Field, Json, validator
1213
from servicelib.aiohttp.requests_validation import RequestParams, StrictRequestParams
1314
from servicelib.request_keys import RQT_USERID_KEY
1415

@@ -85,14 +86,15 @@ class Config:
8586
)(null_or_none_str_to_none_validator)
8687

8788

89+
8890
class FolderListFullSearchWithJsonStrQueryParams(
8991
PageQueryParameters, FolderListSortParams, FiltersQueryParameters[FolderFilters]
9092
):
9193
class Config:
9294
extra = Extra.forbid
9395

9496

95-
class RemoveQueryParams(BaseModel):
96-
force: bool = Field(
97-
default=False, description="Force removal (even if resource is active)"
98-
)
97+
98+
assert RemoveQueryParams # nosec
99+
100+
__all__: tuple[str, ...] = ("RemoveQueryParams",)

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

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
"""
66

77
from models_library.projects import ProjectID
8+
from models_library.trash import RemoveQueryParams
89
from models_library.users import UserID
910
from pydantic import BaseModel, Extra, Field
1011
from servicelib.request_keys import RQT_USERID_KEY
@@ -25,7 +26,6 @@ class Config:
2526
extra = Extra.forbid
2627

2728

28-
class RemoveQueryParams(BaseModel):
29-
force: bool = Field(
30-
default=False, description="Force removal (even if resource is active)"
31-
)
29+
assert RemoveQueryParams # nosec
30+
31+
__all__: tuple[str, ...] = ("RemoveQueryParams",)

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

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
from models_library.rest_filters import Filters, FiltersQueryParameters
55
from models_library.rest_ordering import OrderBy, OrderDirection
66
from models_library.rest_pagination import PageQueryParameters
7+
from models_library.trash import RemoveQueryParams
78
from models_library.users import GroupID, UserID
89
from models_library.workspaces import WorkspaceID
910
from pydantic import BaseModel, Extra, Field, Json, validator
@@ -75,3 +76,8 @@ class WorkspacesGroupsBodyParams(BaseModel):
7576

7677
class Config:
7778
extra = Extra.forbid
79+
80+
81+
assert RemoveQueryParams # nosec
82+
83+
__all__: tuple[str, ...] = ("RemoveQueryParams",)

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

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
from . import _workspaces_api
2828
from ._exceptions_handlers import handle_plugin_requests_exceptions
2929
from ._models import (
30+
WorkspacesFilters,
3031
WorkspacesListWithJsonStrQueryParams,
3132
WorkspacesPathParams,
3233
WorkspacesRequestContext,
@@ -68,10 +69,14 @@ async def list_workspaces(request: web.Request):
6869
parse_request_query_parameters_as(WorkspacesListWithJsonStrQueryParams, request)
6970
)
7071

72+
if not query_params.filters:
73+
query_params.filters = WorkspacesFilters()
74+
7175
workspaces: WorkspaceGetPage = await _workspaces_api.list_workspaces(
7276
app=request.app,
7377
user_id=req_ctx.user_id,
7478
product_name=req_ctx.product_name,
79+
trashed=query_params.filters.trashed,
7580
offset=query_params.offset,
7681
limit=query_params.limit,
7782
order_by=parse_obj_as(OrderBy, query_params.order_by),

0 commit comments

Comments
 (0)