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:
Claudio Ortolina
2026-03-06 08:33:11 +00:00
parent 99e30d5fdf
commit 7cf9b4e7f8
81 changed files with 652 additions and 300 deletions
+6
View File
@@ -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