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:
@@ -16,6 +16,9 @@ defmodule MusicLibrary.RecordSets.RecordSet do
|
||||
timestamps(type: :utc_datetime)
|
||||
end
|
||||
|
||||
@type t :: %__MODULE__{}
|
||||
|
||||
@spec changeset(t() | Ecto.Changeset.t(), map()) :: Ecto.Changeset.t()
|
||||
def changeset(record_set, attrs) do
|
||||
record_set
|
||||
|> cast(attrs, [:name, :description])
|
||||
@@ -24,6 +27,11 @@ defmodule MusicLibrary.RecordSets.RecordSet do
|
||||
|> validate_length(:description, max: 10_000)
|
||||
end
|
||||
|
||||
@spec count_by_status(t()) :: %{
|
||||
collected: non_neg_integer(),
|
||||
wishlisted: non_neg_integer(),
|
||||
total: non_neg_integer()
|
||||
}
|
||||
def count_by_status(record_set) do
|
||||
record_set.items
|
||||
|> Enum.frequencies_by(fn item ->
|
||||
|
||||
@@ -17,6 +17,9 @@ defmodule MusicLibrary.RecordSets.RecordSetItem do
|
||||
timestamps(type: :utc_datetime)
|
||||
end
|
||||
|
||||
@type t :: %__MODULE__{}
|
||||
|
||||
@spec changeset(t() | Ecto.Changeset.t(), map()) :: Ecto.Changeset.t()
|
||||
def changeset(record_set_item, attrs) do
|
||||
record_set_item
|
||||
|> cast(attrs, [:position])
|
||||
|
||||
Reference in New Issue
Block a user