diff --git a/lib/music_brainz/api.ex b/lib/music_brainz/api.ex index 5c730d82..47a4b943 100644 --- a/lib/music_brainz/api.ex +++ b/lib/music_brainz/api.ex @@ -289,7 +289,7 @@ defmodule MusicBrainz.API do url: "/release/#{id}", params: [ fmt: "json", - inc: "release-groups" + inc: "release-groups+recordings" ] ) |> get_request() diff --git a/lib/music_library/barcode_scan.ex b/lib/music_library/barcode_scan.ex index af25491e..69e48f0f 100644 --- a/lib/music_library/barcode_scan.ex +++ b/lib/music_library/barcode_scan.ex @@ -43,7 +43,8 @@ defmodule MusicLibrary.BarcodeScan do :new -> Records.import_from_musicbrainz_release(scan_result.release.id, format: MusicBrainz.ReleaseSearchResult.format(scan_result.release), - purchased_at: current_time + purchased_at: current_time, + selected_release_id: scan_result.release.id ) :wishlisted -> diff --git a/lib/music_library/records.ex b/lib/music_library/records.ex index c7641a9d..4e8a8a78 100644 --- a/lib/music_library/records.ex +++ b/lib/music_library/records.ex @@ -148,6 +148,7 @@ defmodule MusicLibrary.Records do def import_from_musicbrainz_release_group(musicbrainz_id, opts \\ []) do format = Keyword.get(opts, :format, "cd") purchased_at = Keyword.get(opts, :purchased_at) + selected_release_id = Keyword.get(opts, :selected_release_id, nil) with {:ok, release_group} <- MusicBrainz.get_release_group(musicbrainz_id), {:ok, release_group_with_releases} <- merge_releases(musicbrainz_id, release_group), @@ -156,7 +157,8 @@ defmodule MusicLibrary.Records do |> build_record_attrs(%{ "cover_data" => cover_data, "format" => format, - "purchased_at" => purchased_at + "purchased_at" => purchased_at, + "selected_release_id" => selected_release_id }) |> create_record() else diff --git a/test/music_library_web/live/collection_live/index_test.exs b/test/music_library_web/live/collection_live/index_test.exs index 141df8f5..4b176aa4 100644 --- a/test/music_library_web/live/collection_live/index_test.exs +++ b/test/music_library_web/live/collection_live/index_test.exs @@ -395,6 +395,7 @@ defmodule MusicLibraryWeb.CollectionLive.IndexTest do assert record.release_date == "2004-05-03" assert record.format == :cd assert record.musicbrainz_data == release_group + assert record.selected_release_id == "d3f9b9e2-73f5-4b47-a2a7-2c2199aad608" assert record.genres == [ "alternative rock",