GSS.Client (elixir_google_spreadsheets v0.4.0)
Model of Client abstraction This process is a Producer for this GenStage pipeline.
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 using Finch.
Starts a task with request that must be awaited on.
Types
@type event() :: {:request, GenStage.from(), GSS.Client.RequestParams.t()}
@type partition() :: :write | :read
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.
@spec request( atom(), binary(), binary() | iodata(), [{binary(), binary()}], Keyword.t() ) :: {:ok, Finch.Response.t()} | {:error, Exception.t()}
Issues an HTTP request with the given method to the given URL using Finch.
This function is usually used indirectly by helper functions such as get/3, post/4, put/4, etc.
Arguments
method: HTTP method as an atom (e.g.,:get,:head,:post,:put,:delete, etc.).url: Target URL as a binary string.body: Request body, which can be a binary, char list, or iodata. Special forms include:{:form, [{K, V}, ...]}– to send a form URL-encoded payload.{:file, "/path/to/file"}– to send a file.{:stream, enumerable}– to lazily send a stream of binaries/char lists.
headers: HTTP headers as a list of two-element tuples (e.g.,[{"Accept", "application/json"}]).options: A keyword list of Finch options. Supported options include::timeout– Timeout (in milliseconds) for establishing a connection (default is 8000).:recv_timeout– Timeout (in milliseconds) for receiving data (default is 5000).:proxy– A proxy for the request; either a URL or a{host, port}tuple.:proxy_auth– Proxy authentication credentials as{user, password}.:ssl– SSL options as supported by Erlang’ssslmodule.:follow_redirect– Boolean to indicate if redirects should be followed.:max_redirect– Maximum number of redirects to follow.:params– Enumerable of two-item tuples to be appended to the URL as query string parameters.- Any other Finch-supported options can also be provided.
Timeout values can be specified as an integer or as :infinity.
Returns
- On success, returns
{:ok, %Finch.Response{}}. - On failure, returns
{:error, reason}wherereasonis an exception.
Examples
request(:post, "https://my.website.com", "{"foo": 3}", [{"Accept", "application/json"}])
@spec request_async( atom(), binary(), binary() | iodata(), [{binary(), binary()}], Keyword.t() ) :: Task.t()
Starts a task with request that must be awaited on.
@spec start_link(any()) :: GenServer.on_start()