34 lines
1.1 KiB
Markdown
34 lines
1.1 KiB
Markdown
---
|
|
id: ML-62
|
|
title: Route Search artist queries through Artists context
|
|
status: Done
|
|
assignee: []
|
|
created_date: "2026-04-20 08:54"
|
|
labels: []
|
|
dependencies: []
|
|
references:
|
|
- "https://github.com/cloud8421/music_library/issues/113"
|
|
priority: low
|
|
---
|
|
|
|
## Description
|
|
|
|
<!-- SECTION:DESCRIPTION:BEGIN -->
|
|
|
|
_GitHub: created 2026-03-12 · updated 2026-03-12 · closed 2026-03-12_
|
|
|
|
## Problem
|
|
|
|
`MusicLibrary.Search.search_artists/2` and `search_artists_count/1` build their own Ecto queries directly joining `Records.ArtistRecord` to `Artists.ArtistInfo`, bypassing the `Artists` context entirely. This violates the project convention that context modules own all queries.
|
|
|
|
## Proposed solution
|
|
|
|
Add `search_by_name/2` and `search_by_name_count/1` to `MusicLibrary.Artists`, then have `Search.search_artists/2` and `Search.search_artists_count/1` delegate to them. Remove `ArtistRecord` and `ArtistInfo` aliases from `Search`.
|
|
|
|
## Files involved
|
|
|
|
- `lib/music_library/artists.ex` (add functions)
|
|
- `lib/music_library/search.ex` (delegate, remove aliases)
|
|
- Tests for `Artists` and `Search`
|
|
<!-- SECTION:DESCRIPTION:END -->
|