GSS.Client (elixir_google_spreadsheets v0.3.2)
Model of Client abstraction This process is a Producer for this GenStage pipeline.
Link to this section Summary
Functions
Read config settings scoped for GSS client.
Divide request into to partitions :read and :write
Adds an event to the queue
Gives events for the next stage to process when requested
Callback implementation for GenStage.init/1
.
Issues an HTTP request with the given method to the given url.
Starts a task with request that must be awaited on.
Link to this section Types
event()
Specs
event() :: {:request, GenStage.from(), GSS.Client.RequestParams.t()}
partition()
Specs
partition() :: :write | :read
Link to this section Functions
config(key, default \\ nil)
Specs
Read config settings scoped for GSS client.
dispatcher_hash(event)
Specs
Divide request into to partitions :read and :write
handle_call(arg, from, queue)
Adds an event to the queue
handle_demand(demand, queue)
Gives events for the next stage to process when requested
init(atom)
Callback implementation for GenStage.init/1
.
request(method, url, body \\ "", headers \\ [], options \\ [])
Specs
request(atom(), binary(), HTTPoison.body(), HTTPoison.headers(), Keyword.t()) :: {:ok, HTTPoison.Response.t()} | {:error, binary()} | no_return()
Issues an HTTP request with the given method to the given url.
This function is usually used indirectly by get/3
, post/4
, put/4
, etc
Args:
method
- HTTP method as an atom (:get
,:head
,:post
,:put
,:delete
, etc.)url
- target url as a binary string or char listbody
- request body. See more belowheaders
- HTTP headers as an orddict (e.g.,[{"Accept", "application/json"}]
)options
- Keyword list of options
Body:
- binary, char list or an iolist
{:form, [{K, V}, ...]}
- send a form url encoded{:file, ~s(/path/to/file)}
- send a file{:stream, enumerable}
- lazily send a stream of binaries/charlists
Options:
:result_timeout
- receive result timeout, in milliseconds. Default is 2 minutes:timeout
- timeout to establish a connection, in milliseconds. Default is 8000:recv_timeout
- timeout used when receiving a connection. Default is 5000:proxy
- a proxy to be used for the request; it can be a regular url or a{Host, Port}
tuple:proxy_auth
- proxy authentication{User, Password}
tuple:ssl
- SSL options supported by thessl
erlang module:follow_redirect
- a boolean that causes redirects to be followed:max_redirect
- an integer denoting the maximum number of redirects to follow:params
- an enumerable consisting of two-item tuples that will be appended to the url as query string parameters
Timeouts can be an integer or :infinity
This function returns {:ok, response}
or {:ok, async_response}
if the
request is successful, {:error, reason}
otherwise.
Examples
request(:post, ~s(https://my.website.com), ~s({\"foo\": 3}), [{"Accept", "application/json"}])
request_async(method, url, body \\ "", headers \\ [], options \\ [])
Specs
request_async( atom(), binary(), HTTPoison.body(), HTTPoison.headers(), Keyword.t() ) :: Task.t()
Starts a task with request that must be awaited on.
start_link(args \\ [])
Specs
start_link(any()) :: GenServer.on_start()