Is your feature request related to a problem? Please describe.
The README marks "Sounds routing" as TODO. The web frontend (ecibot-web) already has an audio upload page (/app/audio-request) and audio detail/list pages planned, but there are no backend endpoints to support them.
Describe the solution you'd like
Implement the following API endpoints under the sounds routing:
GET /sounds — List all sounds (with pagination, filters for pending/approved)
GET /sound/{id} — Get sound details (name, file URL, uploader, votes)
POST /sound — Upload a new sound (multipart audio file + metadata)
PUT /sound/{id} — Update sound metadata (name, etc.)
DELETE /sound/{id} — Delete a sound
POST /sound/{id}/vote — Vote on a sound (thumbs up/down)
GET /user/sounds — List sounds uploaded by the authenticated user
Describe alternatives you've considered
- Embedding audio file serving through a separate static file server
- Using the Discord bot as a proxy for audio operations
Additional context
The web frontend needs at minimum:
- Audio upload with drag & drop
- Pending sounds list with voting
- Sound detail page with audio player
Media
N/A
Is your feature request related to a problem? Please describe.
The README marks "Sounds routing" as TODO. The web frontend (
ecibot-web) already has an audio upload page (/app/audio-request) and audio detail/list pages planned, but there are no backend endpoints to support them.Describe the solution you'd like
Implement the following API endpoints under the sounds routing:
GET /sounds— List all sounds (with pagination, filters for pending/approved)GET /sound/{id}— Get sound details (name, file URL, uploader, votes)POST /sound— Upload a new sound (multipart audio file + metadata)PUT /sound/{id}— Update sound metadata (name, etc.)DELETE /sound/{id}— Delete a soundPOST /sound/{id}/vote— Vote on a sound (thumbs up/down)GET /user/sounds— List sounds uploaded by the authenticated userDescribe alternatives you've considered
Additional context
The web frontend needs at minimum:
Media
N/A