Current section
Files
Jump to
Current section
Files
lib/supabase/auth/schemas/invite_user_params.ex
defmodule Supabase.Auth.Schemas.InviteUserParams do
@moduledoc false
use Ecto.Schema
import Ecto.Changeset
@type t :: %__MODULE__{
data: map,
redirect_to: URI.t()
}
embedded_schema do
field(:data, :map)
field(:redirect_to, :string)
end
def parse(attrs) do
%__MODULE__{}
|> cast(attrs, [:data, :redirect_to])
|> parse_uri()
|> apply_action(:parse)
end
defp parse_uri(changeset) do
redirect_to = get_change(changeset, :redirect_to)
cond do
is_nil(redirect_to) -> changeset
not is_binary(redirect_to) -> add_error(changeset, :redirect_to, "needs to be a binary")
true -> put_change(changeset, :redirect_to, redirect_to |> URI.parse() |> URI.to_string())
end
end
end