fix: Songs API filtering and default vertical
Some checks failed
Deploy Fediversion / deploy (push) Failing after 1s

- Added vertical query param to GET /songs for correct filtering
- Changed default vertical to Phish (was Goose) to avoid empty data for new users
This commit is contained in:
fullsizemalt 2025-12-29 00:03:56 -08:00
parent f966ef7c2e
commit 5b8cfffcf9
2 changed files with 18 additions and 3 deletions

View file

@ -19,8 +19,23 @@ def create_song(song: SongCreate, session: Session = Depends(get_session), curre
return db_song return db_song
@router.get("/", response_model=List[SongRead]) @router.get("/", response_model=List[SongRead])
def read_songs(offset: int = 0, limit: int = Query(default=100, le=1000), session: Session = Depends(get_session)): def read_songs(
songs = session.exec(select(Song).offset(offset).limit(limit)).all() offset: int = 0,
limit: int = Query(default=100, le=1000),
vertical: str = Query(default=None, description="Filter by vertical slug"),
session: Session = Depends(get_session)
):
query = select(Song)
if vertical:
from models import Vertical
vertical_entity = session.exec(select(Vertical).where(Vertical.slug == vertical)).first()
if vertical_entity:
query = query.where(Song.vertical_id == vertical_entity.id)
else:
return []
songs = session.exec(query.offset(offset).limit(limit)).all()
return songs return songs
@router.get("/{slug}", response_model=SongReadWithStats) @router.get("/{slug}", response_model=SongReadWithStats)

View file

@ -1,6 +1,6 @@
export const VERTICALS = [ export const VERTICALS = [
{ slug: "goose", name: "Goose" },
{ slug: "phish", name: "Phish" }, { slug: "phish", name: "Phish" },
{ slug: "goose", name: "Goose" },
{ slug: "grateful-dead", name: "Grateful Dead" }, { slug: "grateful-dead", name: "Grateful Dead" },
{ slug: "dead-and-company", name: "Dead & Company" }, { slug: "dead-and-company", name: "Dead & Company" },
{ slug: "billy-strings", name: "Billy Strings" }, { slug: "billy-strings", name: "Billy Strings" },