paapi 0.0.6 → 0.0.7

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: 575a4e25893cf1bb736c8408e3e20bc6b5715106c08fb2091f345da874ef92e7
4
- data.tar.gz: fc0bd5eb43f322b06791debb6e5bbbfed24229d05b976eadab85ade83db460e4
3
+ metadata.gz: cd5bdeba6d4ee3d4958b7d23f6cc3402a2461a6ea3791411d5f43db1bef8a9b6
4
+ data.tar.gz: 240b621b910f947bd7b6bfdec340ee435439262b28435c16b8f95073ac6e9ae7
5
5
  SHA512:
6
- metadata.gz: a64c83aed626c43c29506fe089ea12bf9bfc462e47ea638b6b9a7c3c85e7d056cb28627bb78e6c7337fd1c8bd612d2a9c78e21fbb2b6a37530650731b66d1aa5
7
- data.tar.gz: db1456668417437c546c32141b5cb9491ced6ee78ce1fab75854d8f9423ea92683bf836df3a9b0dc024d63f238fc4c7f4769bdc6f363c5230c410cf22f2ae3d7
6
+ metadata.gz: cfac80fc181b08a016f061811582f64f5bfbed490296899097d8942df86c90f6182e59dc622755d79a3203eee4e3a3aa62e5284e2cdcbc7defc6f67c12a09e68
7
+ data.tar.gz: 767aaa41948585bd10b9a6fd4a25a3957028cf102bcd72c4cfebf65e7db9ff0c842396db5865824977eeba1d37182c10e5bed59054a0ddc558fd2928f6fdc2ca
data/CHANGELOG.md CHANGED
@@ -1,6 +1,11 @@
1
+ ## 0.0.7
2
+ - Rename Item#json to Item#hash for consistency
3
+ - Add offer / listing parsing
4
+
1
5
  ## 0.0.6
2
6
  - Handle more date parsing failures.
3
7
  - Get width, height, depth and weight from items
8
+
4
9
  ## 0.0.5
5
10
 
6
11
  - Merged pull request #3 allowing options to be passed into the get_items and get_variations request
data/lib/paapi.rb CHANGED
@@ -2,6 +2,7 @@ require 'paapi/version'
2
2
 
3
3
  require 'paapi/client'
4
4
  require 'paapi/item'
5
+ require 'paapi/listing'
5
6
  require 'paapi/response'
6
7
 
7
8
  module Paapi
data/lib/paapi/item.rb CHANGED
@@ -13,7 +13,7 @@ module Paapi
13
13
  end
14
14
 
15
15
  def listings
16
- get(['Offers', 'Listings']).map {|d| Listing.new(d)}
16
+ get(['Offers', 'Listings'])&.map {|d| Listing.new(d)}
17
17
  end
18
18
 
19
19
  def asin
@@ -0,0 +1,48 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'forwardable'
4
+
5
+ module Paapi
6
+ class Listing
7
+ extend Forwardable
8
+ def_delegators :@hash, :dig
9
+
10
+ attr_accessor :hash
11
+ def initialize(data)
12
+ @hash = data
13
+ end
14
+
15
+ def availability
16
+ get(%w{Availability Message})
17
+ end
18
+
19
+ def amazon_fulfilled?
20
+ get(%w{DeliveryInfo IsAmazonFulfilled})
21
+ end
22
+
23
+ def free_shipping_eligible?
24
+ get(%w{DeliveryInfo IsFreeShippingEligible})
25
+ end
26
+
27
+ def prime_eligible?
28
+ get(%w{DeliveryInfo IsPrimeEligible})
29
+ end
30
+
31
+ def price
32
+ get(%w{Price})
33
+ end
34
+
35
+ def merchant
36
+ get(%w{MerchantInfo Name})
37
+ end
38
+
39
+ def condition
40
+ get(%w{Condition Value})
41
+ end
42
+
43
+ def get(keys)
44
+ @hash.dig(*keys)
45
+ end
46
+
47
+ end
48
+ end
@@ -2,14 +2,14 @@ require 'json'
2
2
 
3
3
  module Paapi
4
4
  class Response
5
- attr_reader :http_response, :json, :datas, :doc, :items
5
+ attr_reader :http_response, :hash, :datas, :doc, :items
6
6
 
7
7
  def initialize(response)
8
8
  @http_response = response
9
- @json = JSON.parse(response.body.to_s)
9
+ @hash = JSON.parse(response.body.to_s)
10
10
 
11
- @items_data = @json.dig('ItemsResult', 'Items')
12
- @items_data ||= @json.dig('SearchResult', 'Items')
11
+ @items_data = @hash.dig('ItemsResult', 'Items')
12
+ @items_data ||= @hash.dig('SearchResult', 'Items')
13
13
  @items_data ||= []
14
14
 
15
15
  @items = @items_data.map {|d| Item.new(d)}
@@ -17,10 +17,7 @@ module Paapi
17
17
  end
18
18
 
19
19
  def result_count
20
- @json.dig('SearchResult', 'TotalResultCount')
20
+ @hash.dig('SearchResult', 'TotalResultCount')
21
21
  end
22
-
23
-
24
-
25
22
  end
26
23
  end
data/lib/paapi/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Paapi
2
- VERSION = '0.0.6'
2
+ VERSION = '0.0.7'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: paapi
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.6
4
+ version: 0.0.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dan Milne
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-10-14 00:00:00.000000000 Z
11
+ date: 2019-10-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -141,6 +141,7 @@ files:
141
141
  - lib/paapi.rb
142
142
  - lib/paapi/client.rb
143
143
  - lib/paapi/item.rb
144
+ - lib/paapi/listing.rb
144
145
  - lib/paapi/response.rb
145
146
  - lib/paapi/version.rb
146
147
  - paapi.gemspec