diff --git a/lib/music_library/records/musicbrainz_data.ex b/lib/music_library/records/musicbrainz_data.ex index f46a0c83..06a469a3 100644 --- a/lib/music_library/records/musicbrainz_data.ex +++ b/lib/music_library/records/musicbrainz_data.ex @@ -1,10 +1,7 @@ defmodule MusicLibrary.Records.MusicbrainzData do - def included_release_groups(musicbrainz_data, included_release_group_ids) do + def included_release_groups(musicbrainz_data) do musicbrainz_data - |> Map.get("relations", []) - |> Enum.filter(fn relation -> - relation["release_group"]["id"] in included_release_group_ids - end) + |> get_release_groups() |> Enum.map(fn relation -> MusicBrainz.ReleaseGroup.from_api_response(relation["release_group"]) end) @@ -17,6 +14,12 @@ defmodule MusicLibrary.Records.MusicbrainzData do end def included_release_group_ids(musicbrainz_data) do + musicbrainz_data + |> included_release_groups() + |> Enum.map(fn rg -> rg.id end) + end + + defp get_release_groups(musicbrainz_data) do musicbrainz_data |> Map.get("relations", []) |> Enum.filter(fn relation -> @@ -24,6 +27,5 @@ defmodule MusicLibrary.Records.MusicbrainzData do relation["type"] == "included in" and relation["direction"] == "backward" end) - |> Enum.map(fn relation -> relation["release_group"]["id"] end) end end diff --git a/lib/music_library/records/record.ex b/lib/music_library/records/record.ex index e85da2c8..47c81f28 100644 --- a/lib/music_library/records/record.ex +++ b/lib/music_library/records/record.ex @@ -33,10 +33,9 @@ defmodule MusicLibrary.Records.Record do def types, do: @types def included_release_groups(record) do - MusicbrainzData.included_release_groups( - record.musicbrainz_data, - record.included_release_group_ids - ) + record.musicbrainz_data + |> MusicbrainzData.included_release_groups() + |> Enum.filter(fn rg -> rg.id in record.included_release_group_ids end) end def included_release_groups_count(record) do