defmodule Auth0.Entity.Invitation do @moduledoc false defmodule Inviter do @moduledoc false alias Auth0.Common.Util defstruct name: nil @type t :: %__MODULE__{ name: String.t() } @spec from(map) :: __MODULE__.t() def from(value) do value |> Util.to_struct(__MODULE__) end end defmodule Invitee do @moduledoc false alias Auth0.Common.Util defstruct email: nil @type t :: %__MODULE__{ email: String.t() } @spec from(map) :: __MODULE__.t() def from(value) do value |> Util.to_struct(__MODULE__) end end alias Auth0.Common.Util defstruct id: nil, organization_id: nil, inviter: nil, invitee: nil, invitation_url: nil, created_at: nil, expires_at: nil, client_id: nil, connection_id: nil, app_metadata: nil, user_metadata: nil, roles: nil, ticket_id: nil @type t :: %__MODULE__{ id: String.t(), organization_id: String.t(), inviter: Inviter.t(), invitee: Invitee.t(), invitation_url: String.t(), created_at: String.t(), expires_at: String.t(), client_id: String.t(), connection_id: String.t(), app_metadata: map, user_metadata: map, roles: list(String.t()), ticket_id: String.t() } @spec from(map) :: __MODULE__.t() def from(value) do invitation = value |> Util.to_struct(__MODULE__) %{ invitation | inviter: if(invitation.inviter |> is_map, do: invitation.inviter |> Inviter.from(), else: nil ), invitee: if(invitation.invitee |> is_map, do: invitation.invitee |> Invitee.from(), else: nil ) } end end