improve changesets and typespecs
This commit is contained in:
@@ -59,6 +59,7 @@ defmodule Cannery.Ammo.AmmoGroup do
|
||||
}
|
||||
@type new_ammo_group :: %AmmoGroup{}
|
||||
@type id :: UUID.t()
|
||||
@type changeset :: Changeset.t(t() | new_ammo_group())
|
||||
|
||||
@doc false
|
||||
@spec create_changeset(
|
||||
@@ -67,7 +68,7 @@ defmodule Cannery.Ammo.AmmoGroup do
|
||||
Container.t() | nil,
|
||||
User.t(),
|
||||
attrs :: map()
|
||||
) :: Changeset.t(new_ammo_group())
|
||||
) :: changeset()
|
||||
def create_changeset(
|
||||
ammo_group,
|
||||
%AmmoType{id: ammo_type_id},
|
||||
@@ -97,8 +98,7 @@ defmodule Cannery.Ammo.AmmoGroup do
|
||||
end
|
||||
|
||||
@doc false
|
||||
@spec update_changeset(t() | new_ammo_group(), attrs :: map(), User.t()) ::
|
||||
Changeset.t(t() | new_ammo_group())
|
||||
@spec update_changeset(t() | new_ammo_group(), attrs :: map(), User.t()) :: changeset()
|
||||
def update_changeset(ammo_group, attrs, user) do
|
||||
ammo_group
|
||||
|> cast(attrs, [:count, :price_paid, :notes, :staged, :purchased_on, :container_id])
|
||||
@@ -121,8 +121,7 @@ defmodule Cannery.Ammo.AmmoGroup do
|
||||
This range changeset is used when "using up" ammo groups, and allows for
|
||||
updating the count to 0
|
||||
"""
|
||||
@spec range_changeset(t() | new_ammo_group(), attrs :: map()) ::
|
||||
Changeset.t(t() | new_ammo_group())
|
||||
@spec range_changeset(t() | new_ammo_group(), attrs :: map()) :: changeset()
|
||||
def range_changeset(ammo_group, attrs) do
|
||||
ammo_group
|
||||
|> cast(attrs, [:count, :staged])
|
||||
|
||||
@@ -102,6 +102,7 @@ defmodule Cannery.Ammo.AmmoType do
|
||||
}
|
||||
@type new_ammo_type :: %AmmoType{}
|
||||
@type id :: UUID.t()
|
||||
@type changeset :: Changeset.t(t() | new_ammo_type())
|
||||
|
||||
@spec changeset_fields() :: [atom()]
|
||||
defp changeset_fields,
|
||||
@@ -130,8 +131,7 @@ defmodule Cannery.Ammo.AmmoType do
|
||||
]
|
||||
|
||||
@doc false
|
||||
@spec create_changeset(new_ammo_type(), User.t(), attrs :: map()) ::
|
||||
Changeset.t(new_ammo_type())
|
||||
@spec create_changeset(new_ammo_type(), User.t(), attrs :: map()) :: changeset()
|
||||
def create_changeset(ammo_type, %User{id: user_id}, attrs) do
|
||||
ammo_type
|
||||
|> change(user_id: user_id)
|
||||
@@ -140,8 +140,7 @@ defmodule Cannery.Ammo.AmmoType do
|
||||
end
|
||||
|
||||
@doc false
|
||||
@spec update_changeset(t() | new_ammo_type(), attrs :: map()) ::
|
||||
Changeset.t(t() | new_ammo_type())
|
||||
@spec update_changeset(t() | new_ammo_type(), attrs :: map()) :: changeset()
|
||||
def update_changeset(ammo_type, attrs) do
|
||||
ammo_type
|
||||
|> cast(attrs, changeset_fields())
|
||||
|
||||
Reference in New Issue
Block a user