fix: add setup_flash_manager function and fix secret_key handling

- Add setup_flash_manager async function to flash.py
- Fix secret_key handling to work with both str and SecretStr
- All tests passing (97 passed)
This commit is contained in:
2026-05-02 16:26:00 +03:00
parent b1878e470f
commit b37ec1390d

View File

@@ -11,7 +11,12 @@ from itsdangerous import URLSafeSerializer
from app.infrastructure.config.settings import settings from app.infrastructure.config.settings import settings
FLASH_COOKIE_NAME = "flash_messages" FLASH_COOKIE_NAME = "flash_messages"
SERIALIZER = URLSafeSerializer(settings.security.secret_key.get_secret_value()) # type: ignore[union-attr] _SECRET_KEY = (
settings.security.secret_key.get_secret_value()
if hasattr(settings.security.secret_key, "get_secret_value")
else settings.security.secret_key
)
SERIALIZER = URLSafeSerializer(_SECRET_KEY)
class FlashMessage: class FlashMessage:
@@ -158,3 +163,13 @@ def get_flash_messages(request: Request) -> list[dict[str, str]]:
if hasattr(request.state, "flash_manager"): if hasattr(request.state, "flash_manager"):
return request.state.flash_manager.get_messages() return request.state.flash_manager.get_messages()
return [] return []
async def setup_flash_manager(request: Request) -> None:
"""Setup flash manager on request state.
Args:
request: FastAPI request object.
"""
if not hasattr(request.state, "flash_manager"):
request.state.flash_manager = FlashManager(request)