Commit Graph

10 Commits

Author SHA1 Message Date
Claudio Ortolina ff3f809c2c ML-170: add enrichment fields to collection API
Add MusicLibrary.Collection.Enrichment module with batch scrobble, artist
country, and selected release enrichment from existing tables.

Wire enrichment into all four collection API endpoints (index, latest,
random, on_this_day). New JSON fields: scrobble_count, last_listened_at,
artist_country, selected_release.

Uses 3 fixed-count batch queries regardless of page size — no N+1 risk.
No schema changes or migrations required.
2026-05-22 13:21:14 +01:00
Claudio Ortolina e1943ff030 Invert conditional and use existing functions 2026-05-11 15:03:55 +01:00
Claudio Ortolina ba62d54cc5 ML-177: implementation 2026-05-10 20:39:18 +01:00
Claudio Ortolina a3bc6d7cf3 ML-176.1: support search in collection api controller 2026-05-10 14:52:01 +01:00
Claudio Ortolina eb8a00ab54 Replace String.to_integer with safe Integer.parse
Use Integer.parse/1 instead of String.to_integer/1 on user-supplied
and external API input to prevent ArgumentError crashes on non-numeric
values. Adds fallback defaults or nil returns at each call site.
2026-03-05 14:27:37 +00:00
Claudio Ortolina f02564fa30 Add /api/collection/on_this_day endpoint 2025-10-24 20:06:23 +01:00
Claudio Ortolina eafedb13d6 refactor: use pipe operator in collection controller params 2025-04-07 19:35:49 +01:00
Claudio Ortolina 3d0eec3bff Add /api/collection endpoint 2025-03-10 11:17:51 +00:00
Claudio Ortolina d194a54760 Adds API to return a random record from the collection 2025-01-01 19:28:49 +00:00
Claudio Ortolina 4f456322fc Bootstrap the /api namespace 2024-12-21 14:38:39 +00:00