pinterex v0.2.3 Pinterex.Api.Auth

This module contains all the logic for using OAuth for making calls to the Pinterest API.

Summary

Functions

Perform a DELETE request. See request/1 or request/2 for options definition

Perform a DELETE request. See request/1 or request/2 for options definition

Perform a DELETE request. See request/1 or request/2 for options definition

Perform a GET request. See request/1 or request/2 for options definition

Perform a GET request. See request/1 or request/2 for options definition

Perform a GET request. See request/1 or request/2 for options definition

Use this method to get the authorization url. Redirect your user to this url so that the user can allow your application to access his data

After you get the code from Pinterest you can use this function to get the access token

Perform a HEAD request. See request/1 or request/2 for options definition

Perform a HEAD request. See request/1 or request/2 for options definition

Perform a HEAD request. See request/1 or request/2 for options definition

Perform a OPTIONS request. See request/1 or request/2 for options definition

Perform a OPTIONS request. See request/1 or request/2 for options definition

Perform a OPTIONS request. See request/1 or request/2 for options definition

Perform a PATCH request. See request/1 or request/2 for options definition

Perform a PATCH request. See request/1 or request/2 for options definition

Perform a PATCH request. See request/1 or request/2 for options definition

Perform a POST request. See request/1 or request/2 for options definition

Perform a POST request. See request/1 or request/2 for options definition

Perform a POST request. See request/1 or request/2 for options definition

Perform a PUT request. See request/1 or request/2 for options definition

Perform a PUT request. See request/1 or request/2 for options definition

Perform a PUT request. See request/1 or request/2 for options definition

Perform a request. See request/2 for available options

Perform a request using client function

Perform a TRACE request. See request/1 or request/2 for options definition

Perform a TRACE request. See request/1 or request/2 for options definition

Perform a TRACE request. See request/1 or request/2 for options definition

Types

option()
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}

Functions

delete(url)

Perform a DELETE request. See request/1 or request/2 for options definition.

Example

iex> ExampleApi.delete("/users")
delete(client, url)

Perform a DELETE request. See request/1 or request/2 for options definition.

Example

iex> myclient |> ExampleApi.delete("/users")
iex> ExampleApi.delete("/users", query: [page: 1])
delete(client, url, options)

Perform a DELETE request. See request/1 or request/2 for options definition.

Example

iex> myclient |> ExampleApi.delete("/users", query: [page: 1])
get(url)

Perform a GET request. See request/1 or request/2 for options definition.

Example

iex> ExampleApi.get("/users")

Perform a GET request. See request/1 or request/2 for options definition.

Example

iex> myclient |> ExampleApi.get("/users")
iex> ExampleApi.get("/users", query: [page: 1])
get(client, url, options)

Perform a GET request. See request/1 or request/2 for options definition.

Example

iex> myclient |> ExampleApi.get("/users", query: [page: 1])
get_authorize_url(scope, redirect_uri, client_id)

Use this method to get the authorization url. Redirect your user to this url so that the user can allow your application to access his data.

Parameters

  • scope: the scope of the access you wish to get. See Pinterest documenation to decide what scope is appropriate.
  • redirect_uri: after the user gives you permission Pinterest will redirect to this uri. It will pass the authorization code as a parameter. The code is then used in the next step to get the access token.
  • client_id: the client id of your Pinterest app.

Returns

The url to which you should redirect your user to let him give you permission to access his data.

get_token(client_id, client_secret, code)

After you get the code from Pinterest you can use this function to get the access token.

Parameters

  • client_it: the client id of your Pinterest app.
  • client_secret: the client secret of your Pinterest app.
  • code: the code that you got in the previous step.

Returns

The function returns either:

  • {:ok, token} if the token was successfully retrieved
  • {:error, message} if the retrieval failed
head(url)

Perform a HEAD request. See request/1 or request/2 for options definition.

Example

iex> ExampleApi.head("/users")

Perform a HEAD request. See request/1 or request/2 for options definition.

Example

iex> myclient |> ExampleApi.head("/users")
iex> ExampleApi.head("/users", query: [page: 1])
head(client, url, options)

Perform a HEAD request. See request/1 or request/2 for options definition.

Example

iex> myclient |> ExampleApi.head("/users", query: [page: 1])
options(url)

Perform a OPTIONS request. See request/1 or request/2 for options definition.

Example

iex> ExampleApi.options("/users")
options(client, url)

Perform a OPTIONS request. See request/1 or request/2 for options definition.

Example

iex> myclient |> ExampleApi.options("/users")
iex> ExampleApi.options("/users", query: [page: 1])
options(client, url, options)

Perform a OPTIONS request. See request/1 or request/2 for options definition.

Example

iex> myclient |> ExampleApi.options("/users", query: [page: 1])
patch(url, body)

Perform a PATCH request. See request/1 or request/2 for options definition.

Example

iex> ExampleApi.patch("/users", %{name: "Jon"})

Perform a PATCH request. See request/1 or request/2 for options definition.

Example

iex> myclient |> ExampleApi.patch("/users", %{name: "Jon"})
iex> ExampleApi.patch("/users", %{name: "Jon"}, query: [scope: "admin"])
patch(client, url, body, options)

Perform a PATCH request. See request/1 or request/2 for options definition.

Example

iex> myclient |> ExampleApi.patch("/users", %{name: "Jon"}, query: [scope: "admin"])
post(url, body)

Perform a POST request. See request/1 or request/2 for options definition.

Example

iex> ExampleApi.post("/users", %{name: "Jon"})

Perform a POST request. See request/1 or request/2 for options definition.

Example

iex> myclient |> ExampleApi.post("/users", %{name: "Jon"})
iex> ExampleApi.post("/users", %{name: "Jon"}, query: [scope: "admin"])
post(client, url, body, options)

Perform a POST request. See request/1 or request/2 for options definition.

Example

iex> myclient |> ExampleApi.post("/users", %{name: "Jon"}, query: [scope: "admin"])
put(url, body)

Perform a PUT request. See request/1 or request/2 for options definition.

Example

iex> ExampleApi.put("/users", %{name: "Jon"})

Perform a PUT request. See request/1 or request/2 for options definition.

Example

iex> myclient |> ExampleApi.put("/users", %{name: "Jon"})
iex> ExampleApi.put("/users", %{name: "Jon"}, query: [scope: "admin"])
put(client, url, body, options)

Perform a PUT request. See request/1 or request/2 for options definition.

Example

iex> myclient |> ExampleApi.put("/users", %{name: "Jon"}, query: [scope: "admin"])
request(options)
request([option]) :: Tesla.Env.t

Perform a request. See request/2 for available options.

request(client, options)

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 using Tesla.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:

iex> ExampleApi.request(method: :get, url: "/users/path")

You can also use shortcut methods like:

iex> ExampleApi.get("/users/1")

or

iex> myclient |> ExampleApi.post("/users", %{name: "Jon"})
trace(url)

Perform a TRACE request. See request/1 or request/2 for options definition.

Example

iex> ExampleApi.trace("/users")
trace(client, url)

Perform a TRACE request. See request/1 or request/2 for options definition.

Example

iex> myclient |> ExampleApi.trace("/users")
iex> ExampleApi.trace("/users", query: [page: 1])
trace(client, url, options)

Perform a TRACE request. See request/1 or request/2 for options definition.

Example

iex> myclient |> ExampleApi.trace("/users", query: [page: 1])