refactor: unify user profile endpoints with query parameters
Removed Endpoints
-
❌ GET /users/{user_id}/streaks -
❌ GET /users/{user_id}/activity-timeline -
❌ GET /users/{user_id}/profile-summary
Added Endpoint
-
✅ GET /users/{user_id}/profile - Unified profile endpoint with optional query parameters
New Endpoint Features
Base Response:
- Always returns user_id and user_name
Optional Includes (via ?include= query parameter):
- streaks - Adds streak data (contributions, edits, combined streaks)
- timeline - Adds 30-day activity timeline
- summary - Adds comprehensive profile summary with contribution stats
Usage Examples:
- GET /users/{user_id}/profile - Basic user info
- GET /users/{user_id}/profile?include=streaks - User info + streak data
- GET /users/{user_id}/profile?include=streaks,timeline - User info + streaks + timeline
- GET /users/{user_id}/profile?include=streaks,timeline,summary - All data
Benefits
- Simplified API - One endpoint instead of four
- Flexible data fetching - Client controls what data to include
- Better performance - Only fetch needed data
- Public access - No authentication required (all endpoints are public)
Files Modified
- app/api/v1/endpoints/users.py - Removed 3 endpoints, added 1 unified endpoint
- app/schemas/record_history.py - Added date import
Edited by Ranjith Raj