Packages
potionx
0.2.15
0.8.15
0.8.14
0.8.13
0.8.12
0.8.11
0.8.10
0.8.9
0.8.8
0.8.7
0.8.6
0.8.5
0.8.4
0.8.3
0.8.2
0.8.1
0.8.0
0.7.2
0.7.1
0.7.0
0.6.4
0.6.3
0.6.2
0.6.1
0.6.0
0.5.3
0.5.2
0.5.1
0.5.0
0.4.16
0.4.15
0.4.14
0.4.13
0.4.12
0.4.11
0.4.10
0.4.9
0.4.8
0.4.7
0.4.6
0.4.5
0.4.4
0.4.3
0.4.2
0.4.1
0.4.0
0.3.0
0.2.18
0.2.17
0.2.16
0.2.15
0.2.14
0.2.13
0.2.12
0.2.11
0.2.10
0.2.9
0.2.8
0.2.7
0.2.6
0.2.5
0.2.4
0.2.3
0.2.2
0.2.1
0.1.1
0.1.0
Potionx is a set of generators and functions that speeds up the process of setting up and deploying a full-stack application that uses Elixir with GraphQL for the server-side component and Vue for the frontend component.
Current section
Files
Jump to
Current section
Files
lib/potionx/user.ex
defmodule Potionx.Users.User do
defmacro __using__(_) do
quote do
def pow_user_id_field, do: :email
def title(entry) do
[entry.name_first, entry.name_last]
|> Enum.filter(fn e -> e end)
|> Enum.join(" ")
end
def user_identity_changeset(user_or_changeset, user_identity, attrs, user_id_attrs) do
attrs = Potionx.Users.User.pow_attrs_to_changes(attrs)
user_or_changeset
|> Ecto.Changeset.cast(attrs, [:name_first, :name_last])
|> PowAssent.Ecto.Schema.changeset(user_identity, attrs, user_id_attrs, nil)
end
end
end
def pow_attrs_to_changes(attrs) do
[
{"family_name", :name_last},
{"given_name", :name_first},
{"locale", :locale},
{"name", :name_first}
]
|> Enum.reduce(attrs, fn {key_from, key_to}, acc ->
if Map.has_key?(acc, key_from) do
Map.put(
acc,
to_string(key_to),
Map.get(acc, key_from)
)
else
acc
end
end)
end
end