Skip to content

Commit 529c28f

Browse files
committed
handlers and mvs models
1 parent c0f3318 commit 529c28f

File tree

6 files changed

+37
-23
lines changed

6 files changed

+37
-23
lines changed

api/specs/web-server/_users.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@
1212
from models_library.generics import Envelope
1313
from models_library.user_preferences import PreferenceIdentifier
1414
from simcore_service_webserver._meta import API_VTAG
15-
from simcore_service_webserver.users._handlers import PreUserProfile, _SearchQueryParams
1615
from simcore_service_webserver.users._notifications import (
1716
UserNotification,
1817
UserNotificationCreate,
@@ -21,7 +20,11 @@
2120
from simcore_service_webserver.users._notifications_handlers import (
2221
_NotificationPathParams,
2322
)
24-
from simcore_service_webserver.users._schemas import UserProfile
23+
from simcore_service_webserver.users._schemas import (
24+
PreUserProfile,
25+
UserProfile,
26+
_SearchQueryParams,
27+
)
2528
from simcore_service_webserver.users._tokens_handlers import _TokenPathParams
2629
from simcore_service_webserver.users.schemas import (
2730
PermissionGet,

services/web/server/src/simcore_service_webserver/users/_notifications_handlers.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@
1818
from ..security.decorators import permission_required
1919
from ..utils_aiohttp import envelope_json_response
2020
from . import _users_service
21-
from ._handlers import UsersRequestContext
2221
from ._notifications import (
2322
MAX_NOTIFICATIONS_FOR_USER_TO_KEEP,
2423
MAX_NOTIFICATIONS_FOR_USER_TO_SHOW,
@@ -27,6 +26,7 @@
2726
UserNotificationPatch,
2827
get_notification_key,
2928
)
29+
from ._schemas import UsersRequestContext
3030
from .schemas import Permission, PermissionGet
3131

3232
_logger = logging.getLogger(__name__)

services/web/server/src/simcore_service_webserver/users/_schemas.py

Lines changed: 27 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,35 @@
1111
from models_library.api_schemas_webserver._base import InputSchema, OutputSchema
1212
from models_library.emails import LowerCaseEmailStr
1313
from models_library.products import ProductName
14-
from pydantic import ConfigDict, Field, ValidationInfo, field_validator, model_validator
14+
from models_library.users import UserID
15+
from pydantic import (
16+
BaseModel,
17+
ConfigDict,
18+
Field,
19+
ValidationInfo,
20+
field_validator,
21+
model_validator,
22+
)
23+
from servicelib.aiohttp import status
24+
from servicelib.request_keys import RQT_USERID_KEY
1525
from simcore_postgres_database.models.users import UserStatus
1626

27+
from .._constants import RQ_PRODUCT_KEY
28+
from ._schemas import PreUserProfile
29+
30+
31+
class UsersRequestContext(BaseModel):
32+
user_id: UserID = Field(..., alias=RQT_USERID_KEY) # type: ignore[literal-required]
33+
product_name: str = Field(..., alias=RQ_PRODUCT_KEY) # type: ignore[literal-required]
34+
35+
36+
class _SearchQueryParams(BaseModel):
37+
email: str = Field(
38+
min_length=3,
39+
max_length=200,
40+
description="complete or glob pattern for an email",
41+
)
42+
1743

1844
class UserProfile(OutputSchema):
1945
first_name: str | None

services/web/server/src/simcore_service_webserver/users/_tokens_handlers.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
from ..security.decorators import permission_required
1616
from ..utils_aiohttp import envelope_json_response
1717
from . import _tokens
18-
from ._handlers import UsersRequestContext
18+
from ._schemas import UsersRequestContext
1919
from .exceptions import TokenNotFoundError
2020
from .schemas import TokenCreate
2121

services/web/server/src/simcore_service_webserver/users/_handlers.py renamed to services/web/server/src/simcore_service_webserver/users/_users_handlers.py

Lines changed: 1 addition & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -12,17 +12,15 @@
1212
)
1313
from servicelib.aiohttp.typing_extension import Handler
1414
from servicelib.logging_errors import create_troubleshotting_log_kwargs
15-
from servicelib.request_keys import RQT_USERID_KEY
1615
from servicelib.rest_constants import RESPONSE_MODEL_POLICY
1716

18-
from .._constants import RQ_PRODUCT_KEY
1917
from .._meta import API_VTAG
2018
from ..login.decorators import login_required
2119
from ..security.decorators import permission_required
2220
from ..utils_aiohttp import envelope_json_response
2321
from . import _users_service, api
2422
from ._constants import FMSG_MISSING_CONFIG_WITH_OEC
25-
from ._schemas import PreUserProfile
23+
from ._schemas import PreUserProfile, UsersRequestContext, _SearchQueryParams
2624
from .exceptions import (
2725
AlreadyPreRegisteredError,
2826
MissingGroupExtraPropertiesForProductError,
@@ -36,11 +34,6 @@
3634
routes = web.RouteTableDef()
3735

3836

39-
class UsersRequestContext(BaseModel):
40-
user_id: UserID = Field(..., alias=RQT_USERID_KEY) # type: ignore[literal-required]
41-
product_name: str = Field(..., alias=RQ_PRODUCT_KEY) # type: ignore[literal-required]
42-
43-
4437
def _handle_users_exceptions(handler: Handler):
4538
@functools.wraps(handler)
4639
async def wrapper(request: web.Request) -> web.StreamResponse:
@@ -97,14 +90,6 @@ async def update_my_profile(request: web.Request) -> web.Response:
9790
return web.json_response(status=status.HTTP_204_NO_CONTENT)
9891

9992

100-
class _SearchQueryParams(BaseModel):
101-
email: str = Field(
102-
min_length=3,
103-
max_length=200,
104-
description="complete or glob pattern for an email",
105-
)
106-
107-
10893
_RESPONSE_MODEL_MINIMAL_POLICY = RESPONSE_MODEL_POLICY.copy()
10994
_RESPONSE_MODEL_MINIMAL_POLICY["exclude_none"] = True
11095

services/web/server/src/simcore_service_webserver/users/plugin.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,10 @@
1010
from servicelib.aiohttp.observer import setup_observer_registry
1111

1212
from . import (
13-
_handlers,
1413
_notifications_handlers,
1514
_preferences_handlers,
1615
_tokens_handlers,
16+
_users_handlers,
1717
)
1818
from ._preferences_models import overwrite_user_preferences_defaults
1919

@@ -32,7 +32,7 @@ def setup_users(app: web.Application):
3232
setup_observer_registry(app)
3333
overwrite_user_preferences_defaults(app)
3434

35-
app.router.add_routes(_handlers.routes)
35+
app.router.add_routes(_users_handlers.routes)
3636
app.router.add_routes(_tokens_handlers.routes)
3737
app.router.add_routes(_notifications_handlers.routes)
3838
app.router.add_routes(_preferences_handlers.routes)

0 commit comments

Comments
 (0)