forked from shibao/cannery
add types to ecto changeset specs
This commit is contained in:
parent
9ca69ae3e4
commit
8f130a7598
@ -9,7 +9,7 @@ contributing to Cannery (hopefully) as great of an experience as you found it!
|
|||||||
inline `do:` blocks for short functions and make your aliases as short as
|
inline `do:` blocks for short functions and make your aliases as short as
|
||||||
possible without introducing ambiguity.
|
possible without introducing ambiguity.
|
||||||
- I.e. since there's only one `Changeset` in the app, please alias
|
- I.e. since there's only one `Changeset` in the app, please alias
|
||||||
`Changeset.t()` instead of using `Ecto.Changeset.t()`
|
`Changeset.t(Type.t())` instead of using `Ecto.Changeset.t(Long.Type.t())`
|
||||||
- Use pipelines when possible. If a function only calls a single method, a
|
- Use pipelines when possible. If a function only calls a single method, a
|
||||||
pipeline isn't strictly necessary but still encouraged for future
|
pipeline isn't strictly necessary but still encouraged for future
|
||||||
modification.
|
modification.
|
||||||
|
@ -89,7 +89,7 @@ defmodule Cannery.Accounts do
|
|||||||
{:error, %Changeset{}}
|
{:error, %Changeset{}}
|
||||||
|
|
||||||
"""
|
"""
|
||||||
@spec register_user(map()) :: {:ok, User.t()} | {:error, Changeset.t()}
|
@spec register_user(map()) :: {:ok, User.t()} | {:error, Changeset.t(User.new_user())}
|
||||||
def register_user(attrs) do
|
def register_user(attrs) do
|
||||||
# if no registered users, make first user an admin
|
# if no registered users, make first user an admin
|
||||||
attrs =
|
attrs =
|
||||||
@ -109,8 +109,10 @@ defmodule Cannery.Accounts do
|
|||||||
%Changeset{data: %User{}}
|
%Changeset{data: %User{}}
|
||||||
|
|
||||||
"""
|
"""
|
||||||
@spec change_user_registration(User.t() | User.new_user()) :: Changeset.t()
|
@spec change_user_registration(User.t() | User.new_user()) ::
|
||||||
@spec change_user_registration(User.t() | User.new_user(), map()) :: Changeset.t()
|
Changeset.t(User.t() | User.new_user())
|
||||||
|
@spec change_user_registration(User.t() | User.new_user(), map()) ::
|
||||||
|
Changeset.t(User.t() | User.new_user())
|
||||||
def change_user_registration(user, attrs \\ %{}),
|
def change_user_registration(user, attrs \\ %{}),
|
||||||
do: User.registration_changeset(user, attrs, hash_password: false)
|
do: User.registration_changeset(user, attrs, hash_password: false)
|
||||||
|
|
||||||
@ -125,7 +127,7 @@ defmodule Cannery.Accounts do
|
|||||||
%Changeset{data: %User{}}
|
%Changeset{data: %User{}}
|
||||||
|
|
||||||
"""
|
"""
|
||||||
@spec change_user_email(User.t(), map()) :: Changeset.t()
|
@spec change_user_email(User.t(), map()) :: Changeset.t(User.t())
|
||||||
def change_user_email(user, attrs \\ %{}), do: User.email_changeset(user, attrs)
|
def change_user_email(user, attrs \\ %{}), do: User.email_changeset(user, attrs)
|
||||||
|
|
||||||
@doc """
|
@doc """
|
||||||
@ -137,7 +139,7 @@ defmodule Cannery.Accounts do
|
|||||||
%Changeset{data: %User{}}
|
%Changeset{data: %User{}}
|
||||||
|
|
||||||
"""
|
"""
|
||||||
@spec change_user_role(User.t(), atom()) :: Changeset.t()
|
@spec change_user_role(User.t(), atom()) :: Changeset.t(User.t())
|
||||||
def change_user_role(user, role), do: User.role_changeset(user, role)
|
def change_user_role(user, role), do: User.role_changeset(user, role)
|
||||||
|
|
||||||
@doc """
|
@doc """
|
||||||
@ -154,7 +156,7 @@ defmodule Cannery.Accounts do
|
|||||||
|
|
||||||
"""
|
"""
|
||||||
@spec apply_user_email(User.t(), String.t(), map()) ::
|
@spec apply_user_email(User.t(), String.t(), map()) ::
|
||||||
{:ok, User.t()} | {:error, Changeset.t()}
|
{:ok, User.t()} | {:error, Changeset.t(User.t())}
|
||||||
def apply_user_email(user, password, attrs) do
|
def apply_user_email(user, password, attrs) do
|
||||||
user
|
user
|
||||||
|> User.email_changeset(attrs)
|
|> User.email_changeset(attrs)
|
||||||
@ -218,7 +220,7 @@ defmodule Cannery.Accounts do
|
|||||||
%Changeset{data: %User{}}
|
%Changeset{data: %User{}}
|
||||||
|
|
||||||
"""
|
"""
|
||||||
@spec change_user_password(User.t(), map()) :: Changeset.t()
|
@spec change_user_password(User.t(), map()) :: Changeset.t(User.t())
|
||||||
def change_user_password(user, attrs \\ %{}),
|
def change_user_password(user, attrs \\ %{}),
|
||||||
do: User.password_changeset(user, attrs, hash_password: false)
|
do: User.password_changeset(user, attrs, hash_password: false)
|
||||||
|
|
||||||
@ -235,7 +237,7 @@ defmodule Cannery.Accounts do
|
|||||||
|
|
||||||
"""
|
"""
|
||||||
@spec update_user_password(User.t(), String.t(), map()) ::
|
@spec update_user_password(User.t(), String.t(), map()) ::
|
||||||
{:ok, User.t()} | {:error, Changeset.t()}
|
{:ok, User.t()} | {:error, Changeset.t(User.t())}
|
||||||
def update_user_password(user, password, attrs) do
|
def update_user_password(user, password, attrs) do
|
||||||
changeset =
|
changeset =
|
||||||
user
|
user
|
||||||
@ -399,7 +401,7 @@ defmodule Cannery.Accounts do
|
|||||||
{:error, %Changeset{}}
|
{:error, %Changeset{}}
|
||||||
|
|
||||||
"""
|
"""
|
||||||
@spec reset_user_password(User.t(), map()) :: {:ok, User.t()} | {:error, Changeset.t()}
|
@spec reset_user_password(User.t(), map()) :: {:ok, User.t()} | {:error, Changeset.t(User.t())}
|
||||||
def reset_user_password(user, attrs) do
|
def reset_user_password(user, attrs) do
|
||||||
Multi.new()
|
Multi.new()
|
||||||
|> Multi.update(:user, User.password_changeset(user, attrs))
|
|> Multi.update(:user, User.password_changeset(user, attrs))
|
||||||
|
@ -54,9 +54,9 @@ defmodule Cannery.Accounts.User do
|
|||||||
validations on a LiveView form), this option can be set to `false`.
|
validations on a LiveView form), this option can be set to `false`.
|
||||||
Defaults to `true`.
|
Defaults to `true`.
|
||||||
"""
|
"""
|
||||||
@spec registration_changeset(t() | new_user(), attrs :: map()) :: Changeset.t()
|
@spec registration_changeset(t() | new_user(), attrs :: map()) :: Changeset.t(t() | new_user())
|
||||||
@spec registration_changeset(t() | new_user(), attrs :: map(), opts :: keyword()) ::
|
@spec registration_changeset(t() | new_user(), attrs :: map(), opts :: keyword()) ::
|
||||||
Changeset.t()
|
Changeset.t(t() | new_user())
|
||||||
def registration_changeset(user, attrs, opts \\ []) do
|
def registration_changeset(user, attrs, opts \\ []) do
|
||||||
user
|
user
|
||||||
|> cast(attrs, [:email, :password, :role])
|
|> cast(attrs, [:email, :password, :role])
|
||||||
@ -68,12 +68,12 @@ defmodule Cannery.Accounts.User do
|
|||||||
A user changeset for role.
|
A user changeset for role.
|
||||||
|
|
||||||
"""
|
"""
|
||||||
@spec role_changeset(t(), role :: atom()) :: Changeset.t()
|
@spec role_changeset(t(), role :: atom()) :: Changeset.t(t())
|
||||||
def role_changeset(user, role) do
|
def role_changeset(user, role) do
|
||||||
user |> cast(%{"role" => role}, [:role])
|
user |> cast(%{"role" => role}, [:role])
|
||||||
end
|
end
|
||||||
|
|
||||||
@spec validate_email(Changeset.t()) :: Changeset.t()
|
@spec validate_email(Changeset.t(t() | new_user())) :: Changeset.t(t() | new_user())
|
||||||
defp validate_email(changeset) do
|
defp validate_email(changeset) do
|
||||||
changeset
|
changeset
|
||||||
|> validate_required([:email])
|
|> validate_required([:email])
|
||||||
@ -83,7 +83,8 @@ defmodule Cannery.Accounts.User do
|
|||||||
|> unique_constraint(:email)
|
|> unique_constraint(:email)
|
||||||
end
|
end
|
||||||
|
|
||||||
@spec validate_password(Changeset.t(), opts :: keyword()) :: Changeset.t()
|
@spec validate_password(Changeset.t(t() | new_user()), opts :: keyword()) ::
|
||||||
|
Changeset.t(t() | new_user())
|
||||||
defp validate_password(changeset, opts) do
|
defp validate_password(changeset, opts) do
|
||||||
changeset
|
changeset
|
||||||
|> validate_required([:password])
|
|> validate_required([:password])
|
||||||
@ -94,7 +95,8 @@ defmodule Cannery.Accounts.User do
|
|||||||
|> maybe_hash_password(opts)
|
|> maybe_hash_password(opts)
|
||||||
end
|
end
|
||||||
|
|
||||||
@spec maybe_hash_password(Changeset.t(), opts :: keyword()) :: Changeset.t()
|
@spec maybe_hash_password(Changeset.t(t() | new_user()), opts :: keyword()) ::
|
||||||
|
Changeset.t(t() | new_user())
|
||||||
defp maybe_hash_password(changeset, opts) do
|
defp maybe_hash_password(changeset, opts) do
|
||||||
hash_password? = Keyword.get(opts, :hash_password, true)
|
hash_password? = Keyword.get(opts, :hash_password, true)
|
||||||
password = get_change(changeset, :password)
|
password = get_change(changeset, :password)
|
||||||
@ -113,7 +115,7 @@ defmodule Cannery.Accounts.User do
|
|||||||
|
|
||||||
It requires the email to change otherwise an error is added.
|
It requires the email to change otherwise an error is added.
|
||||||
"""
|
"""
|
||||||
@spec email_changeset(t(), attrs :: map()) :: Changeset.t()
|
@spec email_changeset(t(), attrs :: map()) :: Changeset.t(t())
|
||||||
def email_changeset(user, attrs) do
|
def email_changeset(user, attrs) do
|
||||||
user
|
user
|
||||||
|> cast(attrs, [:email])
|
|> cast(attrs, [:email])
|
||||||
@ -136,8 +138,8 @@ defmodule Cannery.Accounts.User do
|
|||||||
validations on a LiveView form), this option can be set to `false`.
|
validations on a LiveView form), this option can be set to `false`.
|
||||||
Defaults to `true`.
|
Defaults to `true`.
|
||||||
"""
|
"""
|
||||||
@spec password_changeset(t(), attrs :: map()) :: Changeset.t()
|
@spec password_changeset(t(), attrs :: map()) :: Changeset.t(t())
|
||||||
@spec password_changeset(t(), attrs :: map(), opts :: keyword()) :: Changeset.t()
|
@spec password_changeset(t(), attrs :: map(), opts :: keyword()) :: Changeset.t(t())
|
||||||
def password_changeset(user, attrs, opts \\ []) do
|
def password_changeset(user, attrs, opts \\ []) do
|
||||||
user
|
user
|
||||||
|> cast(attrs, [:password])
|
|> cast(attrs, [:password])
|
||||||
@ -148,7 +150,7 @@ defmodule Cannery.Accounts.User do
|
|||||||
@doc """
|
@doc """
|
||||||
Confirms the account by setting `confirmed_at`.
|
Confirms the account by setting `confirmed_at`.
|
||||||
"""
|
"""
|
||||||
@spec confirm_changeset(t() | Changeset.t()) :: Changeset.t()
|
@spec confirm_changeset(t() | Changeset.t(t())) :: Changeset.t(t())
|
||||||
def confirm_changeset(user_or_changeset) do
|
def confirm_changeset(user_or_changeset) do
|
||||||
now = NaiveDateTime.utc_now() |> NaiveDateTime.truncate(:second)
|
now = NaiveDateTime.utc_now() |> NaiveDateTime.truncate(:second)
|
||||||
user_or_changeset |> change(confirmed_at: now)
|
user_or_changeset |> change(confirmed_at: now)
|
||||||
@ -174,7 +176,7 @@ defmodule Cannery.Accounts.User do
|
|||||||
@doc """
|
@doc """
|
||||||
Validates the current password otherwise adds an error to the changeset.
|
Validates the current password otherwise adds an error to the changeset.
|
||||||
"""
|
"""
|
||||||
@spec validate_current_password(Changeset.t(), String.t()) :: Changeset.t()
|
@spec validate_current_password(Changeset.t(t()), String.t()) :: Changeset.t(t())
|
||||||
def validate_current_password(changeset, password) do
|
def validate_current_password(changeset, password) do
|
||||||
if valid_password?(changeset.data, password),
|
if valid_password?(changeset.data, password),
|
||||||
do: changeset,
|
do: changeset,
|
||||||
|
@ -49,7 +49,8 @@ defmodule Cannery.Ammo do
|
|||||||
{:error, %Ecto.Changeset{}}
|
{:error, %Ecto.Changeset{}}
|
||||||
|
|
||||||
"""
|
"""
|
||||||
@spec create_ammo_type(attrs :: map()) :: {:ok, AmmoType.t()} | {:error, Changeset.t()}
|
@spec create_ammo_type(attrs :: map()) ::
|
||||||
|
{:ok, AmmoType.t()} | {:error, Changeset.t(AmmoType.new_ammo_type())}
|
||||||
def create_ammo_type(attrs \\ %{}),
|
def create_ammo_type(attrs \\ %{}),
|
||||||
do: %AmmoType{} |> AmmoType.changeset(attrs) |> Repo.insert()
|
do: %AmmoType{} |> AmmoType.changeset(attrs) |> Repo.insert()
|
||||||
|
|
||||||
@ -66,7 +67,7 @@ defmodule Cannery.Ammo do
|
|||||||
|
|
||||||
"""
|
"""
|
||||||
@spec update_ammo_type(AmmoType.t(), attrs :: map()) ::
|
@spec update_ammo_type(AmmoType.t(), attrs :: map()) ::
|
||||||
{:ok, AmmoType.t()} | {:error, Changeset.t()}
|
{:ok, AmmoType.t()} | {:error, Changeset.t(AmmoType.t())}
|
||||||
def update_ammo_type(%AmmoType{} = ammo_type, attrs),
|
def update_ammo_type(%AmmoType{} = ammo_type, attrs),
|
||||||
do: ammo_type |> AmmoType.changeset(attrs) |> Repo.update()
|
do: ammo_type |> AmmoType.changeset(attrs) |> Repo.update()
|
||||||
|
|
||||||
@ -82,7 +83,8 @@ defmodule Cannery.Ammo do
|
|||||||
{:error, %Ecto.Changeset{}}
|
{:error, %Ecto.Changeset{}}
|
||||||
|
|
||||||
"""
|
"""
|
||||||
@spec delete_ammo_type(AmmoType.t()) :: {:ok, AmmoType.t()} | {:error, Changeset.t()}
|
@spec delete_ammo_type(AmmoType.t()) ::
|
||||||
|
{:ok, AmmoType.t()} | {:error, Changeset.t(AmmoType.t())}
|
||||||
def delete_ammo_type(%AmmoType{} = ammo_type), do: ammo_type |> Repo.delete()
|
def delete_ammo_type(%AmmoType{} = ammo_type), do: ammo_type |> Repo.delete()
|
||||||
|
|
||||||
@doc """
|
@doc """
|
||||||
@ -106,8 +108,10 @@ defmodule Cannery.Ammo do
|
|||||||
%Ecto.Changeset{data: %AmmoType{}}
|
%Ecto.Changeset{data: %AmmoType{}}
|
||||||
|
|
||||||
"""
|
"""
|
||||||
@spec change_ammo_type(AmmoType.t() | AmmoType.new_ammo_type()) :: Changeset.t()
|
@spec change_ammo_type(AmmoType.t() | AmmoType.new_ammo_type()) ::
|
||||||
@spec change_ammo_type(AmmoType.t() | AmmoType.new_ammo_type(), attrs :: map()) :: Changeset.t()
|
Changeset.t(AmmoType.t() | AmmoType.new_ammo_type())
|
||||||
|
@spec change_ammo_type(AmmoType.t() | AmmoType.new_ammo_type(), attrs :: map()) ::
|
||||||
|
Changeset.t(AmmoType.t() | AmmoType.new_ammo_type())
|
||||||
def change_ammo_type(%AmmoType{} = ammo_type, attrs \\ %{}),
|
def change_ammo_type(%AmmoType{} = ammo_type, attrs \\ %{}),
|
||||||
do: AmmoType.changeset(ammo_type, attrs)
|
do: AmmoType.changeset(ammo_type, attrs)
|
||||||
|
|
||||||
@ -159,7 +163,8 @@ defmodule Cannery.Ammo do
|
|||||||
{:error, %Ecto.Changeset{}}
|
{:error, %Ecto.Changeset{}}
|
||||||
|
|
||||||
"""
|
"""
|
||||||
@spec create_ammo_group(attrs :: map()) :: {:ok, AmmoGroup.t()} | {:error, Changeset.t()}
|
@spec create_ammo_group(attrs :: map()) ::
|
||||||
|
{:ok, AmmoGroup.t()} | {:error, Changeset.t(AmmoGroup.new_ammo_group())}
|
||||||
def create_ammo_group(attrs \\ %{}),
|
def create_ammo_group(attrs \\ %{}),
|
||||||
do: %AmmoGroup{} |> AmmoGroup.changeset(attrs) |> Repo.insert()
|
do: %AmmoGroup{} |> AmmoGroup.changeset(attrs) |> Repo.insert()
|
||||||
|
|
||||||
@ -176,7 +181,7 @@ defmodule Cannery.Ammo do
|
|||||||
|
|
||||||
"""
|
"""
|
||||||
@spec update_ammo_group(AmmoGroup.t(), attrs :: map()) ::
|
@spec update_ammo_group(AmmoGroup.t(), attrs :: map()) ::
|
||||||
{:ok, AmmoGroup.t()} | {:error, Changeset.t()}
|
{:ok, AmmoGroup.t()} | {:error, Changeset.t(AmmoGroup.t())}
|
||||||
def update_ammo_group(%AmmoGroup{} = ammo_group, attrs),
|
def update_ammo_group(%AmmoGroup{} = ammo_group, attrs),
|
||||||
do: ammo_group |> AmmoGroup.changeset(attrs) |> Repo.update()
|
do: ammo_group |> AmmoGroup.changeset(attrs) |> Repo.update()
|
||||||
|
|
||||||
@ -192,7 +197,8 @@ defmodule Cannery.Ammo do
|
|||||||
{:error, %Ecto.Changeset{}}
|
{:error, %Ecto.Changeset{}}
|
||||||
|
|
||||||
"""
|
"""
|
||||||
@spec delete_ammo_group(AmmoGroup.t()) :: {:ok, AmmoGroup.t()} | {:error, Changeset.t()}
|
@spec delete_ammo_group(AmmoGroup.t()) ::
|
||||||
|
{:ok, AmmoGroup.t()} | {:error, Changeset.t(AmmoGroup.t())}
|
||||||
def delete_ammo_group(%AmmoGroup{} = ammo_group), do: ammo_group |> Repo.delete()
|
def delete_ammo_group(%AmmoGroup{} = ammo_group), do: ammo_group |> Repo.delete()
|
||||||
|
|
||||||
@doc """
|
@doc """
|
||||||
|
@ -47,7 +47,7 @@ defmodule Cannery.Ammo.AmmoGroup do
|
|||||||
@type id :: UUID.t()
|
@type id :: UUID.t()
|
||||||
|
|
||||||
@doc false
|
@doc false
|
||||||
@spec changeset(t() | new_ammo_group(), attrs :: map()) :: Changeset.t()
|
@spec changeset(t() | new_ammo_group(), attrs :: map()) :: Changeset.t(t() | new_ammo_group())
|
||||||
def changeset(ammo_group, attrs) do
|
def changeset(ammo_group, attrs) do
|
||||||
ammo_group
|
ammo_group
|
||||||
|> cast(attrs, [:count, :price_paid, :notes, :tag_id, :ammo_type_id, :container_id, :user_id])
|
|> cast(attrs, [:count, :price_paid, :notes, :tag_id, :ammo_type_id, :container_id, :user_id])
|
||||||
|
@ -38,7 +38,7 @@ defmodule Cannery.Ammo.AmmoType do
|
|||||||
@type id :: UUID.t()
|
@type id :: UUID.t()
|
||||||
|
|
||||||
@doc false
|
@doc false
|
||||||
@spec changeset(t() | new_ammo_type(), attrs :: map()) :: Changeset.t()
|
@spec changeset(t() | new_ammo_type(), attrs :: map()) :: Changeset.t(t() | new_ammo_type())
|
||||||
def changeset(ammo_type, attrs) do
|
def changeset(ammo_type, attrs) do
|
||||||
ammo_type
|
ammo_type
|
||||||
|> cast(attrs, [:name, :desc, :case_material, :bullet_type, :grain, :manufacturer])
|
|> cast(attrs, [:name, :desc, :case_material, :bullet_type, :grain, :manufacturer])
|
||||||
|
@ -50,7 +50,8 @@ defmodule Cannery.Containers do
|
|||||||
{:error, %Ecto.Changeset{}}
|
{:error, %Ecto.Changeset{}}
|
||||||
|
|
||||||
"""
|
"""
|
||||||
@spec create_container(attrs :: map()) :: {:ok, Container.t()} | {:error, Changeset.t()}
|
@spec create_container(attrs :: map()) ::
|
||||||
|
{:ok, Container.t()} | {:error, Changeset.t(Container.new_container())}
|
||||||
def create_container(attrs) do
|
def create_container(attrs) do
|
||||||
%Container{} |> Container.changeset(attrs) |> Repo.insert()
|
%Container{} |> Container.changeset(attrs) |> Repo.insert()
|
||||||
end
|
end
|
||||||
@ -67,8 +68,8 @@ defmodule Cannery.Containers do
|
|||||||
{:error, %Ecto.Changeset{}}
|
{:error, %Ecto.Changeset{}}
|
||||||
|
|
||||||
"""
|
"""
|
||||||
@spec update_container(Container.t() | Ecto.Changeset.t(), attrs :: map()) ::
|
@spec update_container(Container.t(), attrs :: map()) ::
|
||||||
{:ok, Container.t()} | {:error, Ecto.Changeset.t()}
|
{:ok, Container.t()} | {:error, Changeset.t(Container.t())}
|
||||||
def update_container(container, attrs) do
|
def update_container(container, attrs) do
|
||||||
container |> Container.changeset(attrs) |> Repo.update()
|
container |> Container.changeset(attrs) |> Repo.update()
|
||||||
end
|
end
|
||||||
@ -85,8 +86,8 @@ defmodule Cannery.Containers do
|
|||||||
{:error, %Ecto.Changeset{}}
|
{:error, %Ecto.Changeset{}}
|
||||||
|
|
||||||
"""
|
"""
|
||||||
@spec delete_container(Container.t() | Ecto.Changeset.t()) ::
|
@spec delete_container(Container.t()) ::
|
||||||
{:ok, Container.t()} | {:error, Ecto.Changeset.t()}
|
{:ok, Container.t()} | {:error, Changeset.t(Container.t())}
|
||||||
def delete_container(container), do: container |> Repo.delete()
|
def delete_container(container), do: container |> Repo.delete()
|
||||||
|
|
||||||
@doc """
|
@doc """
|
||||||
@ -98,7 +99,7 @@ defmodule Cannery.Containers do
|
|||||||
%Container{}
|
%Container{}
|
||||||
|
|
||||||
"""
|
"""
|
||||||
@spec delete_container!(Container.t() | Ecto.Changeset.t()) :: Container.t()
|
@spec delete_container!(Container.t()) :: Container.t()
|
||||||
def delete_container!(container), do: container |> Repo.delete!()
|
def delete_container!(container), do: container |> Repo.delete!()
|
||||||
|
|
||||||
@doc """
|
@doc """
|
||||||
@ -113,9 +114,10 @@ defmodule Cannery.Containers do
|
|||||||
%Ecto.Changeset{data: %Container{}}
|
%Ecto.Changeset{data: %Container{}}
|
||||||
|
|
||||||
"""
|
"""
|
||||||
@spec change_container(Container.t() | Container.new_container()) :: Changeset.t()
|
@spec change_container(Container.t() | Container.new_container()) ::
|
||||||
|
Changeset.t(Container.t() | Container.new_container())
|
||||||
@spec change_container(Container.t() | Container.new_container(), attrs :: map()) ::
|
@spec change_container(Container.t() | Container.new_container(), attrs :: map()) ::
|
||||||
Changeset.t()
|
Changeset.t(Container.t() | Container.new_container())
|
||||||
def change_container(container, attrs \\ %{}), do: container |> Container.changeset(attrs)
|
def change_container(container, attrs \\ %{}), do: container |> Container.changeset(attrs)
|
||||||
|
|
||||||
@doc """
|
@doc """
|
||||||
|
@ -36,7 +36,7 @@ defmodule Cannery.Containers.Container do
|
|||||||
@type id :: UUID.t()
|
@type id :: UUID.t()
|
||||||
|
|
||||||
@doc false
|
@doc false
|
||||||
@spec changeset(t() | new_container(), attrs :: map()) :: Changeset.t()
|
@spec changeset(t() | new_container(), attrs :: map()) :: Changeset.t(t() | new_container())
|
||||||
def changeset(container, attrs) do
|
def changeset(container, attrs) do
|
||||||
container
|
container
|
||||||
|> cast(attrs, [:name, :desc, :type, :location, :user_id])
|
|> cast(attrs, [:name, :desc, :type, :location, :user_id])
|
||||||
|
@ -31,7 +31,8 @@ defmodule Cannery.Containers.ContainerTag do
|
|||||||
@type id :: UUID.t()
|
@type id :: UUID.t()
|
||||||
|
|
||||||
@doc false
|
@doc false
|
||||||
@spec changeset(t() | new_container_tag(), attrs :: map()) :: Changeset.t()
|
@spec changeset(t() | new_container_tag(), attrs :: map()) ::
|
||||||
|
Changeset.t(t() | new_container_tag())
|
||||||
def changeset(container_tag, attrs) do
|
def changeset(container_tag, attrs) do
|
||||||
container_tag
|
container_tag
|
||||||
|> cast(attrs, [:tag_id, :container_id])
|
|> cast(attrs, [:tag_id, :container_id])
|
||||||
|
@ -93,11 +93,11 @@ defmodule Cannery.Invites do
|
|||||||
{:ok, %Invite{}}
|
{:ok, %Invite{}}
|
||||||
|
|
||||||
iex> create_invite(%User{id: "1"}, %{field: bad_value})
|
iex> create_invite(%User{id: "1"}, %{field: bad_value})
|
||||||
{:error, %Ecto.Changeset{}}
|
{:error, %Changeset{}}
|
||||||
|
|
||||||
"""
|
"""
|
||||||
@spec create_invite(User.t() | User.id(), attrs :: map()) ::
|
@spec create_invite(User.t() | User.id(), attrs :: map()) ::
|
||||||
{:ok, Invite.t()} | {:error, Changeset.t()}
|
{:ok, Invite.t()} | {:error, Changeset.t(Invite.new_invite())}
|
||||||
def create_invite(%{id: user_id}, attrs), do: create_invite(user_id, attrs)
|
def create_invite(%{id: user_id}, attrs), do: create_invite(user_id, attrs)
|
||||||
|
|
||||||
def create_invite(user_id, attrs) when not (user_id |> is_nil()) do
|
def create_invite(user_id, attrs) when not (user_id |> is_nil()) do
|
||||||
@ -120,11 +120,11 @@ defmodule Cannery.Invites do
|
|||||||
{:ok, %Invite{}}
|
{:ok, %Invite{}}
|
||||||
|
|
||||||
iex> update_invite(invite, %{field: bad_value})
|
iex> update_invite(invite, %{field: bad_value})
|
||||||
{:error, %Ecto.Changeset{}}
|
{:error, %Changeset{}}
|
||||||
|
|
||||||
"""
|
"""
|
||||||
@spec update_invite(Invite.t(), attrs :: map()) ::
|
@spec update_invite(Invite.t(), attrs :: map()) ::
|
||||||
{:ok, Invite.t()} | {:error, Ecto.Changeset.t()}
|
{:ok, Invite.t()} | {:error, Changeset.t(Invite.t())}
|
||||||
def update_invite(invite, attrs), do: invite |> Invite.changeset(attrs) |> Repo.update()
|
def update_invite(invite, attrs), do: invite |> Invite.changeset(attrs) |> Repo.update()
|
||||||
|
|
||||||
@doc """
|
@doc """
|
||||||
@ -136,10 +136,10 @@ defmodule Cannery.Invites do
|
|||||||
{:ok, %Invite{}}
|
{:ok, %Invite{}}
|
||||||
|
|
||||||
iex> delete_invite(invite)
|
iex> delete_invite(invite)
|
||||||
{:error, %Ecto.Changeset{}}
|
{:error, %Changeset{}}
|
||||||
|
|
||||||
"""
|
"""
|
||||||
@spec delete_invite(Invite.t()) :: {:ok, Invite.t()} | {:error, Ecto.Changeset.t()}
|
@spec delete_invite(Invite.t()) :: {:ok, Invite.t()} | {:error, Changeset.t(Invite.t())}
|
||||||
def delete_invite(invite), do: invite |> Repo.delete()
|
def delete_invite(invite), do: invite |> Repo.delete()
|
||||||
|
|
||||||
@doc """
|
@doc """
|
||||||
@ -155,15 +155,17 @@ defmodule Cannery.Invites do
|
|||||||
def delete_invite!(invite), do: invite |> Repo.delete!()
|
def delete_invite!(invite), do: invite |> Repo.delete!()
|
||||||
|
|
||||||
@doc """
|
@doc """
|
||||||
Returns an `%Ecto.Changeset{}` for tracking invite changes.
|
Returns an `%Changeset{}` for tracking invite changes.
|
||||||
|
|
||||||
## Examples
|
## Examples
|
||||||
|
|
||||||
iex> change_invite(invite)
|
iex> change_invite(invite)
|
||||||
%Ecto.Changeset{data: %Invite{}}
|
%Changeset{data: %Invite{}}
|
||||||
|
|
||||||
"""
|
"""
|
||||||
@spec change_invite(Invite.t() | Invite.new_invite()) :: Ecto.Changeset.t()
|
@spec change_invite(Invite.t() | Invite.new_invite()) ::
|
||||||
@spec change_invite(Invite.t() | Invite.new_invite(), attrs :: map()) :: Ecto.Changeset.t()
|
Changeset.t(Invite.t() | Invite.new_invite())
|
||||||
|
@spec change_invite(Invite.t() | Invite.new_invite(), attrs :: map()) ::
|
||||||
|
Changeset.t(Invite.t() | Invite.new_invite())
|
||||||
def change_invite(invite, attrs \\ %{}), do: invite |> Invite.changeset(attrs)
|
def change_invite(invite, attrs \\ %{}), do: invite |> Invite.changeset(attrs)
|
||||||
end
|
end
|
||||||
|
@ -38,7 +38,7 @@ defmodule Cannery.Invites.Invite do
|
|||||||
@type id :: UUID.t()
|
@type id :: UUID.t()
|
||||||
|
|
||||||
@doc false
|
@doc false
|
||||||
@spec changeset(t() | new_invite(), attrs :: map()) :: Changeset.t()
|
@spec changeset(t() | new_invite(), attrs :: map()) :: Changeset.t(t() | new_invite())
|
||||||
def changeset(invite, attrs) do
|
def changeset(invite, attrs) do
|
||||||
invite
|
invite
|
||||||
|> cast(attrs, [:name, :token, :uses_left, :disabled_at, :user_id])
|
|> cast(attrs, [:name, :token, :uses_left, :disabled_at, :user_id])
|
||||||
|
@ -49,7 +49,7 @@ defmodule Cannery.Tags do
|
|||||||
{:error, %Changeset{}}
|
{:error, %Changeset{}}
|
||||||
|
|
||||||
"""
|
"""
|
||||||
@spec create_tag(attrs :: map()) :: {:ok, Tag.t()} | {:error, Changeset.t()}
|
@spec create_tag(attrs :: map()) :: {:ok, Tag.t()} | {:error, Changeset.t(Tag.new_tag())}
|
||||||
def create_tag(attrs), do: %Tag{} |> Tag.changeset(attrs) |> Repo.insert()
|
def create_tag(attrs), do: %Tag{} |> Tag.changeset(attrs) |> Repo.insert()
|
||||||
|
|
||||||
@doc """
|
@doc """
|
||||||
@ -64,7 +64,7 @@ defmodule Cannery.Tags do
|
|||||||
{:error, %Changeset{}}
|
{:error, %Changeset{}}
|
||||||
|
|
||||||
"""
|
"""
|
||||||
@spec update_tag(Tag.t(), attrs :: map()) :: {:ok, Tag.t()} | {:error, Changeset.t()}
|
@spec update_tag(Tag.t(), attrs :: map()) :: {:ok, Tag.t()} | {:error, Changeset.t(Tag.t())}
|
||||||
def update_tag(tag, attrs), do: tag |> Tag.changeset(attrs) |> Repo.update()
|
def update_tag(tag, attrs), do: tag |> Tag.changeset(attrs) |> Repo.update()
|
||||||
|
|
||||||
@doc """
|
@doc """
|
||||||
@ -79,7 +79,7 @@ defmodule Cannery.Tags do
|
|||||||
{:error, %Changeset{}}
|
{:error, %Changeset{}}
|
||||||
|
|
||||||
"""
|
"""
|
||||||
@spec delete_tag(Tag.t()) :: {:ok, Tag.t()} | {:error, Changeset.t()}
|
@spec delete_tag(Tag.t()) :: {:ok, Tag.t()} | {:error, Changeset.t(Tag.t())}
|
||||||
def delete_tag(tag), do: tag |> Repo.delete()
|
def delete_tag(tag), do: tag |> Repo.delete()
|
||||||
|
|
||||||
@doc """
|
@doc """
|
||||||
@ -103,8 +103,9 @@ defmodule Cannery.Tags do
|
|||||||
%Changeset{data: %Tag{}}
|
%Changeset{data: %Tag{}}
|
||||||
|
|
||||||
"""
|
"""
|
||||||
@spec change_tag(Tag.t() | Tag.new_tag()) :: Changeset.t()
|
@spec change_tag(Tag.t() | Tag.new_tag()) :: Changeset.t(Tag.t() | Tag.new_tag())
|
||||||
@spec change_tag(Tag.t() | Tag.new_tag(), attrs :: map()) :: Changeset.t()
|
@spec change_tag(Tag.t() | Tag.new_tag(), attrs :: map()) ::
|
||||||
|
Changeset.t(Tag.t() | Tag.new_tag())
|
||||||
def change_tag(tag, attrs \\ %{}), do: Tag.changeset(tag, attrs)
|
def change_tag(tag, attrs \\ %{}), do: Tag.changeset(tag, attrs)
|
||||||
|
|
||||||
@doc """
|
@doc """
|
||||||
|
@ -35,7 +35,7 @@ defmodule Cannery.Tags.Tag do
|
|||||||
@type id() :: UUID.t()
|
@type id() :: UUID.t()
|
||||||
|
|
||||||
@doc false
|
@doc false
|
||||||
@spec changeset(t() | new_tag(), attrs :: map()) :: Changeset.t()
|
@spec changeset(t() | new_tag(), attrs :: map()) :: Changeset.t(t() | new_tag())
|
||||||
def changeset(tag, attrs) do
|
def changeset(tag, attrs) do
|
||||||
tag
|
tag
|
||||||
|> cast(attrs, [:name, :bg_color, :text_color, :user_id])
|
|> cast(attrs, [:name, :bg_color, :text_color, :user_id])
|
||||||
|
Loading…
Reference in New Issue
Block a user