backend.routers.songs

Song catalogue router.

Handles CRUD operations for songs in the band’s repertoire, song candidate proposals (member submissions), voting/feedback on candidates, and per-song rehearsal and gig statistics.

Requires authentication. Create/update/delete operations additionally require the editor or admin role.

Prefix: /songs | Tag: songs

backend.routers.songs.get_song_candidates(db=Depends(dependency=<function get_db>, use_cache=True, scope=None), current=Depends(dependency=<function get_current_user>, use_cache=True, scope=None))[Quellcode]
backend.routers.songs.get_songs(song_id, db=Depends(dependency=<function get_db>, use_cache=True, scope=None), current=Depends(dependency=<function get_current_user>, use_cache=True, scope=None))[Quellcode]
backend.routers.songs.get_song_rehearsal_history(song_id, limit=Query(3), db=Depends(dependency=<function get_db>, use_cache=True, scope=None), current=Depends(dependency=<function get_current_user>, use_cache=True, scope=None))[Quellcode]

Gibt die letzten N Proben zurück, in denen dieser Song geprobt wurde.

backend.routers.songs.get_song_feedback_history(song_id, db=Depends(dependency=<function get_db>, use_cache=True, scope=None), current=Depends(dependency=<function get_current_user>, use_cache=True, scope=None))[Quellcode]

Gibt anonymisierte Abstimmungssummen aus der Tabelle song_feedback zurück.

backend.routers.songs.get_song_statistics(song_id, db=Depends(dependency=<function get_db>, use_cache=True, scope=None), current=Depends(dependency=<function get_current_user>, use_cache=True, scope=None))[Quellcode]

Gibt umfangreiche Statistiken über einen Song zurück.

backend.routers.songs.update_song(song_id, song, db=Depends(dependency=<function get_db>, use_cache=True, scope=None), current=Depends(dependency=<function get_current_user>, use_cache=True, scope=None))[Quellcode]
backend.routers.songs.delete_song(song_id, db=Depends(dependency=<function get_db>, use_cache=True, scope=None), current=Depends(dependency=<function get_current_user>, use_cache=True, scope=None))[Quellcode]
backend.routers.songs.create_song(song, db=Depends(dependency=<function get_db>, use_cache=True, scope=None), current=Depends(dependency=<function get_current_user>, use_cache=True, scope=None))[Quellcode]
backend.routers.songs.update_song_feedback(song_id, feedback, db=Depends(dependency=<function get_db>, use_cache=True, scope=None), current=Depends(dependency=<function get_current_user>, use_cache=True, scope=None))[Quellcode]
backend.routers.songs.accept_song_candidate(song_id, db=Depends(dependency=<function get_db>, use_cache=True, scope=None), current=Depends(dependency=<function get_current_user>, use_cache=True, scope=None))[Quellcode]
backend.routers.songs.get_singers(db=Depends(dependency=<function get_db>, use_cache=True, scope=None))[Quellcode]
backend.routers.songs.get_song_scrawls(interpret=Query(PydanticUndefined), title=Query(PydanticUndefined), current=Depends(dependency=<function get_current_user>, use_cache=True, scope=None))[Quellcode]