Strava v1.0.0 Strava.Client View Source
Handle Tesla connections for Strava.
Link to this section Summary
Functions
Perform a DELETE request
Perform a DELETE request
Perform a GET request
Perform a GET request
Perform a HEAD request
Perform a HEAD request
Configure a client using the default configured access token
Configure a client connection using a provided OAuth2 token as a Bearer token
Perform a OPTIONS request
Perform a OPTIONS request
Perform a PATCH request
Perform a PATCH request
Perform a POST request
Perform a POST request
Perform a PUT request
Perform a PUT request
Perform a request
Perform request and raise in case of error
Perform a TRACE request
Perform a TRACE request
Link to this section Types
option()
View Source
option() ::
{:method, Tesla.Env.method()}
| {:url, Tesla.Env.url()}
| {:query, Tesla.Env.query()}
| {:headers, Tesla.Env.headers()}
| {:body, Tesla.Env.body()}
| {:opts, Tesla.Env.opts()}
option() ::
{:method, Tesla.Env.method()}
| {:url, Tesla.Env.url()}
| {:query, Tesla.Env.query()}
| {:headers, Tesla.Env.headers()}
| {:body, Tesla.Env.body()}
| {:opts, Tesla.Env.opts()}
Link to this section Functions
delete(client, url, opts)
View Source
delete(Tesla.Env.client(), Tesla.Env.url(), [option()]) :: Tesla.Env.result()
delete(Tesla.Env.client(), Tesla.Env.url(), [option()]) :: Tesla.Env.result()
Perform a DELETE request.
See request/1 or request/2 for options definition.
delete("/users")
delete("/users", query: [scope: "admin"])
delete(client, "/users")
delete(client, "/users", query: [scope: "admin"])
delete!(client, url, opts)
View Source
delete!(Tesla.Env.client(), Tesla.Env.url(), [option()]) ::
Tesla.Env.t() | no_return()
delete!(Tesla.Env.client(), Tesla.Env.url(), [option()]) :: Tesla.Env.t() | no_return()
Perform a DELETE request.
See request!/1 or request!/2 for options definition.
delete!("/users")
delete!("/users", query: [scope: "admin"])
delete!(client, "/users")
delete!(client, "/users", query: [scope: "admin"])
get(client, url, opts)
View Source
get(Tesla.Env.client(), Tesla.Env.url(), [option()]) :: Tesla.Env.result()
get(Tesla.Env.client(), Tesla.Env.url(), [option()]) :: Tesla.Env.result()
Perform a GET request.
See request/1 or request/2 for options definition.
get("/users")
get("/users", query: [scope: "admin"])
get(client, "/users")
get(client, "/users", query: [scope: "admin"])
get!(client, url, opts)
View Source
get!(Tesla.Env.client(), Tesla.Env.url(), [option()]) ::
Tesla.Env.t() | no_return()
get!(Tesla.Env.client(), Tesla.Env.url(), [option()]) :: Tesla.Env.t() | no_return()
Perform a GET request.
See request!/1 or request!/2 for options definition.
get!("/users")
get!("/users", query: [scope: "admin"])
get!(client, "/users")
get!(client, "/users", query: [scope: "admin"])
head(client, url, opts)
View Source
head(Tesla.Env.client(), Tesla.Env.url(), [option()]) :: Tesla.Env.result()
head(Tesla.Env.client(), Tesla.Env.url(), [option()]) :: Tesla.Env.result()
Perform a HEAD request.
See request/1 or request/2 for options definition.
head("/users")
head("/users", query: [scope: "admin"])
head(client, "/users")
head(client, "/users", query: [scope: "admin"])
head!(client, url, opts)
View Source
head!(Tesla.Env.client(), Tesla.Env.url(), [option()]) ::
Tesla.Env.t() | no_return()
head!(Tesla.Env.client(), Tesla.Env.url(), [option()]) :: Tesla.Env.t() | no_return()
Perform a HEAD request.
See request!/1 or request!/2 for options definition.
head!("/users")
head!("/users", query: [scope: "admin"])
head!(client, "/users")
head!(client, "/users", query: [scope: "admin"])
new()
View Source
new() :: Tesla.Env.client()
new() :: Tesla.Env.client()
Configure a client using the default configured access token.
Returns
Tesla.Env.client
Example
client = Strava.Client.new()
new(access_token, opts \\ []) View Source
Configure a client connection using a provided OAuth2 token as a Bearer token
Parameters
access_token(String) - Strava access tokenopts (Keyword) - Optional params
refresh_token- Token used to refresh an expired access token.token_refreshed- Single-arity callback function invoked whenever the access token is refreshed. Will be passed aOAuth2.Clientcontaining the refreshed access token and refresh token.
Returns
Tesla.Env.client
Examples
Create a client with an access token:
client = Strava.Client.new("<access_token>")
Create a client with an optional refresh token, used to refresh an expired access token, and callback function invoked when the token is refreshed.
client = Strava.Client.new("<access_token>",
refresh_token: "<refresh_token>",
token_refreshed: fn client -> IO.inspect(client, label: "client") end
)
options(client, url, opts)
View Source
options(Tesla.Env.client(), Tesla.Env.url(), [option()]) :: Tesla.Env.result()
options(Tesla.Env.client(), Tesla.Env.url(), [option()]) :: Tesla.Env.result()
Perform a OPTIONS request.
See request/1 or request/2 for options definition.
options("/users")
options("/users", query: [scope: "admin"])
options(client, "/users")
options(client, "/users", query: [scope: "admin"])
options!(client, url, opts)
View Source
options!(Tesla.Env.client(), Tesla.Env.url(), [option()]) ::
Tesla.Env.t() | no_return()
options!(Tesla.Env.client(), Tesla.Env.url(), [option()]) :: Tesla.Env.t() | no_return()
Perform a OPTIONS request.
See request!/1 or request!/2 for options definition.
options!("/users")
options!("/users", query: [scope: "admin"])
options!(client, "/users")
options!(client, "/users", query: [scope: "admin"])
patch(client, url, body, opts)
View Source
patch(Tesla.Env.client(), Tesla.Env.url(), Tesla.Env.body(), [option()]) ::
Tesla.Env.result()
patch(Tesla.Env.client(), Tesla.Env.url(), Tesla.Env.body(), [option()]) :: Tesla.Env.result()
Perform a PATCH request.
See request/1 or request/2 for options definition.
patch("/users", %{name: "Jon"})
patch("/users", %{name: "Jon"}, query: [scope: "admin"])
patch(client, "/users", %{name: "Jon"})
patch(client, "/users", %{name: "Jon"}, query: [scope: "admin"])
patch!(client, url, body, opts)
View Source
patch!(Tesla.Env.client(), Tesla.Env.url(), Tesla.Env.body(), [option()]) ::
Tesla.Env.t() | no_return()
patch!(Tesla.Env.client(), Tesla.Env.url(), Tesla.Env.body(), [option()]) :: Tesla.Env.t() | no_return()
Perform a PATCH request.
See request!/1 or request!/2 for options definition.
patch!("/users", %{name: "Jon"})
patch!("/users", %{name: "Jon"}, query: [scope: "admin"])
patch!(client, "/users", %{name: "Jon"})
patch!(client, "/users", %{name: "Jon"}, query: [scope: "admin"])
post(client, url, body, opts)
View Source
post(Tesla.Env.client(), Tesla.Env.url(), Tesla.Env.body(), [option()]) ::
Tesla.Env.result()
post(Tesla.Env.client(), Tesla.Env.url(), Tesla.Env.body(), [option()]) :: Tesla.Env.result()
Perform a POST request.
See request/1 or request/2 for options definition.
post("/users", %{name: "Jon"})
post("/users", %{name: "Jon"}, query: [scope: "admin"])
post(client, "/users", %{name: "Jon"})
post(client, "/users", %{name: "Jon"}, query: [scope: "admin"])
post!(client, url, body, opts)
View Source
post!(Tesla.Env.client(), Tesla.Env.url(), Tesla.Env.body(), [option()]) ::
Tesla.Env.t() | no_return()
post!(Tesla.Env.client(), Tesla.Env.url(), Tesla.Env.body(), [option()]) :: Tesla.Env.t() | no_return()
Perform a POST request.
See request!/1 or request!/2 for options definition.
post!("/users", %{name: "Jon"})
post!("/users", %{name: "Jon"}, query: [scope: "admin"])
post!(client, "/users", %{name: "Jon"})
post!(client, "/users", %{name: "Jon"}, query: [scope: "admin"])
put(client, url, body, opts)
View Source
put(Tesla.Env.client(), Tesla.Env.url(), Tesla.Env.body(), [option()]) ::
Tesla.Env.result()
put(Tesla.Env.client(), Tesla.Env.url(), Tesla.Env.body(), [option()]) :: Tesla.Env.result()
Perform a PUT request.
See request/1 or request/2 for options definition.
put("/users", %{name: "Jon"})
put("/users", %{name: "Jon"}, query: [scope: "admin"])
put(client, "/users", %{name: "Jon"})
put(client, "/users", %{name: "Jon"}, query: [scope: "admin"])
put!(client, url, body, opts)
View Source
put!(Tesla.Env.client(), Tesla.Env.url(), Tesla.Env.body(), [option()]) ::
Tesla.Env.t() | no_return()
put!(Tesla.Env.client(), Tesla.Env.url(), Tesla.Env.body(), [option()]) :: Tesla.Env.t() | no_return()
Perform a PUT request.
See request!/1 or request!/2 for options definition.
put!("/users", %{name: "Jon"})
put!("/users", %{name: "Jon"}, query: [scope: "admin"])
put!(client, "/users", %{name: "Jon"})
put!(client, "/users", %{name: "Jon"}, query: [scope: "admin"])
request(client \\ %Tesla.Client{}, options)
View Source
request(Tesla.Env.client(), [option()]) :: Tesla.Env.result()
request(Tesla.Env.client(), [option()]) :: Tesla.Env.result()
Perform a request
Options:
:method- the request method, one of [:head, :get, :delete, :trace, :options, :post, :put, :patch]:url- either full url e.g. "http://example.com/some/path" or just "/some/path" if usingTesla.Middleware.BaseUrl:query- a keyword list of query params, e.g.[page: 1, per_page: 100]:headers- a keyworld list of headers, e.g.[{"content-type", "text/plain"}]:body- depends on used middleware:- by default it can be a binary
- if using e.g. JSON encoding middleware it can be a nested map
- if adapter supports it it can be a Stream with any of the above
:opts- custom, per-request middleware or adapter options
Examples:
ExampleApi.request(method: :get, url: "/users/path")
You can also use shortcut methods like:
ExampleApi.get("/users/1")
or
ExampleApi.post(client, "/users", %{name: "Jon"})
request!(client \\ %Tesla.Client{}, options)
View Source
request!(Tesla.Env.client(), [option()]) :: Tesla.Env.t() | no_return()
request!(Tesla.Env.client(), [option()]) :: Tesla.Env.t() | no_return()
Perform request and raise in case of error.
This is similar to request/2 behaviour from Tesla 0.x
See request/2 for list of available options.
trace(client, url, opts)
View Source
trace(Tesla.Env.client(), Tesla.Env.url(), [option()]) :: Tesla.Env.result()
trace(Tesla.Env.client(), Tesla.Env.url(), [option()]) :: Tesla.Env.result()
Perform a TRACE request.
See request/1 or request/2 for options definition.
trace("/users")
trace("/users", query: [scope: "admin"])
trace(client, "/users")
trace(client, "/users", query: [scope: "admin"])
trace!(client, url, opts)
View Source
trace!(Tesla.Env.client(), Tesla.Env.url(), [option()]) ::
Tesla.Env.t() | no_return()
trace!(Tesla.Env.client(), Tesla.Env.url(), [option()]) :: Tesla.Env.t() | no_return()
Perform a TRACE request.
See request!/1 or request!/2 for options definition.
trace!("/users")
trace!("/users", query: [scope: "admin"])
trace!(client, "/users")
trace!(client, "/users", query: [scope: "admin"])