Refresh User Data on Demand
Description
Updates to a user's Codeboard profile may take a few minutes to reflect recent activity on LeetCode. To provide a more responsive experience, we need an API endpoint that allows users to manually refresh their profile data on demand.
Suggested Fix:
Create this API endpoint in the leaderboard app and ensure that:
- The user is authenticated before proceeding.
- Retrieve the user's username and ID from the Database [Leetcode Model].
- The user's username and ID are retrieved and passed to
get_and_update_user_data() (a Celery task in tasks.py) to fetch and update the data.
- Prefer running it as a Celery task, though this might impact existing concurrency settings—so check if running the function directly would be a better fit for your setup.
Refer to the Profile(APIView) class in leaderboard/views.py for a similar logic of getting the user instance.
Additional Notes:
- Running the task asynchronously is ideal, but it may require adjustments based on how it interacts with current concurrency limits.
- Log the errors properly.
Refresh User Data on Demand
Description
Updates to a user's Codeboard profile may take a few minutes to reflect recent activity on LeetCode. To provide a more responsive experience, we need an API endpoint that allows users to manually refresh their profile data on demand.
Suggested Fix:
Create this API endpoint in the leaderboard app and ensure that:
get_and_update_user_data()(a Celery task intasks.py) to fetch and update the data.Refer to the
Profile(APIView)class inleaderboard/views.pyfor a similar logic of getting the user instance.Additional Notes: