diff --git a/lib/music_library/records/batch.ex b/lib/music_library/records/batch.ex index 30f25fe3..e521cd86 100644 --- a/lib/music_library/records/batch.ex +++ b/lib/music_library/records/batch.ex @@ -32,35 +32,6 @@ defmodule MusicLibrary.Records.Batch do end end - def update_release_ids do - run_on_all_records(&update_release_ids/1) - end - - def update_included_release_group_ids do - run_on_all_records(&update_included_release_group_ids/1) - end - - def update_release_ids(record) do - record - |> Record.update_release_ids() - |> Repo.update() - end - - def update_included_release_group_ids(record) do - record - |> Record.update_included_release_group_ids() - |> Repo.update() - end - - def remove_artists_ids! do - # Shotgun approach: remove the first 4 artists IDs from each record. - # This is not a general solution, but it works as a quick fix because the record with the most artists has 3. - q = - "update records set artists = json_remove(artists, '$[0].id', '$[1].id', '$[2].id', '$[3].id');" - - Repo.query(q) - end - defp run_on_all_records(fun) do q = from(r in Record) stream = Repo.stream(q, max_rows: 50) diff --git a/lib/music_library/records/record.ex b/lib/music_library/records/record.ex index cf921b13..eba9b1ce 100644 --- a/lib/music_library/records/record.ex +++ b/lib/music_library/records/record.ex @@ -72,12 +72,6 @@ defmodule MusicLibrary.Records.Record do Enum.count(record.release_ids) end - def add_artists(record, artists_attrs) do - record - |> change() - |> put_embed(:artists, artists_attrs) - end - def add_genres(record, genres) do change(record, genres: genres) end @@ -95,13 +89,7 @@ defmodule MusicLibrary.Records.Record do |> update_included_release_group_ids() end - def update_release_ids(record = %__MODULE__{musicbrainz_data: musicbrainz_data}) do - release_ids = Enum.map(musicbrainz_data["releases"], fn r -> r["id"] end) - - change(record, release_ids: release_ids) - end - - def update_release_ids(changeset) do + defp update_release_ids(changeset) do case get_change(changeset, :musicbrainz_data) do nil -> changeset @@ -112,13 +100,7 @@ defmodule MusicLibrary.Records.Record do end end - def update_included_release_group_ids(record = %__MODULE__{musicbrainz_data: musicbrainz_data}) do - change(record, - included_release_group_ids: extract_included_release_group_ids(musicbrainz_data) - ) - end - - def update_included_release_group_ids(changeset) do + defp update_included_release_group_ids(changeset) do case get_change(changeset, :musicbrainz_data) do nil -> changeset diff --git a/test/music_library/records/record_test.exs b/test/music_library/records/record_test.exs index f86bc03e..4e997ec4 100644 --- a/test/music_library/records/record_test.exs +++ b/test/music_library/records/record_test.exs @@ -43,8 +43,8 @@ defmodule MusicLibrary.Records.RecordTest do release_group = release_group(:lockdown_trilogy) record = - %Record{musicbrainz_data: release_group} - |> Record.update_included_release_group_ids() + %Record{} + |> Record.add_musicbrainz_data(release_group) |> Ecto.Changeset.apply_changes() assert Record.child_release_groups(record) == [ @@ -85,8 +85,8 @@ defmodule MusicLibrary.Records.RecordTest do release_group = release_group(:lockdown_trilogy) record = - %Record{musicbrainz_data: release_group} - |> Record.update_included_release_group_ids() + %Record{} + |> Record.add_musicbrainz_data(release_group) |> Ecto.Changeset.apply_changes() assert Record.child_release_groups_count(record) == 4