Current section
Files
Jump to
Current section
Files
lib/supabase/auth/schemas/mfa/verify_params.ex
defmodule Supabase.Auth.Schemas.MFA.VerifyParams do
@moduledoc false
use Ecto.Schema
import Ecto.Changeset
@type code_params :: %{code: String.t()}
@type webauthn_params :: %{webauthn: map()}
@type t :: code_params | webauthn_params
@code_types %{code: :string}
@webauthn_types %{webauthn: :map}
@spec parse(code_params) :: {:ok, code_params} | {:error, Ecto.Changeset.t()}
@spec parse(webauthn_params) :: {:ok, webauthn_params} | {:error, Ecto.Changeset.t()}
def parse(%{code: _} = attrs) do
{%{}, @code_types}
|> cast(attrs, [:code])
|> validate_required([:code])
|> validate_length(:code, is: 6)
|> apply_action(:parse)
end
def parse(%{webauthn: _} = attrs) do
{%{}, @webauthn_types}
|> cast(attrs, [:webauthn])
|> validate_required([:webauthn])
|> apply_action(:parse)
end
end