INNER CODE UNIT · Python

fetch_projects_data

sunithvs/devb.io · api/main.py:96

async def fetch_projects_data(username: Annotated[str, Depends(verify_username)]):
    """Fetch GitHub user's projects and languages data"""
    try:
        username = username.strip().lower()
        cache_key = f"github_profile_projects:{username}"
        if Settings.CACHE_ENABLED:
            cached_response = await redis_client.get(cache_key)

            if cached_response and not Settings.DEBUG:
                return json.loads(cached_response)

        project_data = GitHubProjectRanker().get_featured(username)
        if Settings.CACHE_ENABLED:
            await redis_client.setex(name=cache_key, value=json.dumps(project_data), time=Settings.DEFAULT_CACHE_TTL)
        return project_data

    except Exception as e:
        raise HTTPException(status_code=404, detail=f"User {username} not found: {str(e)}")

View source record →

📰 Research Paper
Loading…
⏳ Fetching content…