1010 B
1010 B
id, title, status, assignee, created_date, labels, dependencies, references, priority
| id | title | status | assignee | created_date | labels | dependencies | references | priority | |
|---|---|---|---|---|---|---|---|---|---|
| ML-99 | Raw SQL with string concatenation in ScrobbleRules | Done | 2026-04-20 08:58 |
|
medium |
Description
GitHub: created 2026-02-17 · updated 2026-03-05 · closed 2026-03-05
Priority: Medium
Description
lib/music_library/scrobble_rules.ex — Four apply_all_*_rules functions (lines 398-598) build CASE/WHEN and WHERE IN clauses via string concatenation and execute with Repo.query/2. Values are properly parameterized, but the SQL structure (placeholders, CASE clauses) is built via string interpolation, making it harder to maintain and test than Ecto query builders.
Expected behavior
Use Ecto query builders or a safer SQL construction approach to improve maintainability and testability.
Source
From technical debt audit (2026-02-17), item #2.