+ def profile_update(info, params) do
+ info
+ |> cast(params, [
+ :locked,
+ :no_rich_text,
+ :default_scope,
+ :banner,
+ :hide_follows,
+ :hide_followers,
+ :background,
+ :show_role
+ ])
+ end
+
+ def confirmation_changeset(info, :confirmed) do
+ confirmation_changeset(info, %{
+ confirmation_pending: false,
+ confirmation_token: nil
+ })
+ end
+
+ def confirmation_changeset(info, :unconfirmed) do
+ confirmation_changeset(info, %{
+ confirmation_pending: true,
+ confirmation_token: :crypto.strong_rand_bytes(32) |> Base.url_encode64()
+ })
+ end
+
+ def confirmation_changeset(info, params) do
+ cast(info, params, [:confirmation_pending, :confirmation_token])
+ end
+
+ def mastodon_profile_update(info, params) do
+ info
+ |> cast(params, [
+ :locked,
+ :banner
+ ])
+ end
+
+ def mastodon_settings_update(info, settings) do
+ params = %{settings: settings}
+
+ info
+ |> cast(params, [:settings])
+ |> validate_required([:settings])
+ end
+
+ def mastodon_flavour_update(info, flavour) do
+ params = %{flavour: flavour}
+
+ info
+ |> cast(params, [:flavour])
+ |> validate_required([:flavour])
+ end
+