From 24f608163fb572690453649638cbf25005cf10fc Mon Sep 17 00:00:00 2001 From: shibao Date: Sun, 29 Jan 2023 12:56:44 -0500 Subject: [PATCH] use atoms for role changeset --- lib/memex/accounts.ex | 2 +- lib/memex/accounts/user.ex | 4 ++-- test/support/fixtures.ex | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/memex/accounts.ex b/lib/memex/accounts.ex index c0cc6cf..a70fdf4 100644 --- a/lib/memex/accounts.ex +++ b/lib/memex/accounts.ex @@ -112,7 +112,7 @@ defmodule Memex.Accounts do |> Multi.one(:users_count, from(u in User, select: count(u.id), distinct: true)) |> Multi.insert(:add_user, fn %{users_count: count} -> # if no registered users, make first user an admin - role = if count == 0, do: "admin", else: "user" + role = if count == 0, do: :admin, else: :user User.registration_changeset(attrs) |> User.role_changeset(role) end) diff --git a/lib/memex/accounts/user.ex b/lib/memex/accounts/user.ex index 48ce284..4da45b2 100644 --- a/lib/memex/accounts/user.ex +++ b/lib/memex/accounts/user.ex @@ -50,7 +50,7 @@ defmodule Memex.Accounts.User do @type new_user :: %__MODULE__{} @type id :: UUID.t() @type changeset :: Changeset.t(t() | new_user()) - @type role :: :user | :admin | String.t() + @type role :: :user | :admin @doc """ A user changeset for registration. @@ -84,7 +84,7 @@ defmodule Memex.Accounts.User do """ @spec role_changeset(t() | new_user() | changeset(), role()) :: changeset() def role_changeset(user, role) do - user |> cast(%{"role" => role}, [:role]) + user |> change(role: role) end @spec validate_email(changeset()) :: changeset() diff --git a/test/support/fixtures.ex b/test/support/fixtures.ex index 6355a60..be6ae12 100644 --- a/test/support/fixtures.ex +++ b/test/support/fixtures.ex @@ -29,7 +29,7 @@ defmodule Memex.Fixtures do }) |> Accounts.register_user() |> unwrap_ok_tuple() - |> User.role_changeset("admin") + |> User.role_changeset(:admin) |> Repo.update!() end