muffin_man 2.0.0 → 2.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: c6a23fde4189af4c23e82ceecce92bc1c04a823b1425654d1ea6c2201a4560e3
4
- data.tar.gz: ed9e5d6702dbb1c968d0d1d025c25f95b2964a9237a826adcb8eacc441a5d737
3
+ metadata.gz: cdd15706a272ada38963d821fb2609b904277727bc2bde43fdc0fdcbf03a5883
4
+ data.tar.gz: f81a9c04bdfe27ac1b2d8508a6cfc79859d84eaff387ff0dbfdef92b88ead034
5
5
  SHA512:
6
- metadata.gz: 52b0b85823c119e7a625cdbb18bc256a3758e60be2abed558e95ff91a148d434ef0a217208bf9c4b72adf71f9b48166f6b3a3f7b59c26b2a945fe19c34db8464
7
- data.tar.gz: 415a81fc29205f8b49883a9460558c364a4217f87475388d1221200b34d57fcc0e51e0c53eb44dd173892202c6424977654f0087170193da42b573678f65486a
6
+ metadata.gz: 37439833bf8791bba7c548136f48619fbac1d96e7629a24a3136910407911a7ba54e38776b3eaa5a5074f7f5aa539afdfbd1a3b4b4f287b6a16b30fe34bad7d3
7
+ data.tar.gz: fc6ed100c06729fe3f3637195af4bab1cad0f9c64edabe68577de43191d8f5930a6adffab74b99a6b4b68319bc57cd46782e25cd512c7e4cd1e4c08d3bc415aa
data/CHANGELOG.md CHANGED
@@ -1,3 +1,11 @@
1
+ # 2.0.2 [#49](https://github.com/patterninc/muffin_man/pull/49)
2
+
3
+ - Better error handling for unauthorized errors when getting LWA tokens
4
+
5
+ # 2.0.1 [#46](https://github.com/patterninc/muffin_man/pull/46)
6
+
7
+ - Support for passing an array of identifiers to search_catalog_items
8
+
1
9
  # 2.0.0 [#47](https://github.com/patterninc/muffin_man/pull/47)
2
10
 
3
11
  - BREAKING CHANGES: Changed signature of processing_directive check as it was confusing and was not working. processing_directive is a nested structure. It has marketplace_ids. Having marketplace_ids as an independent parameter was confusing.
@@ -17,9 +17,11 @@ module MuffinMan
17
17
  locale
18
18
  ].freeze
19
19
  GET_CATALOG_ITEM_PARAMS = %w[includedData locale].freeze
20
+ DEFAULT_IDENTIFERS_TYPE = "ASIN".freeze
20
21
 
21
22
  API_VERSION = "2020-12-01".freeze
22
23
 
24
+ # rubocop:disable Metrics/CyclomaticComplexity
23
25
  def search_catalog_items(keywords, marketplace_ids, params = {}, api_version=API_VERSION)
24
26
  if sandbox
25
27
  keywords = SANDBOX_KEYWORDS
@@ -27,6 +29,7 @@ module MuffinMan
27
29
  params = {}
28
30
  end
29
31
  @keywords = keywords.is_a?(Array) ? keywords : [keywords]
32
+ @identifiers = params["identifiers"].is_a?(Array) ? params["identifiers"] : [params["identifiers"]]
30
33
  @marketplace_ids = marketplace_ids.is_a?(Array) ? marketplace_ids : [marketplace_ids]
31
34
  @params = params
32
35
  @local_var_path = "/catalog/#{api_version}/items"
@@ -34,10 +37,15 @@ module MuffinMan
34
37
  "marketplaceIds" => @marketplace_ids.join(",")
35
38
  }
36
39
  @query_params["keywords"] = @keywords.join(",") if @keywords.any?
40
+ if @identifiers.any?
41
+ @query_params["identifiers"] = @identifiers.join(",")
42
+ @query_params["identifiersType"] = params["identifiersType"] || DEFAULT_IDENTIFERS_TYPE
43
+ end
37
44
  @query_params.merge!(@params.slice(*search_catalog_items_params))
38
45
  @request_type = "GET"
39
46
  call_api
40
47
  end
48
+ # rubocop:enable Metrics/CyclomaticComplexity
41
49
 
42
50
  def get_catalog_item(asin, marketplace_ids, params = {}, api_version=API_VERSION)
43
51
  if sandbox
@@ -4,7 +4,6 @@ module MuffinMan
4
4
  module CatalogItems
5
5
  class V20220401 < BaseApi
6
6
  SEARCH_CATALOG_ITEMS_PARAMS = %w(
7
- identifiers
8
7
  identifiersType
9
8
  sellerId
10
9
  ).freeze
@@ -43,6 +43,8 @@ module MuffinMan
43
43
 
44
44
  def call_api
45
45
  Typhoeus.send(request_type.downcase.to_sym, request.url, request_opts)
46
+ rescue SpApiAuthError => e
47
+ e.auth_response
46
48
  end
47
49
 
48
50
  def request_opts
@@ -100,6 +102,8 @@ module MuffinMan
100
102
  "Content-Type" => "application/x-www-form-urlencoded;charset=UTF-8"
101
103
  }
102
104
  )
105
+ raise SpApiAuthError, response if response.failure?
106
+
103
107
  JSON.parse(response.body)
104
108
  end
105
109
 
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module MuffinMan
4
- VERSION = "2.0.0"
4
+ VERSION = "2.0.2"
5
5
  end
data/lib/muffin_man.rb CHANGED
@@ -24,6 +24,15 @@ require "muffin_man/merchant_fulfillment/v0"
24
24
  module MuffinMan
25
25
  class Error < StandardError; end
26
26
 
27
+ class SpApiAuthError < StandardError
28
+ attr_reader :auth_response
29
+
30
+ def initialize(auth_response)
31
+ super
32
+ @auth_response = auth_response
33
+ end
34
+ end
35
+
27
36
  class << self
28
37
  attr_accessor :configuration
29
38
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: muffin_man
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.0
4
+ version: 2.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Gavin
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: exe
12
12
  cert_chain: []
13
- date: 2023-02-28 00:00:00.000000000 Z
13
+ date: 2023-03-29 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: rspec