Skip to content

Commit 535d37c

Browse files
committed
unification of api (result -> skip/has more,..)
1 parent a201c96 commit 535d37c

File tree

6 files changed

+16
-22
lines changed

6 files changed

+16
-22
lines changed

backend/app/db/repositories/admin/admin_events_repository.py

Lines changed: 3 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
from dataclasses import asdict
21
from datetime import datetime, timedelta, timezone
32
from typing import Any, Dict, List
43

@@ -354,18 +353,11 @@ async def count_events_for_replay(self, query: Dict[str, Any]) -> int:
354353
"""Count events matching replay query."""
355354
return await self.events_collection.count_documents(query)
356355

357-
async def get_events_preview_for_replay(self, query: Dict[str, Any], limit: int = 100) -> List[Dict[str, Any]]:
356+
async def get_events_preview_for_replay(self, query: Dict[str, Any], limit: int = 100) -> List[EventSummary]:
358357
"""Get preview of events for replay."""
359358
cursor = self.events_collection.find(query).limit(limit)
360359
event_docs = await cursor.to_list(length=limit)
361-
362-
# Convert to event summaries
363-
summaries: List[Dict[str, Any]] = []
364-
for doc in event_docs:
365-
summary = self.summary_mapper.from_mongo_document(doc)
366-
summaries.append(asdict(summary))
367-
368-
return summaries
360+
return [self.summary_mapper.from_mongo_document(doc) for doc in event_docs]
369361

370362
def build_replay_query(self, replay_query: ReplayQuery) -> Dict[str, Any]:
371363
"""Build MongoDB query from replay query model."""
@@ -384,8 +376,7 @@ async def prepare_replay_session(
384376
# Get events preview for dry run
385377
events_preview: List[EventSummary] = []
386378
if dry_run:
387-
preview_docs = await self.get_events_preview_for_replay(query, limit=100)
388-
events_preview = [self.summary_mapper.from_mongo_document(e) for e in preview_docs]
379+
events_preview = await self.get_events_preview_for_replay(query, limit=100)
389380

390381
# Return unified session data
391382
session_data = ReplaySessionData(

backend/app/db/repositories/event_repository.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -128,7 +128,7 @@ async def get_events_by_aggregate(
128128
async def get_events_by_correlation(
129129
self, correlation_id: str, limit: int = 100, skip: int = 0
130130
) -> EventListResult:
131-
query = {EventFields.METADATA_CORRELATION_ID: correlation_id}
131+
query: dict[str, Any] = {EventFields.METADATA_CORRELATION_ID: correlation_id}
132132
total_count = await self._collection.count_documents(query)
133133

134134
cursor = (

backend/app/db/repositories/user_settings_repository.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,10 @@ async def get_settings_events(
5959
until: datetime | None = None,
6060
limit: int | None = None,
6161
) -> List[DomainSettingsEvent]:
62-
query = {"aggregate_id": f"user_settings_{user_id}", "event_type": {"$in": [str(et) for et in event_types]}}
62+
query: Dict[str, Any] = {
63+
"aggregate_id": f"user_settings_{user_id}",
64+
"event_type": {"$in": [str(et) for et in event_types]},
65+
}
6366

6467
if since or until:
6568
timestamp_query: Dict[str, Any] = {}

backend/app/services/saga/saga_orchestrator.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -390,8 +390,8 @@ async def get_saga_status(self, saga_id: str) -> Saga | None:
390390

391391
async def get_execution_sagas(self, execution_id: str) -> list[Saga]:
392392
"""Get all sagas for an execution, sorted by created_at descending (newest first)"""
393-
sagas = await self._repo.get_sagas_by_execution(execution_id)
394-
return sagas
393+
result = await self._repo.get_sagas_by_execution(execution_id)
394+
return result.sagas
395395

396396
async def cancel_saga(self, saga_id: str) -> bool:
397397
"""Cancel a running saga and trigger compensation.

backend/tests/integration/services/events/test_event_service_integration.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -29,21 +29,21 @@ async def test_event_service_access_and_queries(scope) -> None: # type: ignore[
2929
await repo.store_event(e1)
3030
await repo.store_event(e2)
3131

32-
# get_execution_events returns [] when non-admin for different user; then admin sees
32+
# get_execution_events returns None when non-admin for different user; then admin sees
3333
events_user = await svc.get_execution_events("agg1", "u2", UserRole.USER)
3434
assert events_user is None
3535
events_admin = await svc.get_execution_events("agg1", "admin", UserRole.ADMIN)
36-
assert any(ev.aggregate_id == "agg1" for ev in events_admin)
36+
assert any(ev.aggregate_id == "agg1" for ev in events_admin.events)
3737

3838
# query_events_advanced: basic run (empty filters) should return a result structure
3939
res = await svc.query_events_advanced("u1", UserRole.USER, filters=EventFilter(), sort_by="correlation_id", sort_order=SortOrder.ASC)
4040
assert res is not None
4141

4242
# get_events_by_correlation filters non-admin to their own user_id
4343
by_corr_user = await svc.get_events_by_correlation("c1", user_id="u1", user_role=UserRole.USER, include_all_users=False)
44-
assert all(ev.metadata.user_id == "u1" for ev in by_corr_user)
44+
assert all(ev.metadata.user_id == "u1" for ev in by_corr_user.events)
4545
by_corr_admin = await svc.get_events_by_correlation("c1", user_id="admin", user_role=UserRole.ADMIN, include_all_users=True)
46-
assert len(by_corr_admin) >= 2
46+
assert len(by_corr_admin.events) >= 2
4747

4848
# get_event_statistics (time window)
4949
_ = await svc.get_event_statistics("u1", UserRole.USER, start_time=now - timedelta(days=1), end_time=now + timedelta(days=1))

backend/tests/unit/db/repositories/test_event_repository.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,11 +41,11 @@ async def test_store_get_and_queries(repo: EventRepository, db) -> None: # type
4141
by_agg = await repo.get_events_by_aggregate("x2")
4242
assert any(ev.event_id == "e2" for ev in by_agg)
4343
by_corr = await repo.get_events_by_correlation("c1")
44-
assert len(by_corr) >= 2
44+
assert len(by_corr.events) >= 2
4545
by_user = await repo.get_events_by_user("u1", limit=10)
4646
assert len(by_user) >= 2
4747
exec_events = await repo.get_execution_events("x1")
48-
assert any(ev.event_id == "e1" for ev in exec_events)
48+
assert any(ev.event_id == "e1" for ev in exec_events.events)
4949

5050

5151
@pytest.mark.asyncio

0 commit comments

Comments
 (0)