Get SQLite activity record table data (for debugging)
(
start_time: Optional[str] = Query(None, description="Start time in ISO format"),
end_time: Optional[str] = Query(None, description="End time in ISO format"),
limit: int = Query(10, ge=1, le=100),
offset: int = Query(0, ge=0),
opencontext: OpenContext = Depends(get_context_lab),
_auth: str = auth_dependency,
)
| 64 | |
| 65 | @router.get("/api/debug/activities") |
| 66 | async def get_debug_activities( |
| 67 | start_time: Optional[str] = Query(None, description="Start time in ISO format"), |
| 68 | end_time: Optional[str] = Query(None, description="End time in ISO format"), |
| 69 | limit: int = Query(10, ge=1, le=100), |
| 70 | offset: int = Query(0, ge=0), |
| 71 | opencontext: OpenContext = Depends(get_context_lab), |
| 72 | _auth: str = auth_dependency, |
| 73 | ): |
| 74 | """Get SQLite activity record table data (for debugging)""" |
| 75 | try: |
| 76 | from datetime import datetime |
| 77 | |
| 78 | start_dt = datetime.fromisoformat(start_time) if start_time else None |
| 79 | end_dt = datetime.fromisoformat(end_time) if end_time else None |
| 80 | |
| 81 | activities = get_storage().get_activities( |
| 82 | start_time=start_dt, end_time=end_dt, limit=limit, offset=offset |
| 83 | ) |
| 84 | |
| 85 | for activity in activities: |
| 86 | if activity.get("resources"): |
| 87 | try: |
| 88 | activity["resources"] = json.loads(activity["resources"]) |
| 89 | except (json.JSONDecodeError, TypeError) as e: |
| 90 | logger.warning( |
| 91 | f"Failed to parse resources for activity {activity.get('id')}: {e}, raw: {activity.get('resources')}" |
| 92 | ) |
| 93 | activity["resources"] = None |
| 94 | |
| 95 | return convert_resp(data={"activities": activities, "total": len(activities)}) |
| 96 | |
| 97 | except Exception as e: |
| 98 | logger.exception(f"Error getting debug activities: {e}") |
| 99 | return convert_resp( |
| 100 | code=500, status=500, message=f"Failed to get debug activities: {str(e)}" |
| 101 | ) |
| 102 | |
| 103 | |
| 104 | @router.get("/api/debug/tips") |
nothing calls this directly
no test coverage detected