muffin_man 0.1.2 → 0.1.3

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: 8f18fd5109212925756a27afa10bd66cd33493860a8c3d1d9e7565ca2ac0a294
4
- data.tar.gz: 1e4eeb3004243811046dcaacea118daf0f10604378cf9b1ce7553ed50eb67fdd
3
+ metadata.gz: 25135df0da6abb1e29b819b2f82be37186c580c26c5ed99532c0f70450dfd078
4
+ data.tar.gz: c90972f67f07f7c8987027c3e143dd8574c8fd3dd13bedc01b30a20518f13ddd
5
5
  SHA512:
6
- metadata.gz: 6a034e306a305b3fd2a0595a6db3725eaf930b16c0f77cada17a66e54483b3bccc1a507eeeba76bc61c56e93c0bed871f538a9cca0c9bdb018c55afb36b57a5a
7
- data.tar.gz: 3efd04fedeefe8c526fafd321c3f4e86908805f725684da30c3644b0ba74af7a8d7218cc6771154adf90393ad6cc8130faf4ad17862f5a53d96b278d0b36e9ce
6
+ metadata.gz: 189e7f5656b429d6493a780f9b847b2a41e65f61d69aa21420e797b1d75b94d00db432569d5c89f0e8b5d976d76191cf410c071ce904762fb32a6ca0c7f5217e
7
+ data.tar.gz: 0bed33effc0565b1959cce60840261aa95f7388ffec1bb6d784ea1742ee1022f813dfe455a2370c88d15b609cbc7d1ff0d99bc5120b71862ba3c9ebadd97bd7f
data/README.md CHANGED
@@ -36,7 +36,7 @@ credentials = {
36
36
  sts_iam_role_arn: STS_IAM_ROLE_ARN, # Optional
37
37
  }
38
38
  client = MuffinMan::Solicitations.new(credentials)
39
- response = client.create_product_review_and_seller_feedback_solicitation(amazon_order_id, marketplace_ids, region)
39
+ response = client.create_product_review_and_seller_feedback_solicitation(amazon_order_id, marketplace_ids)
40
40
  JSON.parse(response.body)
41
41
  ```
42
42
 
@@ -0,0 +1,27 @@
1
+ module MuffinMan
2
+ class Reports < SpApiClient
3
+ SANDBOX_REPORT_TYPE = "GET_MERCHANT_LISTINGS_ALL_DATA"
4
+ SANDBOX_START_TIME = "2019-12-10T20:11:24.000Z"
5
+ SANDBOX_MARKETPLACE_IDS = [
6
+ "A1PA6795UKMFR9",
7
+ "ATVPDKIKX0DER"
8
+ ]
9
+
10
+ def create_report(report_type, marketplace_ids, start_time = nil, end_time = nil, report_options = {})
11
+ report_type = sandbox ? SANDBOX_REPORT_TYPE : report_type
12
+ marketplace_ids = sandbox ? SANDBOX_MARKETPLACE_IDS : marketplace_ids
13
+ start_time = sandbox ? SANDBOX_START_TIME : start_time
14
+
15
+ @local_var_path = "/reports/2021-06-30/reports"
16
+ @request_body = {
17
+ "reportType" => report_type,
18
+ "marketplaceIds" => marketplace_ids,
19
+ }
20
+ @request_body["dataStartTime"] = start_time unless start_time.nil?
21
+ @request_body["dataEndTime"] = end_time unless end_time.nil?
22
+ @request_body["reportOptions"] = report_options unless report_options.empty?
23
+ @request_type = 'POST'
24
+ call_api
25
+ end
26
+ end
27
+ end
@@ -2,7 +2,7 @@ module MuffinMan
2
2
  class Solicitations < SpApiClient
3
3
  SANDBOX_AMAZON_ORDER_ID = "123-1234567-1234567"
4
4
  SANDBOX_MARKETPLACE_IDS = "ATVPDKIKX0DER"
5
- attr_reader :amazon_order_id, :marketplace_ids, :request_type, :local_var_path, :query_params
5
+ attr_reader :amazon_order_id, :marketplace_ids
6
6
 
7
7
  # Sends a solicitation to a buyer asking for seller feedback and a product review for the specified order. Send only one productReviewAndSellerFeedback or free form proactive message per order. **Usage Plan:** | Rate (requests per second) | Burst | | ---- | ---- | | 1 | 5 | For more information, see \"Usage Plans and Rate Limits\" in the Selling Partner API documentation.
8
8
  # @param amazon_order_id An Amazon order identifier. This specifies the order for which a solicitation is sent.
@@ -7,7 +7,8 @@ require 'securerandom'
7
7
  module MuffinMan
8
8
  class SpApiClient
9
9
  attr_reader :refresh_token, :client_id, :client_secret, :aws_access_key_id,
10
- :aws_secret_access_key, :sts_iam_role_arn, :sandbox, :config, :region
10
+ :aws_secret_access_key, :sts_iam_role_arn, :sandbox, :config, :region, :request_type,
11
+ :local_var_path, :query_params, :request_body
11
12
  ACCESS_TOKEN_URL = 'https://api.amazon.com/auth/o2/token'.freeze
12
13
  SERVICE_NAME = 'execute-api'.freeze
13
14
  AWS_REGION_MAP = {
@@ -32,7 +33,15 @@ module MuffinMan
32
33
  private
33
34
 
34
35
  def call_api
35
- Typhoeus.send(request_type.downcase.to_sym, request.url, headers: headers)
36
+ Typhoeus.send(request_type.downcase.to_sym, request.url, request_opts)
37
+ end
38
+
39
+ def request_opts
40
+ opts = { headers: headers }
41
+ if request_body
42
+ opts[:body] = request_body.to_json
43
+ end
44
+ opts
36
45
  end
37
46
 
38
47
  def sp_api_host
@@ -107,7 +116,7 @@ module MuffinMan
107
116
  request_config[:credentials_provider] = request_sts_token
108
117
  end
109
118
  signer = Aws::Sigv4::Signer.new(request_config)
110
- signer.sign_request(http_method: request_type, url: request.url)
119
+ signer.sign_request(http_method: request_type, url: request.url, body: request_body&.to_json)
111
120
  end
112
121
 
113
122
  def headers
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module MuffinMan
4
- VERSION = "0.1.2"
4
+ VERSION = "0.1.3"
5
5
  end
data/lib/muffin_man.rb CHANGED
@@ -1,6 +1,7 @@
1
1
  require_relative "muffin_man/version"
2
2
  require "muffin_man/sp_api_client"
3
3
  require "muffin_man/solicitations"
4
+ require "muffin_man/reports"
4
5
 
5
6
  module MuffinMan
6
7
  class Error < StandardError; 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: 0.1.2
4
+ version: 0.1.3
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: 2021-01-20 00:00:00.000000000 Z
13
+ date: 2021-11-19 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: rspec
@@ -123,6 +123,7 @@ files:
123
123
  - bin/console
124
124
  - bin/setup
125
125
  - lib/muffin_man.rb
126
+ - lib/muffin_man/reports.rb
126
127
  - lib/muffin_man/solicitations.rb
127
128
  - lib/muffin_man/sp_api_client.rb
128
129
  - lib/muffin_man/version.rb