Skip to content

Commit 3c51ffa

Browse files
committed
common.models
1 parent 0963820 commit 3c51ffa

18 files changed

+69
-34
lines changed

api/specs/web-server/_projects_crud.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@
3030
from models_library.rest_pagination import Page
3131
from pydantic import BaseModel
3232
from simcore_service_webserver._meta import API_VTAG
33-
from simcore_service_webserver.projects._common_models import ProjectPathParams
33+
from simcore_service_webserver.projects._common.models import ProjectPathParams
3434
from simcore_service_webserver.projects._crud_handlers import ProjectCreateParams
3535
from simcore_service_webserver.projects._crud_handlers_models import (
3636
ProjectActiveQueryParams,

api/specs/web-server/_projects_groups.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
from fastapi import APIRouter, Depends, status
1010
from models_library.generics import Envelope
1111
from simcore_service_webserver._meta import API_VTAG
12-
from simcore_service_webserver.projects._common_models import ProjectPathParams
12+
from simcore_service_webserver.projects._common.models import ProjectPathParams
1313
from simcore_service_webserver.projects._groups_api import ProjectGroupGet
1414
from simcore_service_webserver.projects._groups_handlers import (
1515
_ProjectsGroupsBodyParams,

api/specs/web-server/_projects_wallet.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
from models_library.projects import ProjectID
1717
from models_library.wallets import WalletID
1818
from simcore_service_webserver._meta import API_VTAG
19-
from simcore_service_webserver.projects._common_models import ProjectPathParams
19+
from simcore_service_webserver.projects._common.models import ProjectPathParams
2020

2121
router = APIRouter(
2222
prefix=f"/{API_VTAG}",

services/web/server/src/simcore_service_webserver/application_settings.py

Lines changed: 24 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -175,8 +175,13 @@ class ApplicationSettings(BaseCustomSettings, MixinLoggingSettings):
175175
json_schema_extra={"auto_default_from_env": True},
176176
description="director-v2 service client's plugin",
177177
)
178+
179+
WEBSERVER_DYNAMIC_SCHEDULER: DynamicSchedulerSettings | None = Field(
180+
json_schema_extra={"auto_default_from_env": True},
181+
)
182+
178183
WEBSERVER_EMAIL: SMTPSettings | None = Field(
179-
json_schema_extra={"auto_default_from_env": True}, description="email plugin"
184+
json_schema_extra={"auto_default_from_env": True}
180185
)
181186
WEBSERVER_EXPORTER: ExporterSettings | None = Field(
182187
json_schema_extra={"auto_default_from_env": True}, description="exporter plugin"
@@ -204,9 +209,8 @@ class ApplicationSettings(BaseCustomSettings, MixinLoggingSettings):
204209
description="payments plugin settings",
205210
)
206211

207-
WEBSERVER_DYNAMIC_SCHEDULER: DynamicSchedulerSettings | None = Field(
208-
description="dynamic-scheduler plugin settings",
209-
json_schema_extra={"auto_default_from_env": True},
212+
WEBSERVER_PROJECTS: ProjectsSettings | None = Field(
213+
json_schema_extra={"auto_default_from_env": True}
210214
)
211215

212216
WEBSERVER_REDIS: RedisSettings | None = Field(
@@ -254,15 +258,19 @@ class ApplicationSettings(BaseCustomSettings, MixinLoggingSettings):
254258
description="tracing plugin", json_schema_extra={"auto_default_from_env": True}
255259
)
256260

257-
WEBSERVER_PROJECTS: ProjectsSettings | None = Field(
258-
description="projects plugin", json_schema_extra={"auto_default_from_env": True}
259-
)
260-
WEBSERVER_RABBITMQ: RabbitSettings | None = Field(
261-
description="rabbitmq plugin", json_schema_extra={"auto_default_from_env": True}
262-
)
263-
WEBSERVER_USERS: UsersSettings | None = Field(
264-
description="users plugin", json_schema_extra={"auto_default_from_env": True}
265-
)
261+
WEBSERVER_RABBITMQ: Annotated[
262+
RabbitSettings | None,
263+
Field(
264+
json_schema_extra={"auto_default_from_env": True},
265+
),
266+
]
267+
268+
WEBSERVER_USERS: Annotated[
269+
UsersSettings | None,
270+
Field(
271+
json_schema_extra={"auto_default_from_env": True},
272+
),
273+
]
266274

267275
# These plugins only require (for the moment) an entry to toggle between enabled/disabled
268276
WEBSERVER_ANNOUNCEMENTS: bool = False
@@ -440,7 +448,9 @@ def to_client_statics(self) -> dict[str, Any]:
440448
"SWARM_STACK_NAME": True,
441449
"WEBSERVER_PROJECTS": {
442450
"PROJECTS_MAX_NUM_RUNNING_DYNAMIC_NODES",
443-
"PROJECTS_TRASH_RETENTION_DAYS",
451+
},
452+
"WEBSERVER_TRASH": {
453+
"TRASH_RETENTION_DAYS",
444454
},
445455
"WEBSERVER_LOGIN": {
446456
"LOGIN_ACCOUNT_DELETION_RETENTION_DAYS",

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@
3131
from ..security.decorators import permission_required
3232
from ..utils_aiohttp import envelope_json_response
3333
from . import _comments_api, projects_api
34-
from ._common_models import RequestContext
34+
from ._common.models import RequestContext
3535
from .exceptions import ProjectInvalidRightsError, ProjectNotFoundError
3636

3737
_logger = logging.getLogger(__name__)

services/web/server/src/simcore_service_webserver/projects/_common/__init__.py

Whitespace-only changes.
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
""" Handlers for STANDARD methods on /projects colletions
2+
3+
Standard methods or CRUD that states for Create+Read(Get&List)+Update+Delete
4+
5+
"""
6+
7+
from models_library.projects import ProjectID
8+
from pydantic import BaseModel, ConfigDict, Field
9+
10+
from ...models import RequestContext
11+
12+
assert RequestContext.__name__ # nosec
13+
14+
15+
class ProjectPathParams(BaseModel):
16+
project_id: ProjectID
17+
model_config = ConfigDict(populate_by_name=True, extra="forbid")
18+
19+
20+
class RemoveQueryParams(BaseModel):
21+
force: bool = Field(
22+
default=False, description="Force removal (even if resource is active)"
23+
)
24+
25+
26+
__all__: tuple[str, ...] = ("RequestContext",)

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@
4848
from ..users.api import get_user_fullname
4949
from ..workspaces.errors import WorkspaceAccessForbiddenError, WorkspaceNotFoundError
5050
from . import _crud_api_create, _crud_api_read, projects_api
51-
from ._common_models import ProjectPathParams, RequestContext
51+
from ._common.models import ProjectPathParams, RequestContext
5252
from ._crud_handlers_models import (
5353
ProjectActiveQueryParams,
5454
ProjectCreateHeaders,

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

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
from models_library.folders import FolderID
66
from models_library.projects import ProjectID
77
from models_library.utils.common_validators import null_or_none_str_to_none_validator
8-
from pydantic import ConfigDict, BaseModel, field_validator
8+
from pydantic import BaseModel, ConfigDict, field_validator
99
from servicelib.aiohttp import status
1010
from servicelib.aiohttp.requests_validation import parse_request_path_parameters_as
1111
from servicelib.aiohttp.typing_extension import Handler
@@ -14,7 +14,7 @@
1414
from ..login.decorators import login_required
1515
from ..security.decorators import permission_required
1616
from . import _folders_api
17-
from ._common_models import RequestContext
17+
from ._common.models import RequestContext
1818
from .exceptions import ProjectGroupNotFoundError, ProjectNotFoundError
1919

2020
_logger = logging.getLogger(__name__)
@@ -44,9 +44,9 @@ class _ProjectsFoldersPathParams(BaseModel):
4444
model_config = ConfigDict(extra="forbid")
4545

4646
# validators
47-
_null_or_none_str_to_none_validator = field_validator(
48-
"folder_id", mode="before"
49-
)(null_or_none_str_to_none_validator)
47+
_null_or_none_str_to_none_validator = field_validator("folder_id", mode="before")(
48+
null_or_none_str_to_none_validator
49+
)
5050

5151

5252
@routes.put(

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
from ..security.decorators import permission_required
2222
from ..utils_aiohttp import envelope_json_response
2323
from . import _groups_api
24-
from ._common_models import ProjectPathParams, RequestContext
24+
from ._common.models import ProjectPathParams, RequestContext
2525
from ._groups_api import ProjectGroupGet
2626
from .exceptions import ProjectGroupNotFoundError, ProjectNotFoundError
2727

0 commit comments

Comments
 (0)