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 +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
|