26 lines
838 B
Python
26 lines
838 B
Python
from fastapi import APIRouter, Depends, Query
|
|
|
|
from app.core.security import get_current_user
|
|
from app.models.user import User
|
|
from app.services.bandcamp import discover_by_tag, get_trending_tags
|
|
|
|
router = APIRouter(prefix="/bandcamp", tags=["bandcamp"])
|
|
|
|
|
|
@router.get("/discover")
|
|
async def bandcamp_discover(
|
|
tags: str = Query(..., description="Comma-separated tags, e.g. 'indie-rock,shoegaze'"),
|
|
sort: str = Query("new", description="Sort: new, rec, or pop"),
|
|
page: int = Query(1),
|
|
user: User = Depends(get_current_user),
|
|
):
|
|
tag_list = [t.strip() for t in tags.split(",") if t.strip()]
|
|
if not tag_list:
|
|
return []
|
|
return await discover_by_tag(tag_list, sort=sort, page=page)
|
|
|
|
|
|
@router.get("/tags")
|
|
async def bandcamp_tags(user: User = Depends(get_current_user)):
|
|
return await get_trending_tags()
|