Class: Vacuum::Client
- Inherits:
-
Object
- Object
- Vacuum::Client
- Defined in:
- lib/vacuum/client.rb
Overview
A client for the Amazon Creators API
Handles authentication automatically and caches access tokens.
Constant Summary collapse
- AUTH_URLS =
{ "2.1" => "https://creatorsapi.auth.us-east-1.amazoncognito.com/oauth2/token", "2.2" => "https://creatorsapi.auth.eu-south-2.amazoncognito.com/oauth2/token", "2.3" => "https://creatorsapi.auth.us-west-2.amazoncognito.com/oauth2/token", "3.1" => "https://api.amazon.com/auth/o2/token", "3.2" => "https://api.amazon.co.uk/auth/o2/token", "3.3" => "https://api.amazon.co.jp/auth/o2/token", }.freeze
- API_URL =
"https://creatorsapi.amazon/catalog/v1"- TOKEN_TTL =
59.5 minutes (tokens valid for 1 hour)
3570
Instance Method Summary collapse
-
#get_browse_nodes(marketplace:, partner_tag:, browse_node_ids:, **params) ⇒ HTTP::Response
Returns details about specified browse nodes.
-
#get_items(marketplace:, partner_tag:, item_ids:, **params) ⇒ HTTP::Response
Returns the attributes of one or more items.
-
#get_variations(marketplace:, partner_tag:, **params) ⇒ HTTP::Response
Returns variations of a product.
-
#initialize(version:, credential_id:, credential_secret:, cache: nil, http: HTTP) ⇒ Client
constructor
Creates a new client.
-
#search_items(marketplace:, partner_tag:, **params) ⇒ HTTP::Response
Searches for items on Amazon.
Constructor Details
#initialize(version:, credential_id:, credential_secret:, cache: nil, http: HTTP) ⇒ Client
Creates a new client
52 53 54 55 56 57 58 59 60 61 |
# File 'lib/vacuum/client.rb', line 52 def initialize(version:, credential_id:, credential_secret:, cache: nil, http: HTTP) @version = version @auth_url = AUTH_URLS.fetch(version) do raise ArgumentError, "Unknown version: #{version}" end @credential_id = credential_id @credential_secret = credential_secret @cache = cache @http = http end |
Instance Method Details
#get_browse_nodes(marketplace:, partner_tag:, browse_node_ids:, **params) ⇒ HTTP::Response
Returns details about specified browse nodes
69 70 71 72 |
# File 'lib/vacuum/client.rb', line 69 def get_browse_nodes(marketplace:, partner_tag:, browse_node_ids:, **params) params[:browse_node_ids] = Array(browse_node_ids) request("getBrowseNodes", marketplace:, partner_tag:, **params) end |
#get_items(marketplace:, partner_tag:, item_ids:, **params) ⇒ HTTP::Response
Returns the attributes of one or more items
80 81 82 83 |
# File 'lib/vacuum/client.rb', line 80 def get_items(marketplace:, partner_tag:, item_ids:, **params) params[:item_ids] = Array(item_ids) request("getItems", marketplace:, partner_tag:, **params) end |
#get_variations(marketplace:, partner_tag:, **params) ⇒ HTTP::Response
Returns variations of a product
91 92 93 |
# File 'lib/vacuum/client.rb', line 91 def get_variations(marketplace:, partner_tag:, **params) request("getVariations", marketplace:, partner_tag:, **params) end |
#search_items(marketplace:, partner_tag:, **params) ⇒ HTTP::Response
Searches for items on Amazon
101 102 103 |
# File 'lib/vacuum/client.rb', line 101 def search_items(marketplace:, partner_tag:, **params) request("searchItems", marketplace:, partner_tag:, **params) end |