application.queries.session_queries¶
src.application.queries.session_queries
¶
Session queries (CQRS read operations).
Queries represent requests for session information. They are immutable dataclasses with question-like names. Queries NEVER change state.
Pattern: - Queries are data containers (no logic) - Handlers fetch and return data - Queries never change state
Classes¶
GetSession
dataclass
¶
Get a single session by ID.
Attributes:
| Name | Type | Description |
|---|---|---|
session_id |
UUID
|
Session identifier. |
user_id |
UUID
|
User identifier (for authorization check). |
Example
query = GetSession( ... session_id=UUID("abc123..."), ... user_id=UUID("123e4567..."), ... ) result = await handler.handle(query)
Source code in src/application/queries/session_queries.py
ListUserSessions
dataclass
¶
List all sessions for a user.
Attributes:
| Name | Type | Description |
|---|---|---|
user_id |
UUID
|
User identifier. |
active_only |
bool
|
If True, only return active (non-revoked, non-expired) sessions. |
current_session_id |
UUID | None
|
Current session ID (to mark it in response). |
Example
query = ListUserSessions( ... user_id=UUID("123e4567..."), ... active_only=True, ... current_session_id=UUID("abc123..."), ... ) result = await handler.handle(query)