Skip to content

Commit b85696e

Browse files
committed
MP-432 fix graphene uuid
1 parent 183dd58 commit b85696e

File tree

2 files changed

+18
-14
lines changed

2 files changed

+18
-14
lines changed

django_google_structured_logger/graphene_middlewares.py

Lines changed: 16 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -10,17 +10,23 @@
1010

1111
class GrapheneSetUserContextMiddleware:
1212
def resolve(self, next, root, info, **args):
13-
_current_request.set(
14-
RequestStorage(
15-
uuid=str(uuid.uuid4()),
16-
user_id=lambda: self._get_user_attribute(
17-
info.context.user, settings.LOG_USER_ID_FIELD
18-
),
19-
user_display_field=lambda: self._get_user_attribute(
20-
info.context.user, settings.LOG_USER_DISPLAY_FIELD
21-
),
13+
storage = _current_request.get()
14+
if storage is None:
15+
_current_request.set(
16+
RequestStorage(
17+
uuid=str(uuid.uuid4()),
18+
user_id=lambda: self._get_user_attribute(info.context.user, settings.LOG_USER_ID_FIELD),
19+
user_display_field=lambda: self._get_user_attribute(
20+
info.context.user, settings.LOG_USER_DISPLAY_FIELD
21+
),
22+
)
23+
)
24+
else:
25+
storage.uuid = storage.uuid or str(uuid.uuid4())
26+
storage.user_id = lambda: self._get_user_attribute(info.context.user, settings.LOG_USER_ID_FIELD)
27+
storage.user_display_field = lambda: self._get_user_attribute(
28+
info.context.user, settings.LOG_USER_DISPLAY_FIELD
2229
)
23-
)
2430

2531
return next(root, info, **args)
2632

django_google_structured_logger/storages.py

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,16 +3,14 @@
33
from typing import Callable, Optional
44

55

6-
@dataclass(frozen=True)
6+
@dataclass()
77
class RequestStorage:
88
uuid: str
99
user_id: Callable[[], Optional[int]] = lambda: None
1010
user_display_field: Callable[[], Optional[str]] = lambda: None
1111

1212

13-
_current_request: ContextVar[Optional[RequestStorage]] = ContextVar(
14-
"_current_request", default=None
15-
)
13+
_current_request: ContextVar[Optional[RequestStorage]] = ContextVar("_current_request", default=None)
1614

1715

1816
def get_current_request() -> Optional[RequestStorage]:

0 commit comments

Comments
 (0)