defmodule Auth0.Entity.User do
@moduledoc """
Documentation for entity of User.
"""
alias Auth0.Common.Util
alias Auth0.Entity.Identity
defstruct user_id: nil,
email: nil,
email_verified: nil,
username: nil,
phone_number: nil,
phone_verified: nil,
created_at: nil,
updated_at: nil,
identities: nil,
app_metadata: nil,
user_metadata: nil,
picture: nil,
name: nil,
nickname: nil,
multifactor: nil,
last_ip: nil,
last_login: nil,
logins_count: nil,
blocked: nil,
given_name: nil,
family_name: nil
@type t :: %__MODULE__{
user_id: String.t(),
email: String.t(),
email_verified: boolean,
username: String.t(),
phone_number: String.t(),
phone_verified: boolean,
created_at: String.t(),
updated_at: String.t(),
identities: list(Identity.t()),
app_metadata: map,
user_metadata: map,
picture: String.t(),
name: String.t(),
nickname: String.t(),
multifactor: list(String.t()),
last_ip: String.t(),
last_login: String.t(),
logins_count: integer,
blocked: boolean,
given_name: String.t(),
family_name: String.t()
}
@spec from(map) :: __MODULE__.t()
def from(value) do
user = value |> Util.to_struct(__MODULE__)
if user.identities |> is_list do
%{user | identities: user.identities |> Enum.map(&Identity.from/1)}
else
user
end
end
end