First pass at uniformed types, specs and docs
- spec public functions (skipping controllers, views, live views and components) - use types instead of explanations in docs - remove redundant docs - fix typos
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
defmodule MusicBrainz.ReleaseGroup do
|
||||
alias MusicBrainz.ReleaseGroupSearchResult
|
||||
|
||||
@spec included_release_groups(map()) :: [ReleaseGroupSearchResult.t()]
|
||||
def included_release_groups(release_group) do
|
||||
release_group
|
||||
|> get_release_groups()
|
||||
@@ -9,27 +10,32 @@ defmodule MusicBrainz.ReleaseGroup do
|
||||
end)
|
||||
end
|
||||
|
||||
@spec releases(map()) :: [map()]
|
||||
def releases(release_group) do
|
||||
release_group
|
||||
|> Map.get("releases", [])
|
||||
end
|
||||
|
||||
@spec release_ids(map()) :: [String.t()]
|
||||
def release_ids(release_group) do
|
||||
release_group
|
||||
|> Map.get("releases", [])
|
||||
|> Enum.map(fn release -> release["id"] end)
|
||||
end
|
||||
|
||||
@spec included_release_group_ids(map()) :: [String.t()]
|
||||
def included_release_group_ids(release_group) do
|
||||
release_group
|
||||
|> included_release_groups()
|
||||
|> Enum.map(fn rg -> rg.id end)
|
||||
end
|
||||
|
||||
@spec url(String.t()) :: String.t()
|
||||
def url(id) do
|
||||
"https://musicbrainz.org/release-group/#{id}"
|
||||
end
|
||||
|
||||
@spec parse_type(String.t() | nil) :: :album | :ep | :live | :compilation | :single | :other
|
||||
def parse_type("Album"), do: :album
|
||||
def parse_type("EP"), do: :ep
|
||||
def parse_type("Live"), do: :live
|
||||
|
||||
Reference in New Issue
Block a user