forked from shibao/cannery
add error case for create_changeset
This commit is contained in:
parent
3cbd62e84c
commit
9ebca20dc6
@ -38,7 +38,12 @@ defmodule Cannery.ActivityLog.ShotGroup do
|
|||||||
@type id :: UUID.t()
|
@type id :: UUID.t()
|
||||||
|
|
||||||
@doc false
|
@doc false
|
||||||
@spec create_changeset(new_shot_group(), User.t(), AmmoGroup.t(), attrs :: map()) ::
|
@spec create_changeset(
|
||||||
|
new_shot_group(),
|
||||||
|
User.t() | any(),
|
||||||
|
AmmoGroup.t() | any(),
|
||||||
|
attrs :: map()
|
||||||
|
) ::
|
||||||
Changeset.t(new_shot_group())
|
Changeset.t(new_shot_group())
|
||||||
def create_changeset(
|
def create_changeset(
|
||||||
shot_group,
|
shot_group,
|
||||||
@ -56,6 +61,14 @@ defmodule Cannery.ActivityLog.ShotGroup do
|
|||||||
|> validate_required([:count, :ammo_group_id, :user_id])
|
|> validate_required([:count, :ammo_group_id, :user_id])
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def create_changeset(shot_group, _invalid_user, _invalid_ammo_group, attrs) do
|
||||||
|
shot_group
|
||||||
|
|> cast(attrs, [:count, :notes, :date])
|
||||||
|
|> validate_number(:count, greater_than: 0)
|
||||||
|
|> validate_required([:count, :ammo_group_id, :user_id])
|
||||||
|
|> add_error(:invalid, dgettext("errors", "Please select a valid user and ammo group"))
|
||||||
|
end
|
||||||
|
|
||||||
defp validate_create_shot_group_count(changeset, %AmmoGroup{count: ammo_group_count}) do
|
defp validate_create_shot_group_count(changeset, %AmmoGroup{count: ammo_group_count}) do
|
||||||
if changeset |> Changeset.get_field(:count) > ammo_group_count do
|
if changeset |> Changeset.get_field(:count) > ammo_group_count do
|
||||||
error = dgettext("errors", "Count must be less than %{count}", count: ammo_group_count)
|
error = dgettext("errors", "Count must be less than %{count}", count: ammo_group_count)
|
||||||
|
Loading…
Reference in New Issue
Block a user