paapi 0.0.1 → 0.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4454a3ef19930d37079d73fae84216dd6a5cc0b83fa86c5f463cb37b89f35b51
4
- data.tar.gz: 170d5ca581178669f5c9ecd13934cfaea81f6fee8cd20b5fd8d18cf2b9f6c04d
3
+ metadata.gz: 9cad942d2b1dc53bddcf3aae1397a9e7381fc58c0f0cac8205dc104375bb3579
4
+ data.tar.gz: '09cbf5cf7e8a57ff2741bc3f60870dbe5f07f20983808399164a17c292b5726c'
5
5
  SHA512:
6
- metadata.gz: 720e7132941b676191ad9db10cff3d37720f3b847daf480f247bf24c8ccd18046c31801e1bd4e0d3c558c92ab8d2c59b622917d140a9098e899c3dd9cd5a488b
7
- data.tar.gz: 04d44ee20df7ee480ca065dcb68845def978c44c84b4604b8907aec6264927a03d20882a7877888cb83e8aa3811dbf036c9d8f037ad409fe5a67fb224afe2022
6
+ metadata.gz: ed07665c0791353feccdbc0589208592c4c032a45e9d8656d8ad63d7783e9380c5b5851aa6458c85fb736d4fc9e6e0beabd0beb8102a2b72ec0d43f4e8dd855b
7
+ data.tar.gz: 56418706b3d9a0c0cd8a2e6df5231a50d7b8df8963289a59fe0401ffe0fb015d634f9695ae750d7fbfff581cf7847baee4ae7e05a93c0d9d38a308ba034d1558
data/Gemfile CHANGED
@@ -1,4 +1,4 @@
1
- source "https://rubygems.org"
1
+ source 'https://rubygems.org'
2
2
 
3
3
  # Specify your gem's dependencies in aws_paa.gemspec
4
4
  gemspec
data/README.md CHANGED
@@ -20,6 +20,8 @@ Or install it yourself as:
20
20
 
21
21
  ## Usage
22
22
 
23
+ ### Configuration
24
+
23
25
  The library can be initialised with a Rails initializer such as
24
26
 
25
27
  ```ruby
@@ -35,14 +37,38 @@ Configurable itemes:
35
37
  * secret_key
36
38
  * partner_tag
37
39
  * partner_type
38
- * marketplace
40
+ * market
41
+ * partner_market
39
42
  * test_mode
40
43
 
44
+ Using the `partner_market` configuration item lets you set a hash of marketplaces and partner_tags.
45
+
46
+ ```ruby
47
+ Paapi.configure do |config|
48
+ config.access_key = 'your-access-key'
49
+ config.secret_key = 'your-secret-key'
50
+ config.partner_market = {au: 'au_partner_tag', us: 'us_partner_tag'}
51
+ end
52
+
53
+ client = Paapi::Client.new(market: :au)
54
+
55
+ client.partner_tag
56
+ > 'au_partner_tag'
57
+
58
+ client.market = :us
59
+
60
+ client.partner_tag
61
+ > 'us_partner_tag'
62
+ ```
63
+
64
+ The full list of market keys is `au, br, ca, fr, de, in, it, jp, mx, es, tr, ae, uk, us`
65
+
66
+ ### Using the Paapi
41
67
 
42
68
  ```ruby
43
69
  require 'paapi'
44
70
 
45
- client = Paapi::Client.new(access_key: ENV['access_key'], secret_key: ENV['secret_key'], marketplace: :au, partner_tag: ENV['partner_tag'])
71
+ client = Paapi::Client.new(access_key: ENV['access_key'], secret_key: ENV['secret_key'], market: :au, partner_tag: ENV['partner_tag'])
46
72
 
47
73
  gi = client.get_items(item_ids: '1857231384')
48
74
 
data/Rakefile CHANGED
@@ -1,10 +1,10 @@
1
- require "bundler/gem_tasks"
2
- require "rake/testtask"
1
+ require 'bundler/gem_tasks'
2
+ require 'rake/testtask'
3
3
 
4
4
  Rake::TestTask.new(:test) do |t|
5
- t.libs << "test"
6
- t.libs << "lib"
7
- t.test_files = FileList["test/**/*_test.rb"]
5
+ t.libs << 'test'
6
+ t.libs << 'lib'
7
+ t.test_files = FileList['test/**/*_test.rb']
8
8
  end
9
9
 
10
10
  task :default => :test
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
- require "bundler/setup"
4
- require "paapi"
3
+ require 'bundler/setup'
4
+ require 'paapi'
5
5
 
6
6
  # You can add fixtures and/or initialization code here to make experimenting
7
7
  # with your gem easier. You can also use a different console, if you like.
@@ -10,5 +10,5 @@ require "paapi"
10
10
  # require "pry"
11
11
  # Pry.start
12
12
 
13
- require "irb"
13
+ require 'irb'
14
14
  IRB.start(__FILE__)
@@ -1,4 +1,4 @@
1
- require "paapi/version"
1
+ require 'paapi/version'
2
2
 
3
3
  require 'paapi/locales'
4
4
  require 'paapi/aws_request'
@@ -8,13 +8,33 @@ require 'paapi/response'
8
8
  module Paapi
9
9
  class Error < StandardError; end
10
10
  class NotImplemented < StandardError; end
11
+ DEFAULT_PARTNER_TYPE = 'Associates'
12
+ DEFAULT_MARKET = :us
13
+ DEFAULT_RESOURCES = [
14
+ 'Images.Primary.Large',
15
+ 'ItemInfo.ContentInfo',
16
+ 'ItemInfo.ProductInfo',
17
+ 'ItemInfo.Title',
18
+ 'ItemInfo.ExternalIds',
19
+ 'Offers.Listings.Availability.Message',
20
+ 'Offers.Listings.Condition',
21
+ 'Offers.Listings.Condition.SubCondition',
22
+ 'Offers.Listings.DeliveryInfo.IsAmazonFulfilled',
23
+ 'Offers.Listings.DeliveryInfo.IsFreeShippingEligible',
24
+ 'Offers.Listings.DeliveryInfo.IsPrimeEligible',
25
+ 'Offers.Listings.MerchantInfo',
26
+ 'Offers.Listings.Price',
27
+ 'Offers.Listings.SavingBasis'
28
+ ]
11
29
 
12
30
  class << self
13
31
  attr_accessor :access_key,
14
32
  :secret_key,
15
33
  :partner_tag,
16
34
  :partner_type,
17
- :marketplace,
35
+ :market,
36
+ :partner_market,
37
+ :resources,
18
38
  :test_mode
19
39
 
20
40
  def configure
@@ -3,38 +3,32 @@ require 'http'
3
3
  module Paapi
4
4
  class Client
5
5
  include AwsRequest
6
- attr_accessor :marketplace, :partner_tag
7
- attr_reader :partner_type, :access_key, :secret_key
8
-
9
- def initialize(access_key: Paapi.access_key,
10
- secret_key: Paapi.secret_key,
11
- marketplace: Paapi.marketplace || :us,
12
- partner_tag: Paapi.partner_tag,
13
- resources: nil,
14
- partner_type: 'Associates'
6
+ attr_accessor :partner_tag, :marketplace, :resources
7
+ attr_reader :partner_type, :access_key, :secret_key, :market
8
+
9
+ def initialize(access_key: Paapi.access_key,
10
+ secret_key: Paapi.secret_key,
11
+ partner_tag: Paapi.partner_tag,
12
+ market: Paapi.market || DEFAULT_MARKET,
13
+ resources: Paapi.resources || DEFAULT_RESOURCES,
14
+ partner_type: DEFAULT_PARTNER_TYPE
15
15
  )
16
- raise ArgumentError unless MARKETPLACES.keys.include?(marketplace.to_sym)
16
+ raise ArgumentError unless MARKETPLACES.keys.include?(market.to_sym)
17
17
  @access_key = access_key
18
18
  @secret_key = secret_key
19
- @marketplace = MARKETPLACES[marketplace.to_sym]
20
- @partner_tag = partner_tag
21
19
  @partner_type = partner_type
22
- @resources = resources || [
23
- "Images.Primary.Large",
24
- "ItemInfo.ContentInfo",
25
- "ItemInfo.ProductInfo",
26
- "ItemInfo.Title",
27
- "ItemInfo.ExternalIds",
28
- "Offers.Listings.Availability.Message",
29
- "Offers.Listings.Condition",
30
- "Offers.Listings.Condition.SubCondition",
31
- "Offers.Listings.DeliveryInfo.IsAmazonFulfilled",
32
- "Offers.Listings.DeliveryInfo.IsFreeShippingEligible",
33
- "Offers.Listings.DeliveryInfo.IsPrimeEligible",
34
- "Offers.Listings.MerchantInfo",
35
- "Offers.Listings.Price",
36
- "Offers.Listings.SavingBasis"
37
- ]
20
+ @resources = resources unless resources.nil?
21
+
22
+ self.market = market
23
+ @partner_tag = partner_tag if !partner_tag.nil?
24
+ end
25
+
26
+ def market=(_market)
27
+ @market = _market
28
+ @marketplace = MARKETPLACES[market.to_sym]
29
+ if !Paapi.partner_market.nil?
30
+ @partner_tag = Paapi.partner_market.dig(_market) || @partner_tag
31
+ end
38
32
  end
39
33
 
40
34
  def get_items(item_ids:, **options)
@@ -1,3 +1,3 @@
1
1
  module Paapi
2
- VERSION = "0.0.1"
2
+ VERSION = '0.0.2'
3
3
  end
@@ -1,6 +1,6 @@
1
- lib = File.expand_path("lib", __dir__)
1
+ lib = File.expand_path('lib', __dir__)
2
2
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
3
- require "paapi/version"
3
+ require 'paapi/version'
4
4
 
5
5
  Gem::Specification.new do |spec|
6
6
  spec.name = 'paapi'
@@ -9,11 +9,11 @@ Gem::Specification.new do |spec|
9
9
  spec.email = ['d@nmilne.com']
10
10
 
11
11
  spec.summary = %q{Client library for Amazon's Product Advertising API v5}
12
- spec.homepage = 'https://github.com/dkam/pappi'
12
+ spec.homepage = 'https://github.com/dkam/paapi'
13
13
  spec.license = 'MIT'
14
14
 
15
- spec.metadata["homepage_uri"] = spec.homepage
16
- spec.metadata["source_code_uri"] = spec.homepage
15
+ spec.metadata['homepage_uri'] = spec.homepage
16
+ spec.metadata['source_code_uri'] = spec.homepage
17
17
  #spec.metadata["changelog_uri"] = "TODO: Put your gem's CHANGELOG.md URL here."
18
18
 
19
19
  # Specify which files should be added to the gem when it is released.
@@ -21,15 +21,15 @@ Gem::Specification.new do |spec|
21
21
  spec.files = Dir.chdir(File.expand_path('..', __FILE__)) do
22
22
  `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
23
23
  end
24
- spec.bindir = "exe"
24
+ spec.bindir = 'exe'
25
25
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
26
- spec.require_paths = ["lib"]
26
+ spec.require_paths = ['lib']
27
27
 
28
28
  spec.add_development_dependency 'bundler', '~> 2.0'
29
29
  spec.add_development_dependency 'rake', '~> 10.0'
30
30
  spec.add_development_dependency 'minitest', '~> 5.0'
31
31
  spec.add_development_dependency 'byebug', '~> 11'
32
- spec.add_development_dependency "awesome_print", '~> 1.8'
32
+ spec.add_development_dependency 'awesome_print', '~> 1.8'
33
33
 
34
34
  spec.add_dependency 'http', '~> 4'
35
35
  spec.add_dependency 'aws-sigv4', '~> 1'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: paapi
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dan Milne
@@ -118,7 +118,6 @@ files:
118
118
  - ".gitignore"
119
119
  - ".travis.yml"
120
120
  - Gemfile
121
- - Gemfile.lock
122
121
  - LICENSE.txt
123
122
  - README.md
124
123
  - Rakefile
@@ -129,12 +128,12 @@ files:
129
128
  - lib/paapi/response.rb
130
129
  - lib/paapi/version.rb
131
130
  - paapi.gemspec
132
- homepage: https://github.com/dkam/pappi
131
+ homepage: https://github.com/dkam/paapi
133
132
  licenses:
134
133
  - MIT
135
134
  metadata:
136
- homepage_uri: https://github.com/dkam/pappi
137
- source_code_uri: https://github.com/dkam/pappi
135
+ homepage_uri: https://github.com/dkam/paapi
136
+ source_code_uri: https://github.com/dkam/paapi
138
137
  post_install_message:
139
138
  rdoc_options: []
140
139
  require_paths:
@@ -1,48 +0,0 @@
1
- PATH
2
- remote: .
3
- specs:
4
- paapi (0.0.1)
5
- aws-sigv4 (~> 1)
6
- http (~> 4)
7
-
8
- GEM
9
- remote: https://rubygems.org/
10
- specs:
11
- addressable (2.7.0)
12
- public_suffix (>= 2.0.2, < 5.0)
13
- awesome_print (1.8.0)
14
- aws-eventstream (1.0.3)
15
- aws-sigv4 (1.1.0)
16
- aws-eventstream (~> 1.0, >= 1.0.2)
17
- byebug (11.0.1)
18
- domain_name (0.5.20190701)
19
- unf (>= 0.0.5, < 1.0.0)
20
- http (4.1.1)
21
- addressable (~> 2.3)
22
- http-cookie (~> 1.0)
23
- http-form_data (~> 2.0)
24
- http_parser.rb (~> 0.6.0)
25
- http-cookie (1.0.3)
26
- domain_name (~> 0.5)
27
- http-form_data (2.1.1)
28
- http_parser.rb (0.6.0)
29
- minitest (5.11.3)
30
- public_suffix (4.0.1)
31
- rake (10.5.0)
32
- unf (0.1.4)
33
- unf_ext
34
- unf_ext (0.0.7.6)
35
-
36
- PLATFORMS
37
- ruby
38
-
39
- DEPENDENCIES
40
- awesome_print (~> 1.8)
41
- bundler (~> 2.0)
42
- byebug (~> 11)
43
- minitest (~> 5.0)
44
- paapi!
45
- rake (~> 10.0)
46
-
47
- BUNDLED WITH
48
- 2.0.2