lib/random_user/random.ex
defmodule RandomUser.Random do
alias RandomUser.API
@moduledoc """
Get random users with options.
## Examples
RandomUser.Random.one(%{ gender: "female" })
"""
@doc """
Returns one random user.
## Examples
# Returns one random user
RandomUser.Random.one
# Returns a random female user
RandomUser.Random.one(%{ gender: "female" })
"""
def one(options \\ %{}) do
query = URI.encode_query(options)
API.get!("?#{query}")
end
@doc """
Returns multiple random users. This is efficient compared to just getting one random user.
## Examples
# Returns 50 users
RandomUser.Random.multiple(50)
# Returns 50 female users
RandomUser.Random.multiple(50, %{ gender: "female" })
"""
def multiple(n, options \\ %{}) do
query = URI.encode_query(options)
url = "?results=" <> to_string(n)
url = if map_size(options) > 0, do: "#{url}&#{query}", else: url
API.get!(url)
end
end