Skip to content

Commit b358fb4

Browse files
committed
mypy
1 parent 16c19cb commit b358fb4

File tree

7 files changed

+22
-15
lines changed

7 files changed

+22
-15
lines changed

packages/postgres-database/src/simcore_postgres_database/utils_users.py

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -134,8 +134,8 @@ async def join_and_update_from_pre_registration_details(
134134
)
135135

136136
@staticmethod
137-
async def get_billing_details(conn: SAConnection, user_id: int) -> RowProxy | None:
138-
result = await conn.execute(
137+
def get_billing_details_query(user_id: int):
138+
return (
139139
sa.select(
140140
users.c.first_name,
141141
users.c.last_name,
@@ -155,6 +155,12 @@ async def get_billing_details(conn: SAConnection, user_id: int) -> RowProxy | No
155155
)
156156
.where(users.c.id == user_id)
157157
)
158+
159+
@staticmethod
160+
async def get_billing_details(conn: SAConnection, user_id: int) -> RowProxy | None:
161+
result = await conn.execute(
162+
UsersRepo.get_billing_details_query(user_id=user_id)
163+
)
158164
value: RowProxy | None = await result.fetchone()
159165
return value
160166

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
from typing import Annotated, Any, Self
1+
from typing import Annotated, Any, NamedTuple, Self
22

33
from models_library.emails import LowerCaseEmailStr
44
from pydantic import BaseModel, ConfigDict, Field

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

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,12 +20,10 @@
2020
field_validator,
2121
model_validator,
2222
)
23-
from servicelib.aiohttp import status
2423
from servicelib.request_keys import RQT_USERID_KEY
2524
from simcore_postgres_database.models.users import UserStatus
2625

2726
from .._constants import RQ_PRODUCT_KEY
28-
from ._schemas import PreUserProfile
2927

3028

3129
class UsersRequestContext(BaseModel):

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

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
from models_library.users import GroupID, UserBillingDetails, UserID
66
from simcore_postgres_database.models.groups import groups, user_to_groups
77
from simcore_postgres_database.models.products import products
8-
from simcore_postgres_database.models.users import UserStatus, user_to_groups, users
8+
from simcore_postgres_database.models.users import UserStatus, users
99
from simcore_postgres_database.models.users_details import (
1010
users_pre_registration_details,
1111
)
@@ -243,7 +243,9 @@ async def get_user_billing_details(
243243
BillingDetailsNotFoundError
244244
"""
245245
async with pass_or_acquire_connection(engine, connection) as conn:
246-
user_billing_details = await UsersRepo.get_billing_details(conn, user_id)
247-
if not user_billing_details:
246+
query = UsersRepo.get_billing_details_query(user_id=user_id)
247+
result = await conn.stream(query)
248+
row = await result.fetchone()
249+
if not row:
248250
raise BillingDetailsNotFoundError(user_id=user_id)
249-
return UserBillingDetails.model_validate(user_billing_details)
251+
return UserBillingDetails.model_validate(row)

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ async def wrapper(request: web.Request) -> web.StreamResponse:
6666
async def get_my_profile(request: web.Request) -> web.Response:
6767
req_ctx = UsersRequestContext.model_validate(request)
6868
profile: MyProfileGet = await api.get_user_profile(
69-
request.app, req_ctx.user_id, req_ctx.product_name
69+
request.app, user_id=req_ctx.user_id, product_name=req_ctx.product_name
7070
)
7171
return envelope_json_response(profile)
7272

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,10 @@
44
from aiohttp import web
55
from models_library.emails import LowerCaseEmailStr
66
from models_library.payments import UserInvoiceAddress
7+
from models_library.products import ProductName
78
from models_library.users import UserBillingDetails, UserID
89
from pydantic import TypeAdapter
910
from simcore_postgres_database.models.users import UserStatus
10-
from simcore_service_webserver.products._api import ProductName
1111

1212
from ..db.plugin import get_asyncpg_engine
1313
from . import _schemas, _users_repository

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

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@
1111
import simcore_postgres_database.errors as db_errors
1212
import sqlalchemy as sa
1313
from aiohttp import web
14-
from aiopg.sa.result import RowProxy
1514
from models_library.api_schemas_webserver.users import (
1615
MyProfileGet,
1716
MyProfilePatch,
@@ -31,6 +30,7 @@
3130
transaction_context,
3231
)
3332
from simcore_postgres_database.utils_users import generate_alternative_username
33+
from sqlalchemy.engine.row import Row
3434

3535
from ..db.plugin import get_asyncpg_engine
3636
from ..login.storage import AsyncpgStorage, get_plugin_storage
@@ -62,7 +62,7 @@
6262

6363

6464
def _convert_groups_db_to_schema(
65-
db_row: RowProxy, *, prefix: str | None = "", **kwargs
65+
db_row: Row, *, prefix: str | None = "", **kwargs
6666
) -> dict:
6767
# NOTE: Deprecated. has to be replaced with
6868
converted_dict = {
@@ -346,10 +346,11 @@ async def get_user(app: web.Application, user_id: UserID) -> dict[str, Any]:
346346
"""
347347
:raises UserNotFoundError:
348348
"""
349-
row = await _users_repository.get_user_or_raise(
349+
row: Row = await _users_repository.get_user_or_raise(
350350
engine=get_asyncpg_engine(app), user_id=user_id
351351
)
352-
return row._asdict()
352+
user: dict[str, Any] = row._asdict()
353+
return user
353354

354355

355356
async def get_user_id_from_gid(app: web.Application, primary_gid: int) -> UserID:

0 commit comments

Comments
 (0)