paapi 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
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