From 86db563bd4cec80c7c513f189c18d2c96076d10e Mon Sep 17 00:00:00 2001 From: Claudio Ortolina Date: Mon, 10 Feb 2025 16:40:31 +0000 Subject: [PATCH] Rename MusicbrainzData -> ReleaseGroup --- .../release_group.ex} | 22 ++++++++++--------- lib/music_library/records/record.ex | 9 ++++---- 2 files changed, 17 insertions(+), 14 deletions(-) rename lib/{music_library/records/musicbrainz_data.ex => music_brainz/release_group.ex} (53%) diff --git a/lib/music_library/records/musicbrainz_data.ex b/lib/music_brainz/release_group.ex similarity index 53% rename from lib/music_library/records/musicbrainz_data.ex rename to lib/music_brainz/release_group.ex index 8ad1fe23..3b81a353 100644 --- a/lib/music_library/records/musicbrainz_data.ex +++ b/lib/music_brainz/release_group.ex @@ -1,26 +1,28 @@ -defmodule MusicLibrary.Records.MusicbrainzData do - def included_release_groups(musicbrainz_data) do - musicbrainz_data +defmodule MusicBrainz.ReleaseGroup do + alias MusicBrainz.ReleaseGroupSearchResult + + def included_release_groups(release_group) do + release_group |> get_release_groups() |> Enum.map(fn relation -> - MusicBrainz.ReleaseGroupSearchResult.from_api_response(relation["release_group"]) + ReleaseGroupSearchResult.from_api_response(relation["release_group"]) end) end - def release_ids(musicbrainz_data) do - musicbrainz_data + def release_ids(release_group) do + release_group |> Map.get("releases", []) |> Enum.map(fn release -> release["id"] end) end - def included_release_group_ids(musicbrainz_data) do - musicbrainz_data + def included_release_group_ids(release_group) do + release_group |> included_release_groups() |> Enum.map(fn rg -> rg.id end) end - defp get_release_groups(musicbrainz_data) do - musicbrainz_data + defp get_release_groups(release_group) do + release_group |> Map.get("relations", []) |> Enum.filter(fn relation -> relation["target-type"] == "release_group" and diff --git a/lib/music_library/records/record.ex b/lib/music_library/records/record.ex index 47c81f28..b3a6991d 100644 --- a/lib/music_library/records/record.ex +++ b/lib/music_library/records/record.ex @@ -2,7 +2,8 @@ defmodule MusicLibrary.Records.Record do use Ecto.Schema import Ecto.Changeset - alias MusicLibrary.Records.{Artist, Cover, MusicbrainzData} + alias MusicLibrary.Records.{Artist, Cover} + alias MusicBrainz.ReleaseGroup @formats [:cd, :backup, :vinyl, :blu_ray, :dvd, :multi] @types [:album, :ep, :live, :compilation, :single, :other] @@ -34,7 +35,7 @@ defmodule MusicLibrary.Records.Record do def included_release_groups(record) do record.musicbrainz_data - |> MusicbrainzData.included_release_groups() + |> ReleaseGroup.included_release_groups() |> Enum.filter(fn rg -> rg.id in record.included_release_group_ids end) end @@ -120,7 +121,7 @@ defmodule MusicLibrary.Records.Record do changeset musicbrainz_data -> - put_change(changeset, :release_ids, MusicbrainzData.release_ids(musicbrainz_data)) + put_change(changeset, :release_ids, ReleaseGroup.release_ids(musicbrainz_data)) end end @@ -133,7 +134,7 @@ defmodule MusicLibrary.Records.Record do put_change( changeset, :included_release_group_ids, - MusicbrainzData.included_release_group_ids(musicbrainz_data) + ReleaseGroup.included_release_group_ids(musicbrainz_data) ) end end