2022-11-10 14:47:06 +13:00
|
|
|
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)
|
|
|
|
|
2023-01-30 13:16:37 +13:00
|
|
|
username = user_info["nickname"] || user_info["login"] || user_info["preferred_username"]
|
|
|
|
|
2022-11-10 14:47:06 +13:00
|
|
|
changeset
|
2023-01-30 13:16:37 +13:00
|
|
|
|> Changeset.change_attribute(:username, username)
|
2022-11-10 14:47:06 +13:00
|
|
|
end
|
|
|
|
end
|