Files
vynl/backend/app/api/endpoints/bandcamp.py

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()