defmodule Ueberauth.Auth.Info do
@moduledoc """
Provides a place within the `Ueberauth.Auth` struct for information about the user.
"""
alias Ueberauth.Auth.Info
@type t :: %__MODULE__{
name: binary | nil,
first_name: binary | nil,
last_name: binary | nil,
nickname: binary | nil,
email: binary | nil,
location: binary | nil,
description: binary | nil,
image: binary | nil,
phone: binary | nil,
birthday: binary | nil,
urls: map
}
# The best display name known to the strategy. Usually a concatenation of first and last name, but may also be an arbitrary designator or nickname for some strategies
defstruct name: nil,
first_name: nil,
last_name: nil,
# The username of an authenticating user (such as your @-name from Twitter or GitHub account name)
nickname: nil,
# The e-mail of the authenticating user. Should be provided if at all possible (but some sites such as Twitter do not provide this information)
email: nil,
# The general location of the user, usually a city and state.
location: nil,
# A short description of the authenticating user.
description: nil,
# A URL representing a profile image of the authenticating user. Where possible, should be specified to a square, roughly 50x50 pixel image.
image: nil,
# The telephone number of the authenticating user (no formatting is enforced).
phone: nil,
# The birthday of an authenticated user
birthday: nil,
# A map containing key value pairs of an identifier for the website and its URL. For instance, an entry could be "Blog" => "http://intridea.com/blog"
urls: %{}
def valid?(%Info{name: name}) when is_binary(name), do: true
def valid?(_), do: false
end