muffin_man 1.5.2 → 1.5.4

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: 1a50a949121a2dbd7a3b4b6ba0862d8d3bf9336957164fe78c81a08bf5f508f8
4
- data.tar.gz: 5a288706a99e4e9820dd22307cbfb22820ce4ca23f662f25b6e1089adba2ba1c
3
+ metadata.gz: 815e6d799e774cb3a08322e50fb29485db132b069a976f16fd110b279286a95c
4
+ data.tar.gz: c2c8054d5e139c4c92037d029feef98c606dca4e8162a7705f63b3cace9c4b4f
5
5
  SHA512:
6
- metadata.gz: bc2bab060e40d070cf093647e557a674e7f8c2cea7adb6039bc79553fce3412b2f22f72822065ee213b1fbb782d5559be48ac4476ddb3d748a8d0ba1e038fea4
7
- data.tar.gz: 7037a0e94bdbd7fc918ef8548b5c39a395b0ea8b740f55c04f3b02762fdf422e7f4b441c9ee79fe91a56ff35e18c4105b18d61cd92531eefdddc80512c43891b
6
+ metadata.gz: fad01d3bd223905a1060dda3f3f232bffc1c4d8ec7dd18a3289adcf2d67ab315678e420f73f3b35beb84e9187b73a84af4e5091f10f1394ca6f95513d9f70885
7
+ data.tar.gz: cd4ff94c59ccc170b3753068ccc132df8f812a1bcbddf7fd5f4bfcac39dc953142f3276538c8f96b070bfccb5fb97260c91266751db57714dd314701d1d260fa
data/.rubocop_todo.yml CHANGED
@@ -159,6 +159,7 @@ Lint/MissingSuper:
159
159
  Exclude:
160
160
  - 'lib/muffin_man/request_helpers/inbound_shipment_plan_request_item.rb'
161
161
 
162
+
162
163
  # Offense count: 17
163
164
  # This cop supports safe autocorrection (--autocorrect).
164
165
  # Configuration parameters: EnforcedStyle.
@@ -254,6 +255,7 @@ RSpec/FilePath:
254
255
  - 'spec/muffin_man/solicitations_spec.rb'
255
256
  - 'spec/muffin_man/tokens_spec.rb'
256
257
 
258
+
257
259
  # Offense count: 15
258
260
  # This cop supports safe autocorrection (--autocorrect).
259
261
  RSpec/LeadingSubject:
data/CHANGELOG.md CHANGED
@@ -2,6 +2,14 @@
2
2
 
3
3
  - Support for getInventorySummaries [#36](https://github.com/patterninc/muffin_man/pull/36)
4
4
 
5
+ # 1.5.4
6
+
7
+ - Fix to format create outbound fulfillment request [#40](https://github.com/patterninc/muffin_man/pull/40)
8
+
9
+ # 1.5.3
10
+
11
+ - Support for Fulfillment Outbound [#34](https://github.com/patterninc/muffin_man/pull/34)
12
+
5
13
  # 1.5.2
6
14
 
7
15
  - Support for Feeds and Notifications [#33](https://github.com/patterninc/muffin_man/pull/33)
data/README.md CHANGED
@@ -12,6 +12,7 @@ As of now, this gem only supports portions of the following APIs with more to co
12
12
  - `product_fees`
13
13
  - `product_pricing`
14
14
  - `fulfillment_inbound`
15
+ - `fulfillment_outbound`
15
16
  - `feeds`
16
17
  - `notifications`
17
18
 
@@ -0,0 +1,56 @@
1
+ # frozen_string_literal: true
2
+
3
+ module MuffinMan
4
+ module FulfillmentOutbound
5
+ class V20200701 < SpApiClient
6
+ # @param [MuffinMan::RequestHelpers::OutboundFulFillment::FulfillmentPreviewRequest] fulfillment_preview_request
7
+ # in the form of object
8
+ def get_fulfillment_preview(fulfillment_preview_request)
9
+ return unprocessable_entity(fulfillment_preview_request&.errors) unless fulfillment_preview_request&.valid?
10
+
11
+ @local_var_path = "/fba/outbound/2020-07-01/fulfillmentOrders/preview"
12
+ @request_body = fulfillment_preview_request.to_camelize
13
+ @request_type = "POST"
14
+ call_api
15
+ end
16
+
17
+ # @param [MuffinMan::RequestHelpers::OutboundFulFillment::FulfillmentOrderRequest] fulfillment_order_request
18
+ # in the form of object
19
+ def create_fulfillment_order(fulfillment_order_request)
20
+ return unprocessable_entity(fulfillment_order_request&.errors) unless fulfillment_order_request&.valid?
21
+
22
+ @local_var_path = "/fba/outbound/2020-07-01/fulfillmentOrders"
23
+ @request_body = fulfillment_order_request.to_camelize
24
+ @request_type = "POST"
25
+ call_api
26
+ end
27
+
28
+ # @param [String] query_start_date optional
29
+ # @param [String] next_token optional
30
+ def list_all_fulfillment_orders(query_start_date: nil, next_token: nil)
31
+ @local_var_path = "/fba/outbound/2020-07-01/fulfillmentOrders"
32
+
33
+ @query_params = {} unless query_start_date.nil? && next_token.nil?
34
+
35
+ @query_params[:queryStartDate] = query_start_date unless query_start_date.nil?
36
+ @query_params[:nextToken] = next_token unless next_token.nil?
37
+ @request_type = "GET"
38
+ call_api
39
+ end
40
+
41
+ # @param [String] seller_fulfillment_order_id
42
+ def get_fulfillment_order(seller_fulfillment_order_id)
43
+ @local_var_path = "/fba/outbound/2020-07-01/fulfillmentOrders/#{seller_fulfillment_order_id}"
44
+ @request_type = "GET"
45
+ call_api
46
+ end
47
+
48
+ # @param [String] seller_fulfillment_order_id
49
+ def cancel_fulfillment_order(seller_fulfillment_order_id)
50
+ @local_var_path = "/fba/outbound/2020-07-01/fulfillmentOrders/#{seller_fulfillment_order_id}/cancel"
51
+ @request_type = "PUT"
52
+ call_api
53
+ end
54
+ end
55
+ end
56
+ end
@@ -1,3 +1,6 @@
1
+ require "active_support/core_ext/object/blank"
2
+ require "active_support/core_ext/hash"
3
+
1
4
  module MuffinMan
2
5
  module RequestHelpers
3
6
  class Base
@@ -0,0 +1,92 @@
1
+ # frozen_string_literal: true
2
+
3
+ module MuffinMan
4
+ module RequestHelpers
5
+ module OutboundFulfillment
6
+ class Address < MuffinMan::RequestHelpers::Base
7
+ attr_accessor :name, :address_line1, :address_line2, :address_line3, :city,
8
+ :district_or_county, :state_or_region, :country_code, :postal_code, :phone
9
+
10
+ # Initializes the object
11
+ # @param [Hash] attributes Model attributes in the form of hash
12
+ # rubocop:disable Metrics/CyclomaticComplexity
13
+ # rubocop:disable Metrics/PerceivedComplexity
14
+ def initialize(attributes = {})
15
+ super
16
+ return unless attributes.is_a?(Hash)
17
+
18
+ attributes = attributes.with_indifferent_access
19
+
20
+ self.name = attributes["name"] if attributes.key?("name")
21
+
22
+ if attributes.key?("address_line1") || attributes.key?("line1")
23
+ self.address_line1 = attributes["address_line1"] || attributes["line1"]
24
+ end
25
+
26
+ if attributes.key?("address_line2") || attributes.key?("line2")
27
+ self.address_line2 = attributes["address_line2"] || attributes["line2"]
28
+ end
29
+
30
+ if attributes.key?("address_line3") || attributes.key?("line3")
31
+ self.address_line3 = attributes["address_line3"] || attributes("line3")
32
+ end
33
+
34
+ self.city = attributes["city"] if attributes.key?("city")
35
+
36
+ self.district_or_county = attributes["district_or_county"] if attributes.key?("district_or_county")
37
+
38
+ if attributes.key?("state_or_region") || attributes.key?("state_or_province_code")
39
+ self.state_or_region = attributes["state_or_region"] || attributes["state_or_province_code"]
40
+ end
41
+
42
+ self.postal_code = attributes["postal_code"] if attributes.key?("postal_code")
43
+
44
+ self.country_code = attributes["country_code"] if attributes.key?("country_code")
45
+
46
+ self.phone = attributes["phone"] if attributes.key?("phone")
47
+ end
48
+ # rubocop:enable Metrics/CyclomaticComplexity
49
+ # rubocop:enable Metrics/PerceivedComplexity
50
+
51
+ # return true if the model is valid
52
+ def valid?
53
+ return false if name.blank?
54
+ return false if address_line1.blank?
55
+ return false if state_or_region.blank?
56
+ return false if country_code.blank?
57
+
58
+ true
59
+ end
60
+
61
+ # Show invalid properties with the reasons.
62
+ # return Array for invalid properties with the reasons
63
+ def errors
64
+ errors = []
65
+ errors.push('"name" cannot be nil.') if name.blank?
66
+ errors.push('"address_line1" cannot be nil.') if address_line1.blank?
67
+ errors.push('"state_or_region" cannot be nil.') if state_or_region.blank?
68
+ errors.push('"country_code" cannot be nil.') if country_code.blank?
69
+
70
+ errors
71
+ end
72
+
73
+ # Format request object in sp-api request format
74
+ # @return hash for sp-api request format
75
+ def to_camelize
76
+ {
77
+ "name" => name,
78
+ "addressLine1" => address_line1,
79
+ "addressLine2" => address_line2,
80
+ "addressLine3" => address_line3,
81
+ "city" => city,
82
+ "districtOrCounty" => district_or_county,
83
+ "stateOrRegion" => state_or_region,
84
+ "countryCode" => country_code,
85
+ "postalCode" => postal_code,
86
+ "phone" => phone
87
+ }
88
+ end
89
+ end
90
+ end
91
+ end
92
+ end
@@ -0,0 +1,104 @@
1
+ # frozen_string_literal: true
2
+
3
+ module MuffinMan
4
+ module RequestHelpers
5
+ module OutboundFulfillment
6
+ class FulfillmentOrderRequest < MuffinMan::RequestHelpers::Base
7
+ attr_accessor :seller_fulfillment_order_id, :displayable_order_id, :displayable_order_date_time,
8
+ :displayable_order_comment, :shipping_speed_category, :destination_address, :items,
9
+ :optional_params
10
+
11
+ OPTIONAL_CREATE_FULFILLMENT_ORDER_PARAMS = %w[
12
+ marketplaceId
13
+ deliveryWindow
14
+ fulfillmentAction
15
+ fulfillmentPolicy
16
+ codSettings
17
+ shipFromCountryCode
18
+ notificationEmails
19
+ featureConstraints
20
+ ].freeze
21
+
22
+ # Initializes the object
23
+ # @param [String] seller_fulfillment_order_id
24
+ # @param [String] displayable_order_id
25
+ # @param [String] displayable_order_date_time
26
+ # @param [String] displayable_order_comment
27
+ # @param [String] shipping_speed_category
28
+ # @param [MuffinMan::RequestHelpers::OutboundFulfillment::Address] destination_address in form of object
29
+ # @param [MuffinMan::RequestHelpers::OutboundFulfillment::Item] items in the form of list of items objects
30
+ # @param [Hash] optional_params optional sp-api attributes in the form of hash
31
+ # rubocop:disable Metrics/ParameterLists
32
+ def initialize(seller_fulfillment_order_id, displayable_order_id, displayable_order_date_time,
33
+ displayable_order_comment, shipping_speed_category, destination_address, items,
34
+ optional_params = {})
35
+ super
36
+ @seller_fulfillment_order_id = seller_fulfillment_order_id
37
+ @displayable_order_id = displayable_order_id
38
+ @displayable_order_date_time = displayable_order_date_time
39
+ @displayable_order_comment = displayable_order_comment
40
+ @shipping_speed_category = shipping_speed_category
41
+ @destination_address = destination_address
42
+ @items = items
43
+ @optional_params = optional_params
44
+ end
45
+ # rubocop:enable Metrics/ParameterLists
46
+
47
+ # Check to see if the all the properties in the model are valid
48
+ # @return true if the model is valid
49
+ # rubocop:disable Metrics/CyclomaticComplexity
50
+ # rubocop:disable Metrics/PerceivedComplexity
51
+ def valid?
52
+ return false if seller_fulfillment_order_id.blank?
53
+ return false if displayable_order_id.blank?
54
+ return false if displayable_order_date_time.blank?
55
+ return false if displayable_order_comment.blank?
56
+ return false if shipping_speed_category.blank?
57
+ return false if destination_address.blank?
58
+ return false if items.blank?
59
+ return false if destination_address.present? && !destination_address.valid?
60
+ return false if items.present? && items.map(&:valid?).include?(false)
61
+
62
+ true
63
+ end
64
+
65
+ # Show invalid properties with the reasons.
66
+ # @return Array for invalid properties with the
67
+ def errors
68
+ errors = []
69
+ errors.push('"seller_fulfillment_order_id" cannot be nil.') if seller_fulfillment_order_id.blank?
70
+ errors.push('"displayable_order_id" cannot be nil.') if displayable_order_id.blank?
71
+ errors.push('"displayable_order_date_time" cannot be nil.') if displayable_order_date_time.blank?
72
+ errors.push('"displayable_order_comment" cannot be nil.') if displayable_order_comment.blank?
73
+ errors.push('"shipping_speed_category" cannot be nil.') if shipping_speed_category.blank?
74
+ errors.push('"destination_address" cannot be nil.') if destination_address.blank?
75
+ errors.push('"items" cannot be nil.') if items.blank?
76
+
77
+ if !destination_address.nil? && !destination_address.valid?
78
+ errors.push("invalid value for \"destination_address\", #{destination_address.errors}")
79
+ end
80
+
81
+ errors.push('invalid value for "items"') if !items.nil? && items.map(&:valid?).include?(false)
82
+
83
+ errors
84
+ end
85
+ # rubocop:enable Metrics/CyclomaticComplexity
86
+ # rubocop:enable Metrics/PerceivedComplexity
87
+
88
+ # Format request object in sp-api request format
89
+ # @return hash for sp-api request format
90
+ def to_camelize
91
+ {
92
+ "sellerFulfillmentOrderId" => seller_fulfillment_order_id,
93
+ "displayableOrderId" => displayable_order_id,
94
+ "displayableOrderDate" => displayable_order_date_time,
95
+ "displayableOrderComment" => displayable_order_comment,
96
+ "shippingSpeedCategory" => shipping_speed_category,
97
+ "destinationAddress" => destination_address.to_camelize,
98
+ "items" => items.map(&:to_camelize)
99
+ }.merge!(optional_params.slice(*OPTIONAL_CREATE_FULFILLMENT_ORDER_PARAMS))
100
+ end
101
+ end
102
+ end
103
+ end
104
+ end
@@ -0,0 +1,64 @@
1
+ # frozen_string_literal: true
2
+
3
+ module MuffinMan
4
+ module RequestHelpers
5
+ module OutboundFulfillment
6
+ class FulfillmentPreviewRequest < MuffinMan::RequestHelpers::Base
7
+ attr_accessor :address, :items, :optional_params
8
+
9
+ OPTIONAL_FULFILLMENT_PREVIEW_PARAMS = %w[
10
+ marketplaceId
11
+ shippingSpeedCategories
12
+ includeCODFulfillmentPreview
13
+ includeDeliveryWindows
14
+ featureConstraints
15
+ ].freeze
16
+
17
+ # Initializes the object
18
+ # @param [MuffinMan::RequestHelpers::OutboundFulfillment::Address] address in the form of object
19
+ # @param[MuffinMan::RequestHelpers::OutboundFulfillment::Item] items in the form of list of items objects
20
+ # @param [Hash] optional_params optional sp-api attributes in the form of hash
21
+ def initialize(address, items, optional_params = {})
22
+ super
23
+ @address = address
24
+ @items = items
25
+ @optional_params = optional_params
26
+ end
27
+
28
+ # Check to see if the all the properties in the model are valid
29
+ # @return true if the model is valid
30
+ # rubocop:disable Metrics/CyclomaticComplexity
31
+ def valid?
32
+ return false if address.blank? || !address.is_a?(MuffinMan::RequestHelpers::OutboundFulfillment::Address)
33
+ return false if items.blank? || !items.is_a?(Array)
34
+
35
+ return false if !address.valid? || items.map(&:valid?).include?(false)
36
+
37
+ true
38
+ end
39
+
40
+ # Show invalid properties with the reasons.
41
+ # @return Array for invalid properties with the reasons
42
+ def errors
43
+ errors = []
44
+ errors.push('"address" cannot be nil.') if address.blank?
45
+ errors.push('"items" cannot be nil.') if items.blank?
46
+ errors.push("invalid value for \"address\",#{address.errors}") if address.present? && !address.valid?
47
+ errors.push('invalid value for "items"') if items.present? && items.map(&:valid?).include?(false)
48
+
49
+ errors
50
+ end
51
+ # rubocop:enable Metrics/CyclomaticComplexity
52
+
53
+ # Format request object in sp-api request format
54
+ # @return hash for sp-api request format
55
+ def to_camelize
56
+ {
57
+ "address" => address.to_camelize,
58
+ "items" => items.map(&:to_camelize)
59
+ }.merge!(optional_params.slice(*OPTIONAL_FULFILLMENT_PREVIEW_PARAMS))
60
+ end
61
+ end
62
+ end
63
+ end
64
+ end
@@ -0,0 +1,69 @@
1
+ # frozen_string_literal: true
2
+
3
+ module MuffinMan
4
+ module RequestHelpers
5
+ module OutboundFulfillment
6
+ class Item < MuffinMan::RequestHelpers::Base
7
+ attr_accessor :seller_sku, :seller_fulfillment_order_item_id, :quantity, :optional_params
8
+
9
+ OPTIONAL_ITEM_PARAMS = %w[
10
+ perUnitDeclaredValue
11
+ giftMessage
12
+ displayableComment
13
+ fulfillmentNetworkSku
14
+ perUnitDeclaredValue
15
+ perUnitPrice
16
+ perUnitTax
17
+ ].freeze
18
+
19
+ # Initializes the object
20
+ # @param [Hash] attributes Model attributes in the form of hash
21
+ def initialize(attributes = {})
22
+ super
23
+ return unless attributes.is_a?(Hash)
24
+
25
+ attributes = attributes.with_indifferent_access
26
+
27
+ @seller_sku = attributes["seller_sku"] if attributes.key?("seller_sku")
28
+
29
+ if attributes.key?("seller_fulfillment_order_item_id")
30
+ @seller_fulfillment_order_item_id = attributes["seller_fulfillment_order_item_id"]
31
+ end
32
+
33
+ @quantity = attributes["quantity"] if attributes.key?("quantity")
34
+
35
+ @optional_params = attributes.slice(*OPTIONAL_ITEM_PARAMS)
36
+ end
37
+
38
+ # Check to see if the all the properties in the model are valid
39
+ # @return true if the model is valid
40
+ def valid?
41
+ return false if seller_sku.blank?
42
+ return false if seller_fulfillment_order_item_id.blank?
43
+ return false if quantity.blank?
44
+
45
+ true
46
+ end
47
+
48
+ # Show invalid properties with the reasons.
49
+ # @return Array for invalid properties with the reasons
50
+ def errors
51
+ errors = []
52
+ errors.push('"seller_sku" cannot be nil.') if seller_sku.blank?
53
+ errors.push('"seller_fulfillment_order_item_id" cannot be nil.') if seller_fulfillment_order_item_id.blank?
54
+ errors.push('"quantity" cannot be nil.') if quantity.blank?
55
+
56
+ errors
57
+ end
58
+
59
+ def to_camelize
60
+ {
61
+ "sellerSku" => seller_sku,
62
+ "sellerFulfillmentOrderItemId" => seller_fulfillment_order_item_id,
63
+ "quantity" => quantity
64
+ }.merge!(optional_params.slice(*OPTIONAL_ITEM_PARAMS))
65
+ end
66
+ end
67
+ end
68
+ end
69
+ end
@@ -0,0 +1,41 @@
1
+ # frozen_string_literal: true
2
+
3
+ module MuffinMan
4
+ module RequestHelpers
5
+ module OutboundFulfillment
6
+ class V20200701
7
+ def self.address_request(name, address_line1, state_or_region, country_code, optional_params = {})
8
+ Address.new({
9
+ "name" => name,
10
+ "address_line1" => address_line1,
11
+ "state_or_region" => state_or_region,
12
+ "country_code" => country_code
13
+ }.merge(optional_params))
14
+ end
15
+
16
+ def self.item_request(seller_sku, seller_fulfillment_order_item_id, quantity, optional_params = {})
17
+ Item.new({
18
+ "seller_sku" => seller_sku,
19
+ "seller_fulfillment_order_item_id" => seller_fulfillment_order_item_id,
20
+ "quantity" => quantity
21
+ }.merge(optional_params))
22
+ end
23
+
24
+ # rubocop:disable Metrics/ParameterLists
25
+ def self.fulfillment_order_request(seller_fulfillment_order_id, displayable_order_id,
26
+ displayable_order_date_time,
27
+ displayable_order_comment, shipping_speed_category,
28
+ destination_address, items, optional_params = {})
29
+ FulfillmentOrderRequest.new(seller_fulfillment_order_id, displayable_order_id, displayable_order_date_time,
30
+ displayable_order_comment, shipping_speed_category, destination_address,
31
+ items, optional_params)
32
+ end
33
+ # rubocop:enable Metrics/ParameterLists
34
+
35
+ def self.fulfillment_preview_request(address, items, optional_params = {})
36
+ FulfillmentPreviewRequest.new(address, items, optional_params)
37
+ end
38
+ end
39
+ end
40
+ end
41
+ end
@@ -1,2 +1,3 @@
1
1
  require 'muffin_man/request_helpers/base'
2
2
  require 'muffin_man/request_helpers/inbound_shipment_plan_request_item'
3
+ require 'muffin_man/request_helpers/outbound_fulfillment/v20200701'
@@ -20,6 +20,8 @@ module MuffinMan
20
20
  "fe" => "us-west-2"
21
21
  }.freeze
22
22
 
23
+ UNPROCESSABLE_ENTITY_STATUS_CODE = 422
24
+
23
25
  def initialize(credentials, sandbox = false)
24
26
  @refresh_token = credentials[:refresh_token]
25
27
  @client_id = credentials[:client_id]
@@ -183,6 +185,10 @@ module MuffinMan
183
185
  @aws_region
184
186
  end
185
187
 
188
+ def unprocessable_entity(errors)
189
+ Typhoeus::Response.new(code: UNPROCESSABLE_ENTITY_STATUS_CODE, body: { errors: errors.to_s }.to_json)
190
+ end
191
+
186
192
  def sp_api_params(params)
187
193
  params.to_h.transform_keys { |key| key.to_s.split("_").map.with_index { |x, i| i.positive? ? x.capitalize : x }.join }
188
194
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module MuffinMan
4
- VERSION = "1.5.2"
4
+ VERSION = "1.5.4"
5
5
  end
data/lib/muffin_man.rb CHANGED
@@ -14,9 +14,11 @@ require "muffin_man/product_pricing/v0"
14
14
  require "muffin_man/listings/v20210801"
15
15
  require "muffin_man/fulfillment_inbound/v0"
16
16
  require "muffin_man/fulfillment_inbound/v1"
17
+ require "muffin_man/fulfillment_outbound/v20200701"
18
+ require "muffin_man/fba_inventory/v1"
19
+ require "muffin_man/request_helpers"
17
20
  require "muffin_man/feeds/v20210630"
18
21
  require "muffin_man/notifications/v1"
19
- require "muffin_man/fba_inventory/v1"
20
22
 
21
23
  module MuffinMan
22
24
  class Error < StandardError; end
data/muffin_man.gemspec CHANGED
@@ -25,4 +25,5 @@ Gem::Specification.new do |spec|
25
25
  spec.add_runtime_dependency 'typhoeus', '~> 1.0', '>= 1.0.1'
26
26
  spec.add_runtime_dependency 'aws-sigv4', '>= 1.1'
27
27
  spec.add_runtime_dependency 'aws-sdk-core', '>= 2.4.4'
28
+ spec.add_runtime_dependency 'activesupport'
28
29
  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: 1.5.2
4
+ version: 1.5.4
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: 2022-11-01 00:00:00.000000000 Z
13
+ date: 2022-11-09 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: rspec
@@ -116,6 +116,20 @@ dependencies:
116
116
  - - ">="
117
117
  - !ruby/object:Gem::Version
118
118
  version: 2.4.4
119
+ - !ruby/object:Gem::Dependency
120
+ name: activesupport
121
+ requirement: !ruby/object:Gem::Requirement
122
+ requirements:
123
+ - - ">="
124
+ - !ruby/object:Gem::Version
125
+ version: '0'
126
+ type: :runtime
127
+ prerelease: false
128
+ version_requirements: !ruby/object:Gem::Requirement
129
+ requirements:
130
+ - - ">="
131
+ - !ruby/object:Gem::Version
132
+ version: '0'
119
133
  description:
120
134
  email:
121
135
  - gavin@pattern.com
@@ -148,6 +162,7 @@ files:
148
162
  - lib/muffin_man/finances/v0.rb
149
163
  - lib/muffin_man/fulfillment_inbound/v0.rb
150
164
  - lib/muffin_man/fulfillment_inbound/v1.rb
165
+ - lib/muffin_man/fulfillment_outbound/v20200701.rb
151
166
  - lib/muffin_man/listings/v20210801.rb
152
167
  - lib/muffin_man/lwa/auth_helper.rb
153
168
  - lib/muffin_man/notifications/v1.rb
@@ -158,6 +173,11 @@ files:
158
173
  - lib/muffin_man/request_helpers.rb
159
174
  - lib/muffin_man/request_helpers/base.rb
160
175
  - lib/muffin_man/request_helpers/inbound_shipment_plan_request_item.rb
176
+ - lib/muffin_man/request_helpers/outbound_fulfillment/address.rb
177
+ - lib/muffin_man/request_helpers/outbound_fulfillment/fulfillment_order_request.rb
178
+ - lib/muffin_man/request_helpers/outbound_fulfillment/fulfillment_preview_request.rb
179
+ - lib/muffin_man/request_helpers/outbound_fulfillment/item.rb
180
+ - lib/muffin_man/request_helpers/outbound_fulfillment/v20200701.rb
161
181
  - lib/muffin_man/solicitations/v1.rb
162
182
  - lib/muffin_man/sp_api_client.rb
163
183
  - lib/muffin_man/tokens/v20210301.rb