#+TITLE: Frontend API URL Updates - 2025-10-08 #+AUTHOR: Cascade AI Assistant #+DATE: 2025-10-08 * Overview Updated all frontend JavaScript files to use the new Radiance =define-api= endpoint URLs. * URL Changes ** Old Format =/asteroid/api/= ** New Format =/api/asteroid/= * Files Updated ** auth-ui.js - =/asteroid/api/auth-status= → =/api/asteroid/auth-status= ** front-page.js - =/asteroid/api/icecast-status= → =/api/asteroid/icecast-status= ** admin.js - =/asteroid/api/player-status= → =/api/asteroid/player/status= ** player.js (Multiple Updates) - =/asteroid/api/tracks= → =/api/asteroid/tracks= - =/api/play?track-id=${id}= → =/api/asteroid/player/play?track-id=${id}= - =/asteroid/api/playlists/create= → =/api/asteroid/playlists/create= - =/asteroid/api/playlists= → =/api/asteroid/playlists= - =/asteroid/api/playlists/${id}= → =/api/asteroid/playlists/get?playlist-id=${id}= (Note: Changed from URI pattern to query parameter) - =/asteroid/api/playlists/add-track= → =/api/asteroid/playlists/add-track= - =/asteroid/api/icecast-status= → =/api/asteroid/icecast-status= * Important Changes ** Playlist Get Endpoint The playlist retrieval endpoint changed from a URI pattern to a query parameter: Old: =GET /asteroid/api/playlists/123= New: =GET /api/asteroid/playlists/get?playlist-id=123= This aligns with Radiance's =define-api= pattern where parameters are passed as GET/POST variables rather than URI patterns. * Files Not Updated ** users.js This file contains API calls to user management endpoints that don't exist in the backend yet: - =/asteroid/api/users/stats= - =/asteroid/api/users= - =/asteroid/api/users/${id}/role= - =/asteroid/api/users/${id}/deactivate= - =/asteroid/api/users/${id}/activate= - =/asteroid/api/users/create= These endpoints will need to be implemented using =define-api= when user management features are added. ** profile.js This file contains API calls to user profile endpoints that are currently commented out in the backend: - =/asteroid/api/user/profile= - =/asteroid/api/user/listening-stats= - =/asteroid/api/user/recent-tracks= - =/asteroid/api/user/top-artists= - =/asteroid/api/user/export-data= - =/asteroid/api/user/clear-history= These will need to be updated once the profile API endpoints are implemented with =define-api=. * Testing Checklist - [X] Update auth-ui.js - [X] Update front-page.js - [X] Update admin.js - [X] Update player.js - [ ] Test authentication flow - [ ] Test track loading and playback - [ ] Test playlist creation - [ ] Test playlist loading (with new query parameter format) - [ ] Test adding tracks to playlists - [ ] Test Icecast status updates - [ ] Implement and test user management APIs - [ ] Implement and test user profile APIs * Next Steps 1. **Test the Application**: Start the server and test all functionality 2. **Implement Missing APIs**: Create user management and profile APIs using =define-api= 3. **Update Remaining Files**: Once APIs are implemented, update users.js and profile.js 4. **Monitor Console**: Check browser console for any 404 errors indicating missed endpoints