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

Merge request reports

Loading