Various refactoring and typespec improvements

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
This commit is contained in:
Thomas Citharel
2021-09-24 16:46:42 +02:00
parent d235653876
commit 1893d9f55b
142 changed files with 1854 additions and 1297 deletions

View File

@@ -25,6 +25,7 @@ defmodule Mobilizon.Users.ActivitySetting do
end
@doc false
@spec changeset(t | Ecto.Schema.t(), map) :: Ecto.Changeset.t()
def changeset(activity_setting, attrs) do
activity_setting
|> cast(attrs, @attrs)

View File

@@ -25,6 +25,7 @@ defmodule Mobilizon.Users.PushSubscription do
end
@doc false
@spec changeset(t | Ecto.Schema.t(), map) :: Ecto.Changeset.t()
def changeset(push_subscription, attrs) do
push_subscription
|> cast(attrs, [:user_id, :endpoint, :auth, :p256dh])

View File

@@ -19,6 +19,12 @@ defmodule Mobilizon.Users.Setting do
user: User.t()
}
@type location :: %{
name: String.t(),
range: integer,
geohash: String.t()
}
@required_attrs [:user_id]
@optional_attrs [
@@ -66,6 +72,7 @@ defmodule Mobilizon.Users.Setting do
end
@doc false
@spec changeset(t | Ecto.Schema.t(), map) :: Ecto.Changeset.t()
def changeset(setting, attrs) do
setting
|> cast(attrs, @attrs)
@@ -73,6 +80,7 @@ defmodule Mobilizon.Users.Setting do
|> validate_required(@required_attrs)
end
@spec location_changeset(location, map) :: Ecto.Changeset.t()
def location_changeset(schema, params) do
schema
|> cast(params, @location_attrs)

View File

@@ -19,7 +19,7 @@ defmodule Mobilizon.Users.User do
password_hash: String.t(),
password: String.t(),
role: UserRole.t(),
confirmed_at: DateTime.t(),
confirmed_at: DateTime.t() | nil,
confirmation_sent_at: DateTime.t(),
confirmation_token: String.t(),
reset_password_sent_at: DateTime.t(),
@@ -32,7 +32,10 @@ defmodule Mobilizon.Users.User do
last_sign_in_at: DateTime.t(),
last_sign_in_ip: String.t(),
current_sign_in_ip: String.t(),
current_sign_in_at: DateTime.t()
current_sign_in_at: DateTime.t(),
activity_settings: [ActivitySetting.t()],
settings: Setting.t(),
unconfirmed_email: String.t() | nil
}
@required_attrs [:email]
@@ -96,7 +99,7 @@ defmodule Mobilizon.Users.User do
end
@doc false
@spec changeset(t, map) :: Ecto.Changeset.t()
@spec changeset(t | Ecto.Schema.t(), map) :: Ecto.Changeset.t()
def changeset(%__MODULE__{} = user, attrs) do
changeset =
user
@@ -129,7 +132,6 @@ defmodule Mobilizon.Users.User do
def registration_changeset(%__MODULE__{} = user, attrs) do
user
|> changeset(attrs)
|> cast_assoc(:default_actor)
|> validate_required(@registration_required_attrs)
|> hash_password()
|> save_confirmation_token()
@@ -148,7 +150,6 @@ defmodule Mobilizon.Users.User do
def auth_provider_changeset(%__MODULE__{} = user, attrs) do
user
|> changeset(attrs)
|> cast_assoc(:default_actor)
|> put_change(:confirmed_at, DateTime.utc_now() |> DateTime.truncate(:second))
|> validate_required(@auth_provider_required_attrs)
end

View File

@@ -338,10 +338,10 @@ defmodule Mobilizon.Users do
"""
def get_setting!(user_id), do: Repo.get!(Setting, user_id)
@spec get_setting(User.t()) :: Setting.t()
@spec get_setting(User.t()) :: Setting.t() | nil
def get_setting(%User{id: user_id}), do: get_setting(user_id)
@spec get_setting(String.t() | integer()) :: Setting.t()
@spec get_setting(String.t() | integer()) :: Setting.t() | nil
def get_setting(user_id), do: Repo.get(Setting, user_id)
@doc """
@@ -356,6 +356,7 @@ defmodule Mobilizon.Users do
{:error, %Ecto.Changeset{}}
"""
@spec create_setting(map()) :: {:ok, Setting.t()} | {:error, Ecto.Changeset.t()}
def create_setting(attrs \\ %{}) do
%Setting{}
|> Setting.changeset(attrs)
@@ -445,6 +446,8 @@ defmodule Mobilizon.Users do
{:error, %Ecto.Changeset{}}
"""
@spec create_push_subscription(map()) ::
{:ok, PushSubscription.t()} | {:error, Ecto.Changeset.t()}
def create_push_subscription(attrs \\ %{}) do
%PushSubscription{}
|> PushSubscription.changeset(attrs)