Move subtype parsing to ReleaseGroup

This commit is contained in:
Claudio Ortolina
2025-02-10 19:01:56 +00:00
parent c19184337b
commit 27bd32b2a9
2 changed files with 10 additions and 8 deletions
+7
View File
@@ -25,6 +25,13 @@ defmodule MusicBrainz.ReleaseGroup do
"https://musicbrainz.org/release-group/#{id}" "https://musicbrainz.org/release-group/#{id}"
end end
def parse_subtype("Album"), do: :album
def parse_subtype("EP"), do: :ep
def parse_subtype("Live"), do: :live
def parse_subtype("Compilation"), do: :compilation
def parse_subtype("Single"), do: :single
def parse_subtype(_), do: :other
defp get_release_groups(release_group) do defp get_release_groups(release_group) do
release_group release_group
|> Map.get("relations", []) |> Map.get("relations", [])
@@ -2,10 +2,12 @@ defmodule MusicBrainz.ReleaseGroupSearchResult do
@enforce_keys [:id, :type, :title, :artists, :release] @enforce_keys [:id, :type, :title, :artists, :release]
defstruct [:id, :type, :title, :artists, :release] defstruct [:id, :type, :title, :artists, :release]
alias MusicBrainz.ReleaseGroup
def from_api_response(rg) do def from_api_response(rg) do
%__MODULE__{ %__MODULE__{
id: rg["id"], id: rg["id"],
type: parse_subtype(rg["primary-type"]), type: ReleaseGroup.parse_subtype(rg["primary-type"]),
title: rg["title"], title: rg["title"],
artists: artists:
rg["artist-credit"] rg["artist-credit"]
@@ -14,11 +16,4 @@ defmodule MusicBrainz.ReleaseGroupSearchResult do
release: rg["first-release-date"] release: rg["first-release-date"]
} }
end end
defp parse_subtype("Album"), do: :album
defp parse_subtype("EP"), do: :ep
defp parse_subtype("Live"), do: :live
defp parse_subtype("Compilation"), do: :compilation
defp parse_subtype("Single"), do: :single
defp parse_subtype(_), do: :other
end end