From e35e0894bf18284acaa7ea912ecf7fe5deb3236e Mon Sep 17 00:00:00 2001 From: Claudio Ortolina Date: Sat, 16 Nov 2024 14:56:15 +0000 Subject: [PATCH] When refreshing MusicBrainz Data, update the relevant release IDs --- lib/music_library/records/record.ex | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/lib/music_library/records/record.ex b/lib/music_library/records/record.ex index 62cd163b..503f4695 100644 --- a/lib/music_library/records/record.ex +++ b/lib/music_library/records/record.ex @@ -98,15 +98,27 @@ defmodule MusicLibrary.Records.Record do def add_musicbrainz_data(record, musicbrainz_data) do record |> change(musicbrainz_data: musicbrainz_data) + |> update_release_ids() end - def update_release_ids(record) do - release_ids = Enum.map(record.musicbrainz_data["releases"], fn r -> r["id"] end) + def update_release_ids(record = %__MODULE__{musicbrainz_data: musicbrainz_data}) do + release_ids = Enum.map(musicbrainz_data["releases"], fn r -> r["id"] end) record |> change(release_ids: release_ids) end + def update_release_ids(changeset) do + case get_change(changeset, :musicbrainz_data) do + nil -> + changeset + + musicbrainz_data -> + release_ids = Enum.map(musicbrainz_data["releases"], fn r -> r["id"] end) + put_change(changeset, :release_ids, release_ids) + end + end + def generate_cover_hash(record = %__MODULE__{cover_data: cover_data}) do hash = :crypto.hash(:sha256, cover_data) |> Base.encode16()