defmodule Auth0.Entity.UserBlocks do @moduledoc """ Documentation for entity of UserBlocks. """ defmodule BlockedFor do @moduledoc """ Documentation for entity of UserBlocks BlockedFor. """ alias Auth0.Common.Util defstruct identifier: nil, connection: nil, ip: nil @type t :: %__MODULE__{ identifier: String.t(), connection: String.t(), ip: String.t() } @spec from(map) :: __MODULE__.t() def from(value) do value |> Util.to_struct(__MODULE__) end end alias Auth0.Common.Util defstruct blocked_for: nil @type t :: %__MODULE__{ blocked_for: list(BlockedFor.t()) } @spec from(map) :: __MODULE__.t() def from(value) do user_blocks = value |> Util.to_struct(__MODULE__) %{ user_blocks | blocked_for: if(user_blocks.blocked_for |> is_list, do: user_blocks.blocked_for |> Enum.map(&BlockedFor.from/1), else: nil ) } end end