Skip to content

Commit 642b700

Browse files
committed
refactor: core dependencies parse integer ids
1 parent 29acc81 commit 642b700

6 files changed

Lines changed: 11 additions & 21 deletions

File tree

src/core/database/postgres/session.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
from collections.abc import AsyncGenerator
2-
from uuid import UUID
32

43
from fastapi import Depends
54
from sqlalchemy.ext.asyncio import AsyncSession, async_sessionmaker, create_async_engine
@@ -33,6 +32,6 @@ async def get_db() -> AsyncGenerator[AsyncSession]:
3332

3433
def get_unit_of_work(
3534
db: AsyncSession = Depends(get_db),
36-
tenant_id: UUID | None = Depends(get_optional_tenant_id),
35+
tenant_id: int | None = Depends(get_optional_tenant_id),
3736
) -> UnitOfWork:
3837
return SQLAlchemyUnitOfWork(db, tenant_id)

src/core/database/unit_of_work.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
from types import TracebackType
22
from typing import TYPE_CHECKING, Self
3-
from uuid import UUID
43

54
from sqlalchemy.ext.asyncio import AsyncSession
65

@@ -12,7 +11,7 @@
1211

1312

1413
class SQLAlchemyUnitOfWork(UnitOfWork):
15-
def __init__(self, session: AsyncSession, tenant_id: UUID | None = None):
14+
def __init__(self, session: AsyncSession, tenant_id: int | None = None):
1615
self._session = session
1716
self._tenant_id = tenant_id
1817
self._committed = False

src/core/dependency/auth.py

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
from uuid import UUID
2-
31
from fastapi import Depends, HTTPException, Request, status
42
from fastapi.security import OAuth2PasswordBearer
53
from sqlalchemy.ext.asyncio import AsyncSession
@@ -21,7 +19,7 @@ async def get_current_user(
2119
request: Request,
2220
token: str = Depends(oauth2_scheme),
2321
db: AsyncSession = Depends(get_db),
24-
tenant_id: UUID | None = Depends(get_optional_tenant_id),
22+
tenant_id: int | None = Depends(get_optional_tenant_id),
2523
) -> dict:
2624
"""
2725
1. 'token' is extracted by oauth2_scheme (for Swagger docs).
@@ -37,7 +35,7 @@ async def get_current_user(
3735
)
3836

3937
repo = SQLAlchemyUserRepository(db, tenant_id)
40-
user = await repo.get_by_id(UUID(user_id))
38+
user = await repo.get_by_id(int(user_id))
4139

4240
if not user:
4341
raise HTTPException(

src/core/dependency/tenant.py

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,9 @@
1-
from uuid import UUID
2-
31
from fastapi import HTTPException, Request
42
from starlette.status import HTTP_400_BAD_REQUEST
53

64

7-
def get_current_tenant_id(request: Request) -> UUID:
8-
tenant_id: UUID | None = getattr(request.state, "tenant_id", None)
5+
def get_current_tenant_id(request: Request) -> int:
6+
tenant_id: int | None = getattr(request.state, "tenant_id", None)
97
if tenant_id is None:
108
raise HTTPException(
119
status_code=HTTP_400_BAD_REQUEST,
@@ -14,5 +12,5 @@ def get_current_tenant_id(request: Request) -> UUID:
1412
return tenant_id
1513

1614

17-
def get_optional_tenant_id(request: Request) -> UUID | None:
15+
def get_optional_tenant_id(request: Request) -> int | None:
1816
return getattr(request.state, "tenant_id", None)

src/core/middleware/tenant.py

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,14 @@
1-
from uuid import UUID
2-
31
from starlette.middleware.base import BaseHTTPMiddleware, RequestResponseEndpoint
42
from starlette.requests import Request
53
from starlette.responses import JSONResponse, Response
64

75
from src.core.config.setting import get_settings
86

97
settings = get_settings()
10-
_default_tenant_id: UUID | None = None
8+
_default_tenant_id: int | None = None
119

1210

13-
def set_default_tenant_id(tenant_id: UUID) -> None:
11+
def set_default_tenant_id(tenant_id: int) -> None:
1412
global _default_tenant_id
1513
_default_tenant_id = tenant_id
1614

@@ -71,7 +69,7 @@ async def dispatch(
7169
)
7270
tid = payload.get("tenant_id")
7371
if tid:
74-
request.state.tenant_id = UUID(tid) if isinstance(tid, str) else tid
72+
request.state.tenant_id = int(tid) if isinstance(tid, str) else tid
7573
return await call_next(request)
7674
except Exception:
7775
pass

src/core/security/infrastructure/repositories/login_attempt_repository.py

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,13 @@
22

33
from sqlalchemy import delete, func, select
44

5-
from uuid import UUID
6-
75
from src.core.security.infrastructure.models.login_attempt_model import (
86
LoginAttemptModel,
97
)
108

119

1210
class SQLAlchemyLoginAttemptRepository:
13-
def __init__(self, db, tenant_id: UUID | None = None):
11+
def __init__(self, db, tenant_id: int | None = None):
1412
self._db = db
1513
self._tenant_id = tenant_id
1614

0 commit comments

Comments
 (0)