Current section

Files

Jump to
pinterex lib pinterex.ex
Raw

lib/pinterex.ex

defmodule Pinterex do
@moduledoc """
This is the main module of the libray. Use it to access all of the available Pinterest API calls.
"""
use Application
@doc false
def start(_type, _args) do
import Supervisor.Spec, warn: false
children = []
opts = [strategy: :one_for_one, name: Pinterex.Supervisor]
Supervisor.start_link(children, opts)
end
@doc false
defdelegate execute_request(method, path), to: Pinterex.Api.Base
@doc false
defdelegate execute_request(method, createStruct, path), to: Pinterex.Api.Base
@doc false
defdelegate execute_request(method, createStruct, path, options), to: Pinterex.Api.Base
@doc """
Used for fetching the data of the authenticated User's profile.
## Reference
By default the API returns first and last name, ID and URL of the authenticated User. Use `Pinterex.me/1` if you wish to get other fields.
[https://developers.pinterest.com/docs/api/users/](https://developers.pinterest.com/docs/api/users/)
"""
defdelegate me, to: Pinterex.Api.User
@doc """
Used for fetching the data of the authenticated User's profile.
## Reference
By default the API returns first and last name, ID and URL of the authenticated User.
[https://developers.pinterest.com/docs/api/users/](https://developers.pinterest.com/docs/api/users/)
## Parameters
- options: if we wish to get other fields of the User we pass a list of fields to fetch. To see which fields are available look at `Pinterex.Structs.User`.
## Example
`Pinterex.me([fields: ["bio", "counts"]])`
"""
defdelegate me(options), to: Pinterex.Api.User
@doc """
Returns a list of the public Boards of the authenticated User.
## Reference
By default the API returns their URLs, IDs and names. Use `Pinterex.my_boards/1` to get other fields.
[https://developers.pinterest.com/docs/api/users/](https://developers.pinterest.com/docs/api/users/)
"""
defdelegate my_boards, to: Pinterex.Api.User
@doc """
Returns a list of the public Boards of the authenticated User.
## Reference
By default the API returns their URLs, IDs and names.
[https://developers.pinterest.com/docs/api/users/](https://developers.pinterest.com/docs/api/users/)
## Parameters
- options: if we wish to get other fields of the Boards we pass a list of
fields to fetch. To see which fields are available look at `Pinterex.Structs.Board`.
## Example
`Pinterex.my_boards([fields: ["image", "counts"]])`
`Pinterex.my_boards([fields: ["image", "counts"], limit: 50])`
"""
defdelegate my_boards(options), to: Pinterex.Api.User
@doc """
Returns a list of Boards that Pinterest would suggest to the authenticated User if
they were to save the specified Pin.
## Reference
By default the API returns the IDs, URLs and names of the Boards. Use `Pinterex.my_suggested_boards/2` to get other fields.
[https://developers.pinterest.com/docs/api/users/](https://developers.pinterest.com/docs/api/users/)
## Parameters
- id: the id of the Pin for which you wish to get the suggestions (required)
"""
defdelegate my_suggested_boards(id), to: Pinterex.Api.User
@doc """
Returns a list of Boards that Pinterest would suggest to the authenticated User if
they were to save the specified Pin.
## Reference
By default the API returns the IDs, URLs and names of the Boards.
[https://developers.pinterest.com/docs/api/users/](https://developers.pinterest.com/docs/api/users/)
## Parameters
- id: the id of the Pin for which you wish to get the suggestions (required)
- options: if we wish to get other fields of the suggested Boards we pass a list of fields to fetch. To see which fields are available look at `Pinterex.Structs.Board`.
## Example
`Pinterex.my_suggested_boards("1253434223", ["image", "counts"])`
`Pinterex.my_suggested_boards("1253434223", [fields: ["image", "counts"], limit: 5])`
"""
defdelegate my_suggested_boards(id, options), to: Pinterex.Api.User
@doc """
Returns a list of Pins that the authenticated User liked.
## Reference
By default the API returns the IDs, URLs, links and descriptions of the Pins. Use `Pinterex.my_likes/1` to get other fields.
[https://developers.pinterest.com/docs/api/users/](https://developers.pinterest.com/docs/api/users/)
"""
defdelegate my_likes, to: Pinterex.Api.User
@doc """
Returns a list of Pins that the authenticated User liked.
## Reference
By default the API returns the IDs, URLs, links and descriptions of the Pins.
[https://developers.pinterest.com/docs/api/users/](https://developers.pinterest.com/docs/api/users/)
## Parameters
- options: if we wish to get other fields of the Pins we pass a list of fields to fetch. To see which fields are available look at `Pinterex.Structs.Pin`
## Example
`Pinterex.my_likes([fields: ["note", "counts"]])`
`Pinterex.my_likes([fields: ["note", "counts"], limit: 50])`
"""
defdelegate my_likes(options), to: Pinterex.Api.User
@doc """
Returns a list of Pins that the authenticated User pinned.
## Reference
By default the API returns the IDs, URLs, links and descriptions of the User's Pins. Use `Pinterex.my_pins/1` to get other fields.
[https://developers.pinterest.com/docs/api/users/](https://developers.pinterest.com/docs/api/users/)
"""
defdelegate my_pins, to: Pinterex.Api.User
@doc """
Returns a list of Pins that the authenticated User pinned.
## Reference
By default the API returns the IDs, URLs, links and descriptions of the User's Pins.
[https://developers.pinterest.com/docs/api/users/](https://developers.pinterest.com/docs/api/users/)
## Parameters
- options: if we wish to get other fields of the Pins we pass a list of fields to fetch. To see which fields are available look at `Pinterex.Structs.Pin`
## Example
`Pinterex.my_pins([fields: ["note", "counts"]])`
`Pinterex.my_pins([fields: ["note", "counts"], limit: 50])`
"""
defdelegate my_pins(options), to: Pinterex.Api.User
@doc """
Returns a list of the authenticated User's Boards that match the search query.
## Reference
By default the API returns IDs, URLs and names of the matched Boards. Use `Pinterex.search_my_boards/2` to get other fields.
[https://developers.pinterest.com/docs/api/users/](https://developers.pinterest.com/docs/api/users/)
## Parameters
- query: the query string you wish to search for (required)
"""
defdelegate search_my_boards(query), to: Pinterex.Api.User
@doc """
Returns a list of the authenticated User's Boards that match the search query.
## Reference
By default the API returns IDs, URLs and names of the matched Boards.
[https://developers.pinterest.com/docs/api/users/](https://developers.pinterest.com/docs/api/users/)
## Parameters
- query: the query string you wish to search for (required)
- options: if we wish to get other fields of the Boards we pass a list of
fields to fetch. To see which fields are available look at `Pinterex.Structs.Board`.
## Example
`Pinterex.search_my_boards("garden", [fields: ["image', "counts"]])`
`Pinterex.search_my_boards("garden", [fields: ["image', "counts"], limit: 50])`
"""
defdelegate search_my_boards(query, options), to: Pinterex.Api.User
@doc """
Returns a list of the authenticated User's Pins that match the search query.
## Reference
By default the API returns IDs, URLs, links and descriptions of the matched Pins. Use `Pinterex.search_my_pins/2` to get other fields.
[https://developers.pinterest.com/docs/api/users/](https://developers.pinterest.com/docs/api/users/)
## Parameters
- query: the query string you wish to search for (required)
"""
defdelegate search_my_pins(query), to: Pinterex.Api.User
@doc """
Returns a list of the authenticated User's Pins that match the search query.
## Reference
By default the API returns IDs, URLs, links and descriptions of the matched Pins. Use `Pinterex.searchMyPins/2` to get other fields.
[https://developers.pinterest.com/docs/api/users/](https://developers.pinterest.com/docs/api/users/)
## Parameters
- query: the query string you wish to search for (required)
- options: if we wish to get other fields of the Pins we pass a list of fields to fetch. To see which fields are available look at `Pinterex.Structs.Pin`
## Example
`Pinterex.search_my_pins("garden", [fields: ["note", "counts"]])`
`Pinterex.search_my_pins("garden", [fields: ["note", "counts"], limit: 50])`
"""
defdelegate search_my_pins(query, options), to: Pinterex.Api.User
@doc """
Returns the Users that follow the authenticated User.
## Reference
By default the API returns the first names, last names, IDs and URLs of the Users. Use `Pinterex.my_followers/1` to get other fields.
[https://developers.pinterest.com/docs/api/users/](https://developers.pinterest.com/docs/api/users/)
"""
defdelegate my_followers, to: Pinterex.Api.User
@doc """
Returns the Users that follow the authenticated User.
## Reference
By default the API returns the first names, last names, IDs and URLs of the Users.
[https://developers.pinterest.com/docs/api/users/](https://developers.pinterest.com/docs/api/users/)
## Parameters
- options: if we wish to get other fields of the Users we pass a list of fields to fetch. To see which fields are available look at `Pinterex.Structs.User`.
## Example
`Pinterex.my_followers([fields: ["bio", "counts"]])`
`Pinterex.my_followers([fields: ["bio", "counts"], limit: 50])`
"""
defdelegate my_followers(options), to: Pinterex.Api.User
@doc """
Returns a list of Boards that the authenticated User follows.
## Reference
By default the API returns the IDs, URLs and names of the Boards. Use `Pinterex.my_following_boards/1` to get other fields.
[https://developers.pinterest.com/docs/api/users/](https://developers.pinterest.com/docs/api/users/)
"""
defdelegate my_following_boards, to: Pinterex.Api.User
@doc """
Returns a list of Boards that the authenticated User follows.
## Reference
By default the API returns the IDs, URLs and names of the Boards.
[https://developers.pinterest.com/docs/api/users/](https://developers.pinterest.com/docs/api/users/)
## Parameters
- options: if we wish to get other fields of the Boards we pass a list of fields to fetch. To see which fields are available look at `Pinterex.Structs.Board`.
## Example
`Pinterex.my_following_boards([fields: ["image", "counts"]])`
`Pinterex.my_following_boards([fields: ["image", "counts"], limit: 50])`
"""
defdelegate my_following_boards(options), to: Pinterex.Api.User
@doc """
Follow the specified Board as the authenticated User.
## Reference
[https://developers.pinterest.com/docs/api/users/](https://developers.pinterest.com/docs/api/users/)
## Parameters
- board: the Board to follow. The format of the parameters should be
"username/board_name"
"""
defdelegate follow_board(board), to: Pinterex.Api.User
@doc """
Unfollow the specified Board as the authenticated User.
## Reference
[https://developers.pinterest.com/docs/api/users/](https://developers.pinterest.com/docs/api/users/)
## Parameters
- board: the Board to unfollow. The format of the parameters should be
"username/board_name"
"""
defdelegate unfollow_board(board), to: Pinterex.Api.User
@doc """
Returns a list of Interests that the authenticated User follows.
## Reference
By default the API returns the IDs and names of the Interests.
[https://developers.pinterest.com/docs/api/users/](https://developers.pinterest.com/docs/api/users/)
"""
defdelegate my_following_interests, to: Pinterex.Api.User
@doc """
Returns the Users that the authenticated User follows.
## Reference
By default the API returns the first names, last names, IDs and URLs of the Users. Use `Pinterex.my_following_users/1` to get other fields.
[https://developers.pinterest.com/docs/api/users/](https://developers.pinterest.com/docs/api/users/)
"""
defdelegate my_following_users, to: Pinterex.Api.User
@doc """
Returns the Users that the authenticated User follows.
## Reference
By default the API returns the first names, last names, IDs and URLs of the Users.
[https://developers.pinterest.com/docs/api/users/](https://developers.pinterest.com/docs/api/users/)
## Parameters
- options: if we wish to get other fields of the Users we pass a list of fields to fetch. To see which fields are available look at `Pinterex.Structs.User`.
## Example
`Pinterex.my_following_users([fields: ["bio", "counts"]])`
`Pinterex.my_following_users([fields: ["bio", "counts"], limit: 50])`
"""
defdelegate my_following_users(options), to: Pinterex.Api.User
@doc """
Returns the information of the requested Pin.
## Reference
By default the API returns the ID, URL, link and the description of the Pin. Use `Pinterex.get_pin/2` to get other fields.
[https://developers.pinterest.com/docs/api/pins/](https://developers.pinterest.com/docs/api/pins/)
## Parameters
- id: the id of the Pin
"""
defdelegate get_pin(id), to: Pinterex.Api.Pin
@doc """
Returns the information of the requested Pin.
## Reference
By default the API returns the ID, URL, link and the description of the Pin.
[https://developers.pinterest.com/docs/api/pins/](https://developers.pinterest.com/docs/api/pins/)
## Parameters
- id: the id of the Pin
- options: if we wish to get other fields of the Pin we pass a list of fields to fetch. To see which fields are available look at `Pinterex.Structs.Pin`
## Example
`Pinterex.get_pin("123456", [fields: ["note", "counts"]])`
"""
defdelegate get_pin(id, options), to: Pinterex.Api.Pin
@doc """
Returns the Board information.
## Reference
By default the API returns the ID, URL and the name of the specified Board. Use `Pinterex.get_board/2` to get other fields.
[https://developers.pinterest.com/docs/api/boards/](https://developers.pinterest.com/docs/api/boards/)
## Parameters
- board: the id of the Board whose info you wish to get. The format of the parameter should be
"username/board_name" (required)
"""
defdelegate get_board(board), to: Pinterex.Api.Board
@doc """
Returns the Board information.
## Reference
By default the API returns the ID, URL and the name of the specified Board.
[https://developers.pinterest.com/docs/api/boards/](https://developers.pinterest.com/docs/api/boards/)
## Parameters
- board: the id of the Board whose info you wish to get. The format of the parameter should be
"username/board_name" (required)
- options: if we wish to get other fields of the Board we pass a list of fields to fetch. To see which fields are available look at `Pinterex.Structs.Board`.
## Example
`Pinterex.get_board("username/board_name", [fields: ["image", "counts"]])`
"""
defdelegate get_board(board, options), to: Pinterex.Api.Board
@doc """
Delete the specified Pin for the authenticated User.
## Reference
[https://developers.pinterest.com/docs/api/pins/](https://developers.pinterest.com/docs/api/pins/)
## Parameters
- pin: the id of the Pin you wish to delete (required)
"""
defdelegate delete_pin(pin), to: Pinterex.Api.Pin
@doc """
Returns a list of Pins from the specified Board.
## Reference
By default the API returns the IDs, URLs, links and descriptions of the Pins. Use `Pinterex.get_board_pins/2` to get other fields.
[https://developers.pinterest.com/docs/api/boards/](https://developers.pinterest.com/docs/api/boards/)
## Parameters
- board: the id of the Board whose pins you wish to get. The format of the parameters should be
"username/board_name" (required)
"""
defdelegate get_board_pins(board), to: Pinterex.Api.Board
@doc """
Returns a list of Pins from the specified Board.
## Reference
By default the API returns the IDs, URLs, links and descriptions of the Pins.
[https://developers.pinterest.com/docs/api/boards/](https://developers.pinterest.com/docs/api/boards/)
## Parameters
- board: the id of the Board whose pins you wish to get. The format of the parameters should be
"username/board_name" (required)
- options: if we wish to get other fields of the Pins we pass a list of fields to fetch. To see which fields are available look at `Pinterex.Structs.Pin`.
## Example
`Pinterex.get_board_pins("username/board_name", [fields: ["note", "counts']])`
`Pinterex.get_board_pins("username/board_name", [fields: ["note", "counts'], limit: 50])`
"""
defdelegate get_board_pins(board, options), to: Pinterex.Api.Board
@doc """
Creates a Board with the specified name for the authenticated User.
## Reference
By default the API returns the ID, URL and name of the created Board.
[https://developers.pinterest.com/docs/api/boards/](https://developers.pinterest.com/docs/api/boards/)
## Parameters
- name: the name of the Board you wish to create (required)
"""
defdelegate create_board(name), to: Pinterex.Api.Board
@doc """
Creates a Board with the specified name for the authenticated User.
## Reference
By default the API returns the ID, URL and name of the created Board.
[https://developers.pinterest.com/docs/api/boards/](https://developers.pinterest.com/docs/api/boards/)
## Parameters
- name: the name of the Board you wish to create (required)
- description: the description of the Board you wish to create (optional)
"""
defdelegate create_board(name, description), to: Pinterex.Api.Board
@doc """
Deletes the specified Board for the authenticated User.
## Reference
[https://developers.pinterest.com/docs/api/boards/](https://developers.pinterest.com/docs/api/boards/)
## Parameters
- board: The board you want to delete. The format of the parameters should be "username/board_name"
(required)
"""
defdelegate delete_board(board), to: Pinterex.Api.Board
@doc """
Edit the specified Board for the authenticated User.
## Reference
By default the API returns the ID, URL, and name of the edited Board.
[https://developers.pinterest.com/docs/api/boards/](https://developers.pinterest.com/docs/api/boards/)
## Parameters
- board: the id of the Board you wish to edit. The format of the parameters should be
"username/board_name" (required)
- options: you can specify a new name and / or a new descriptions.
## Example
`Pinterex.edit_board("username/board_name", [name: "New name"])`
`Pinterex.edit_board("username/board_name", [name: "New name", description: "New description"])`
"""
defdelegate edit_board(board, options), to: Pinterex.Api.Board
end