2222 EventReplayStatusResponse ,
2323 EventStatsResponse ,
2424)
25- from app .schemas_pydantic .admin_events import EventFilter as AdminEventFilter
2625from app .schemas_pydantic .user import UserResponse
2726from app .services .admin import AdminEventsService
2827
29-
30- def _to_event_filter (pydantic_filter : AdminEventFilter ) -> EventFilter :
31- """Convert Pydantic EventFilter to domain EventFilter."""
32- data = pydantic_filter .model_dump (mode = "json" ) # auto-converts enums to strings
33- data ["text_search" ] = data .pop ("search_text" , None )
34- return EventFilter (** data )
35-
36-
3728router = APIRouter (
3829 prefix = "/admin/events" , tags = ["admin-events" ], route_class = DishkaRoute , dependencies = [Depends (admin_user )]
3930)
@@ -42,7 +33,7 @@ def _to_event_filter(pydantic_filter: AdminEventFilter) -> EventFilter:
4233@router .post ("/browse" )
4334async def browse_events (request : EventBrowseRequest , service : FromDishka [AdminEventsService ]) -> EventBrowseResponse :
4435 try :
45- event_filter = _to_event_filter ( request .filters )
36+ event_filter = EventFilter ( ** request .filters . model_dump ( mode = "json" ) )
4637
4738 result = await service .browse_events (
4839 event_filter = event_filter ,
@@ -85,12 +76,10 @@ async def export_events_csv(
8576 limit : int = Query (default = 10000 , le = 50000 ),
8677) -> StreamingResponse :
8778 try :
88- export_filter = _to_event_filter (
89- AdminEventFilter (
90- event_types = event_types ,
91- start_time = start_time ,
92- end_time = end_time ,
93- )
79+ export_filter = EventFilter (
80+ event_types = [str (et ) for et in event_types ] if event_types else None ,
81+ start_time = start_time ,
82+ end_time = end_time ,
9483 )
9584 result = await service .export_events_csv_content (event_filter = export_filter , limit = limit )
9685 return StreamingResponse (
@@ -117,16 +106,14 @@ async def export_events_json(
117106) -> StreamingResponse :
118107 """Export events as JSON with comprehensive filtering."""
119108 try :
120- export_filter = _to_event_filter (
121- AdminEventFilter (
122- event_types = event_types ,
123- aggregate_id = aggregate_id ,
124- correlation_id = correlation_id ,
125- user_id = user_id ,
126- service_name = service_name ,
127- start_time = start_time ,
128- end_time = end_time ,
129- )
109+ export_filter = EventFilter (
110+ event_types = [str (et ) for et in event_types ] if event_types else None ,
111+ aggregate_id = aggregate_id ,
112+ correlation_id = correlation_id ,
113+ user_id = user_id ,
114+ service_name = service_name ,
115+ start_time = start_time ,
116+ end_time = end_time ,
130117 )
131118 result = await service .export_events_json_content (event_filter = export_filter , limit = limit )
132119 return StreamingResponse (
0 commit comments