ash_authentication/test/support/example/generic_oauth_change.ex

17 lines
509 B
Elixir

defmodule Example.GenericOAuth2Change do
@moduledoc false
use Ash.Resource.Change
alias Ash.{Changeset, Resource.Change}
@doc false
@impl true
@spec change(Changeset.t(), keyword, Change.context()) :: Changeset.t()
def change(changeset, _opts, _context) do
user_info = Changeset.get_argument(changeset, :user_info)
username = user_info["nickname"] || user_info["login"] || user_info["preferred_username"]
changeset
|> Changeset.change_attribute(:username, username)
end
end