Packages

Elixir client SDK for the Surge API

Current section

Files

Jump to
surge_api lib surge users user.ex
Raw

lib/surge/users/user.ex

defmodule Surge.Users.User do
@moduledoc """
A user of the app.
"""
@type t :: %__MODULE__{
id: String.t(),
first_name: String.t() | nil,
last_name: String.t() | nil,
metadata: map() | nil,
photo_url: String.t() | nil
}
defstruct [
:id,
:first_name,
:last_name,
:metadata,
:photo_url
]
@doc """
Converts JSON response to User struct.
## Examples
iex> data = %{"id" => "usr_123", "first_name" => "John", "last_name" => "Doe"}
iex> Surge.Users.User.from_json(data)
%Surge.Users.User{id: "usr_123", first_name: "John", last_name: "Doe"}
"""
@spec from_json(map()) :: t()
def from_json(data) when is_map(data) do
%__MODULE__{
id: data["id"],
first_name: data["first_name"],
last_name: data["last_name"],
metadata: data["metadata"],
photo_url: data["photo_url"]
}
end
end