esi v0.1.1 ESI

Summary

Functions

Execute a request

Execute a request and raise an error if it is not successful

Generate a stream from a request, supporting automatic pagination

Functions

request(req, opts \\ [])

Execute a request.

Arguments

  • request — the request
  • opts — any additional options to set on the request
request!(req, opts \\ [])
request!(req :: ESI.Request.t, opts :: ESI.Request.request_opts) ::
  {:ok, any} |
  {:error, any}
request!(req :: ESI.Request.t, opts :: ESI.Request.request_opts) :: any

Execute a request and raise an error if it is not successful.

stream!(req, opts \\ [])
stream!(req :: ESI.Request.t, opts :: ESI.Request.request_opts) :: any

Generate a stream from a request, supporting automatic pagination.

Examples

Paginating, without stream!; you need to manually handle incrementing the :page option:

iex> ESI.API.Universe.groups() |> ESI.request! |> length
1000
iex> ESI.API.Universe.groups(page: 2) |> ESI.request! |> length
284

Paginating with stream!, you don’t have to care about :page:

iex> ESI.API.Universe.groups() |> ESI.stream! |> Enum.take(1020) |> length
1020

Like any stream, you can use Enum.to_list/1 to get all the items:

iex> ESI.API.Universe.groups() |> ESI.stream! |> Enum.to_list |> length
1284

It even works for requests that don’t paginate:

iex> ESI.API.Universe.bloodlines() |> ESI.stream! |> Enum.to_list |> length
15