GSS.Client (elixir_google_spreadsheets v0.2.1)
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 thesslerlang 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()