navidrome/server
Claude 68591dab06
Add API abstraction layer for mediafiles in native API
Introduce a mapping layer between internal model.MediaFile and the API
response type. The native API /song endpoint now returns apimodel.Song
instead of exposing the database model directly. This decouples the API
surface from the persistence layer, enabling calculated fields and hiding
internal details (Path, FolderID, LibraryPath, PID, etc.).

The architecture is designed for expansion to other models:
- mappedRepository: generic REST repository wrapper that transforms
  Read/ReadAll results through mapping functions
- apimodel package: dedicated API response types with explicit field
  selection and JSON tags independent of the model

https://claude.ai/code/session_01TvZ2CgPPfFoxzNYoWuPUBg
2026-02-15 21:28:18 +00:00
..
backgrounds feat(ui): use webp for login backgrounds 2025-03-06 23:32:52 -05:00
e2e docs: documents how subsonic e2e tests are structured 2026-02-11 22:49:41 -05:00
events feat: Multi-library support (#4181) 2025-07-18 18:41:12 -04:00
nativeapi Add API abstraction layer for mediafiles in native API 2026-02-15 21:28:18 +00:00
public fix: don't expose JWT-related errors (#4892) 2026-01-16 06:20:10 -05:00
subsonic fix(subsonic): validate JSONP callback parameter 2026-02-08 10:33:46 -05:00
testdata fix(server): improve error message for encrypted TLS private keys (#4742) 2025-11-28 17:08:34 -05:00
auth.go refactor: run Go modernize (#5002) 2026-02-08 09:57:30 -05:00
auth_test.go refactor: run Go modernize (#5002) 2026-02-08 09:57:30 -05:00
initial_setup.go chore(server): add logs to begin/end transaction 2025-02-24 19:13:42 -05:00
initial_setup_test.go Upgrade Ginkgo to V2 2022-07-26 16:53:17 -04:00
middlewares.go refactor: run Go modernize (#5002) 2026-02-08 09:57:30 -05:00
middlewares_test.go feat(ui): show user's lastAccess (#3342) 2024-09-30 20:46:10 -04:00
serve_index.go refactor: run Go modernize (#5002) 2026-02-08 09:57:30 -05:00
serve_index_test.go feat(ui): implement new event stream connection logic 2025-06-29 10:18:05 -04:00
server.go refactor: run Go modernize (#5002) 2026-02-08 09:57:30 -05:00
server_suite_test.go Rename log.LevelCritical to log.LevelFatal 2022-12-21 14:53:36 -05:00
server_test.go feat(plugins): New Plugin System with multi-language PDK support (#4833) 2026-01-14 19:22:48 -05:00