ThinkificAdminAPI.Connection (Thinkific Admin API v0.1.0)
Handle Tesla connections for ThinkificAdminAPI.
Link to this section Summary
Functions
Configure an authless client connection
Configure a client connection with subdomain and Authentication header Ie.: ThinkificAdminAPI.Connection.new("my-subdomain, "%{"Authorization" => "Bearer 1360ddc6-4029-47ec-a027-e5f1e60f4c38"}) ThinkificAdminAPI.Connection.new("my-subdomain, "%{"X-Auth-API-Key" => "9icu13c55130879ef301b1975a21f27c"})
Perform a request. See request/2
for available options.
Perform a request using client function
Link to this section Types
option()
Specs
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(url)
Specs
delete(Tesla.Env.url()) :: Tesla.Env.t()
Perform a DELETE request.
See request/1
or request/2
for options definition.
Example
ExampleApi.delete("/users")
delete(client, url)
Specs
delete(Tesla.Env.client(), Tesla.Env.url()) :: Tesla.Env.t()
delete(Tesla.Env.url(), [option()]) :: Tesla.Env.t()
Perform a DELETE request.
See request/1
or request/2
for options definition.
Example
myclient |> ExampleApi.delete("/users")
ExampleApi.delete("/users", query: [page: 1])
delete(client, url, options)
Specs
delete(Tesla.Env.client(), Tesla.Env.url(), [option()]) :: Tesla.Env.t()
Perform a DELETE request.
See request/1
or request/2
for options definition.
Example
myclient |> ExampleApi.delete("/users", query: [page: 1])
get(url)
Specs
get(Tesla.Env.url()) :: Tesla.Env.t()
Perform a GET request.
See request/1
or request/2
for options definition.
Example
ExampleApi.get("/users")
get(client, url)
Specs
get(Tesla.Env.client(), Tesla.Env.url()) :: Tesla.Env.t()
get(Tesla.Env.url(), [option()]) :: Tesla.Env.t()
Perform a GET request.
See request/1
or request/2
for options definition.
Example
myclient |> ExampleApi.get("/users")
ExampleApi.get("/users", query: [page: 1])
get(client, url, options)
Specs
get(Tesla.Env.client(), Tesla.Env.url(), [option()]) :: Tesla.Env.t()
Perform a GET request.
See request/1
or request/2
for options definition.
Example
myclient |> ExampleApi.get("/users", query: [page: 1])
head(url)
Specs
head(Tesla.Env.url()) :: Tesla.Env.t()
Perform a HEAD request.
See request/1
or request/2
for options definition.
Example
ExampleApi.head("/users")
head(client, url)
Specs
head(Tesla.Env.client(), Tesla.Env.url()) :: Tesla.Env.t()
head(Tesla.Env.url(), [option()]) :: Tesla.Env.t()
Perform a HEAD request.
See request/1
or request/2
for options definition.
Example
myclient |> ExampleApi.head("/users")
ExampleApi.head("/users", query: [page: 1])
head(client, url, options)
Specs
head(Tesla.Env.client(), Tesla.Env.url(), [option()]) :: Tesla.Env.t()
Perform a HEAD request.
See request/1
or request/2
for options definition.
Example
myclient |> ExampleApi.head("/users", query: [page: 1])
new()
Specs
new() :: Tesla.Env.client()
Configure an authless client connection
Returns
Tesla.Env.client
new(subdomain, map)
Specs
new(String, Map) :: Tesla.Env.client()
Configure a client connection with subdomain and Authentication header Ie.: ThinkificAdminAPI.Connection.new("my-subdomain, "%{"Authorization" => "Bearer 1360ddc6-4029-47ec-a027-e5f1e60f4c38"}) ThinkificAdminAPI.Connection.new("my-subdomain, "%{"X-Auth-API-Key" => "9icu13c55130879ef301b1975a21f27c"})
Parameters
- subdomain (String): Thinkific's site subdomain
- header (Map): Request headers(specific for the Authorization or X-Auth-API-Key)
Returns
Tesla.Env.client
options(url)
Specs
options(Tesla.Env.url()) :: Tesla.Env.t()
Perform a OPTIONS request.
See request/1
or request/2
for options definition.
Example
ExampleApi.options("/users")
options(client, url)
Specs
options(Tesla.Env.client(), Tesla.Env.url()) :: Tesla.Env.t()
options(Tesla.Env.url(), [option()]) :: Tesla.Env.t()
Perform a OPTIONS request.
See request/1
or request/2
for options definition.
Example
myclient |> ExampleApi.options("/users")
ExampleApi.options("/users", query: [page: 1])
options(client, url, options)
Specs
options(Tesla.Env.client(), Tesla.Env.url(), [option()]) :: Tesla.Env.t()
Perform a OPTIONS request.
See request/1
or request/2
for options definition.
Example
myclient |> ExampleApi.options("/users", query: [page: 1])
patch(url, body)
Specs
patch(Tesla.Env.url(), Tesla.Env.body()) :: Tesla.Env.t()
Perform a PATCH request.
See request/1
or request/2
for options definition.
Example
ExampleApi.patch("/users", %{name: "Jon"})
patch(client, url, body)
Specs
patch(Tesla.Env.client(), Tesla.Env.url(), Tesla.Env.body()) :: Tesla.Env.t()
patch(Tesla.Env.url(), Tesla.Env.body(), [option()]) :: Tesla.Env.t()
Perform a PATCH request.
See request/1
or request/2
for options definition.
Example
myclient |> ExampleApi.patch("/users", %{name: "Jon"})
ExampleApi.patch("/users", %{name: "Jon"}, query: [scope: "admin"])
patch(client, url, body, options)
Specs
patch(Tesla.Env.client(), Tesla.Env.url(), Tesla.Env.body(), [option()]) :: Tesla.Env.t()
Perform a PATCH request.
See request/1
or request/2
for options definition.
Example
myclient |> ExampleApi.patch("/users", %{name: "Jon"}, query: [scope: "admin"])
post(url, body)
Specs
post(Tesla.Env.url(), Tesla.Env.body()) :: Tesla.Env.t()
Perform a POST request.
See request/1
or request/2
for options definition.
Example
ExampleApi.post("/users", %{name: "Jon"})
post(client, url, body)
Specs
post(Tesla.Env.client(), Tesla.Env.url(), Tesla.Env.body()) :: Tesla.Env.t()
post(Tesla.Env.url(), Tesla.Env.body(), [option()]) :: Tesla.Env.t()
Perform a POST request.
See request/1
or request/2
for options definition.
Example
myclient |> ExampleApi.post("/users", %{name: "Jon"})
ExampleApi.post("/users", %{name: "Jon"}, query: [scope: "admin"])
post(client, url, body, options)
Specs
post(Tesla.Env.client(), Tesla.Env.url(), Tesla.Env.body(), [option()]) :: Tesla.Env.t()
Perform a POST request.
See request/1
or request/2
for options definition.
Example
myclient |> ExampleApi.post("/users", %{name: "Jon"}, query: [scope: "admin"])
put(url, body)
Specs
put(Tesla.Env.url(), Tesla.Env.body()) :: Tesla.Env.t()
Perform a PUT request.
See request/1
or request/2
for options definition.
Example
ExampleApi.put("/users", %{name: "Jon"})
put(client, url, body)
Specs
put(Tesla.Env.client(), Tesla.Env.url(), Tesla.Env.body()) :: Tesla.Env.t()
put(Tesla.Env.url(), Tesla.Env.body(), [option()]) :: Tesla.Env.t()
Perform a PUT request.
See request/1
or request/2
for options definition.
Example
myclient |> ExampleApi.put("/users", %{name: "Jon"})
ExampleApi.put("/users", %{name: "Jon"}, query: [scope: "admin"])
put(client, url, body, options)
Specs
put(Tesla.Env.client(), Tesla.Env.url(), Tesla.Env.body(), [option()]) :: Tesla.Env.t()
Perform a PUT request.
See request/1
or request/2
for options definition.
Example
myclient |> ExampleApi.put("/users", %{name: "Jon"}, query: [scope: "admin"])
request(options)
Specs
request([option()]) :: Tesla.Env.t()
Perform a request. See request/2
for available options.
request(client, options)
Specs
request(Tesla.Env.client(), [option()]) :: Tesla.Env.t()
Perform a request using client function
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
myclient |> ExampleApi.post("/users", %{name: "Jon"})
trace(url)
Specs
trace(Tesla.Env.url()) :: Tesla.Env.t()
Perform a TRACE request.
See request/1
or request/2
for options definition.
Example
ExampleApi.trace("/users")
trace(client, url)
Specs
trace(Tesla.Env.client(), Tesla.Env.url()) :: Tesla.Env.t()
trace(Tesla.Env.url(), [option()]) :: Tesla.Env.t()
Perform a TRACE request.
See request/1
or request/2
for options definition.
Example
myclient |> ExampleApi.trace("/users")
ExampleApi.trace("/users", query: [page: 1])
trace(client, url, options)
Specs
trace(Tesla.Env.client(), Tesla.Env.url(), [option()]) :: Tesla.Env.t()
Perform a TRACE request.
See request/1
or request/2
for options definition.
Example
myclient |> ExampleApi.trace("/users", query: [page: 1])