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 +4 -4
- data/Gemfile +1 -1
- data/README.md +28 -2
- data/Rakefile +5 -5
- data/bin/console +3 -3
- data/lib/paapi.rb +22 -2
- data/lib/paapi/client.rb +22 -28
- data/lib/paapi/version.rb +1 -1
- data/paapi.gemspec +8 -8
- metadata +4 -5
- data/Gemfile.lock +0 -48
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9cad942d2b1dc53bddcf3aae1397a9e7381fc58c0f0cac8205dc104375bb3579
|
4
|
+
data.tar.gz: '09cbf5cf7e8a57ff2741bc3f60870dbe5f07f20983808399164a17c292b5726c'
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ed07665c0791353feccdbc0589208592c4c032a45e9d8656d8ad63d7783e9380c5b5851aa6458c85fb736d4fc9e6e0beabd0beb8102a2b72ec0d43f4e8dd855b
|
7
|
+
data.tar.gz: 56418706b3d9a0c0cd8a2e6df5231a50d7b8df8963289a59fe0401ffe0fb015d634f9695ae750d7fbfff581cf7847baee4ae7e05a93c0d9d38a308ba034d1558
|
data/Gemfile
CHANGED
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
|
-
*
|
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'],
|
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
|
2
|
-
require
|
1
|
+
require 'bundler/gem_tasks'
|
2
|
+
require 'rake/testtask'
|
3
3
|
|
4
4
|
Rake::TestTask.new(:test) do |t|
|
5
|
-
t.libs <<
|
6
|
-
t.libs <<
|
7
|
-
t.test_files = FileList[
|
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
|
data/bin/console
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
|
3
|
-
require
|
4
|
-
require
|
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
|
13
|
+
require 'irb'
|
14
14
|
IRB.start(__FILE__)
|
data/lib/paapi.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
require
|
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
|
-
:
|
35
|
+
:market,
|
36
|
+
:partner_market,
|
37
|
+
:resources,
|
18
38
|
:test_mode
|
19
39
|
|
20
40
|
def configure
|
data/lib/paapi/client.rb
CHANGED
@@ -3,38 +3,32 @@ require 'http'
|
|
3
3
|
module Paapi
|
4
4
|
class Client
|
5
5
|
include AwsRequest
|
6
|
-
attr_accessor :marketplace, :
|
7
|
-
attr_reader :partner_type, :access_key, :secret_key
|
8
|
-
|
9
|
-
def initialize(access_key:
|
10
|
-
secret_key:
|
11
|
-
|
12
|
-
|
13
|
-
resources:
|
14
|
-
partner_type:
|
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?(
|
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
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
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)
|
data/lib/paapi/version.rb
CHANGED
data/paapi.gemspec
CHANGED
@@ -1,6 +1,6 @@
|
|
1
|
-
lib = File.expand_path(
|
1
|
+
lib = File.expand_path('lib', __dir__)
|
2
2
|
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
3
|
-
require
|
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/
|
12
|
+
spec.homepage = 'https://github.com/dkam/paapi'
|
13
13
|
spec.license = 'MIT'
|
14
14
|
|
15
|
-
spec.metadata[
|
16
|
-
spec.metadata[
|
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 =
|
24
|
+
spec.bindir = 'exe'
|
25
25
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
26
|
-
spec.require_paths = [
|
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
|
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.
|
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/
|
131
|
+
homepage: https://github.com/dkam/paapi
|
133
132
|
licenses:
|
134
133
|
- MIT
|
135
134
|
metadata:
|
136
|
-
homepage_uri: https://github.com/dkam/
|
137
|
-
source_code_uri: https://github.com/dkam/
|
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:
|
data/Gemfile.lock
DELETED
@@ -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
|