From f6048f199540933ae0d13f18699d587a113586a2 Mon Sep 17 00:00:00 2001 From: Islam Gagiev Date: Mon, 7 Nov 2022 16:11:16 +0300 Subject: [PATCH 01/43] Added getSubscription endpoint for account_api --- lib/ebay_api/operations/sell/account.rb | 1 + .../operations/sell/account/subscription.rb | 11 ++++ .../sell/account/subscription/get.rb | 17 ++++++ .../sell/account/subscription/get/bad_request | 6 ++ .../account/subscription/get/server_error | 5 ++ .../sell/account/subscription/get/success | 5 ++ .../sell/account/subscription/get/success.yml | 12 ++++ .../sell/account/subscription/get_spec.rb | 56 +++++++++++++++++++ 8 files changed, 113 insertions(+) create mode 100644 lib/ebay_api/operations/sell/account/subscription.rb create mode 100644 lib/ebay_api/operations/sell/account/subscription/get.rb create mode 100644 spec/fixtures/sell/account/subscription/get/bad_request create mode 100644 spec/fixtures/sell/account/subscription/get/server_error create mode 100644 spec/fixtures/sell/account/subscription/get/success create mode 100644 spec/fixtures/sell/account/subscription/get/success.yml create mode 100644 spec/operations/sell/account/subscription/get_spec.rb diff --git a/lib/ebay_api/operations/sell/account.rb b/lib/ebay_api/operations/sell/account.rb index 10e2596..ee2200f 100644 --- a/lib/ebay_api/operations/sell/account.rb +++ b/lib/ebay_api/operations/sell/account.rb @@ -12,6 +12,7 @@ class EbayAPI require_relative "account/return_policy" require_relative "account/payment_policy" require_relative "account/payments_program" + require_relative "account/subscription" end end end diff --git a/lib/ebay_api/operations/sell/account/subscription.rb b/lib/ebay_api/operations/sell/account/subscription.rb new file mode 100644 index 0000000..5249123 --- /dev/null +++ b/lib/ebay_api/operations/sell/account/subscription.rb @@ -0,0 +1,11 @@ +require_relative "subscription/get" + +class EbayAPI + scope :sell do + scope :account do + scope :subscription do + path { "subscription" } + end + end + end +end diff --git a/lib/ebay_api/operations/sell/account/subscription/get.rb b/lib/ebay_api/operations/sell/account/subscription/get.rb new file mode 100644 index 0000000..f58c89c --- /dev/null +++ b/lib/ebay_api/operations/sell/account/subscription/get.rb @@ -0,0 +1,17 @@ +class EbayAPI + scope :sell do + scope :account do + scope :subscription do + # @see https://developer.ebay.com/api-docs/sell/account/resources/subscription/methods/getSubscription + operation :get do + option :limit, proc(&:to_s), optional: true + option :continuation_token, proc(&:to_s), optional: true + + path { "/" } + query { { limit: limit, continuation_token: continuation_token }.compact } + http_method :get + end + end + end + end +end diff --git a/spec/fixtures/sell/account/subscription/get/bad_request b/spec/fixtures/sell/account/subscription/get/bad_request new file mode 100644 index 0000000..79b9c09 --- /dev/null +++ b/spec/fixtures/sell/account/subscription/get/bad_request @@ -0,0 +1,6 @@ +HTTP/1.1 400 Bad Request +Content-Length: 182 +Content-Type: text/html + +{"errors":[{"errorId":1002,"domain":"OAuth","category":"REQUEST","message":"Missing access token","longMessage":"Access token is missing in the Authorization HTTP request header."}]} + diff --git a/spec/fixtures/sell/account/subscription/get/server_error b/spec/fixtures/sell/account/subscription/get/server_error new file mode 100644 index 0000000..9420ebf --- /dev/null +++ b/spec/fixtures/sell/account/subscription/get/server_error @@ -0,0 +1,5 @@ +HTTP/1.1 500 Server Error +Content-Length: 0 +Content-Type: application/json + + diff --git a/spec/fixtures/sell/account/subscription/get/success b/spec/fixtures/sell/account/subscription/get/success new file mode 100644 index 0000000..c7168c2 --- /dev/null +++ b/spec/fixtures/sell/account/subscription/get/success @@ -0,0 +1,5 @@ +HTTP/1.1 200 OK +Content-Length: 232 +Content-Type: application/json + +{"total":1,"subscriptions":[{"marketplaceId":"EBAY_US","subscriptionId":"4********1","subscriptionLevel":"Featured","subscriptionType":"STORE_PLAN","term":{"value":12,"unit":"MONTH"},"limit":10,"continuation_token":"some_token"}]} diff --git a/spec/fixtures/sell/account/subscription/get/success.yml b/spec/fixtures/sell/account/subscription/get/success.yml new file mode 100644 index 0000000..2dffff0 --- /dev/null +++ b/spec/fixtures/sell/account/subscription/get/success.yml @@ -0,0 +1,12 @@ +--- +total: 1 +subscriptions: + - marketplaceId: EBAY_US + subscriptionId: 4********1 + subscriptionLevel: Featured + subscriptionType: STORE_PLAN + term: + value: 12 + unit: MONTH + limit: 10 + continuation_token: some_token diff --git a/spec/operations/sell/account/subscription/get_spec.rb b/spec/operations/sell/account/subscription/get_spec.rb new file mode 100644 index 0000000..d419482 --- /dev/null +++ b/spec/operations/sell/account/subscription/get_spec.rb @@ -0,0 +1,56 @@ +RSpec.describe EbayAPI, ".sell.account.subscription.get" do + let(:client) { described_class.new(settings) } + let(:scope) { client.sell.account(version: version).subscription } + let(:settings) { yaml_fixture_file(settings_file) } + let(:version) { "1.2.0" } + let(:settings_file) { "settings.valid.yml" } + let(:url) do + "https://api.ebay.com/sell/account/v1/subscription/" \ + "?limit=10&continuation_token=some_token" + end + + before { stub_request(:get, url).to_return(response) } + subject { scope.get limit: 10, continuation_token: "some_token" } + + context "success" do + let(:response) do + open_fixture_file "sell/account/subscription/get/success" + end + + let(:policy) do + yaml_fixture_file \ + "sell/account/subscription/get/success.yml" + end + + it "returns just parsed JSON with data about subscription" do + expect(subject).to eq(policy) + end + end + + context "bad request" do + let(:response) do + open_fixture_file "sell/account/subscription/get/bad_request" + end + + it "raises an exception" do + expect { subject }.to raise_error EbayAPI::Error + end + + it "carries error message" do + subject + rescue => err + expect(err.code).to eq 1002 + expect(err.data).not_to be_empty + end + end + + context "server error" do + let(:response) do + open_fixture_file "sell/account/subscription/get/server_error" + end + + it "raises an exception" do + expect { subject }.to raise_error EbayAPI::Error + end + end +end From 1efc2776134e6f2bc26f528bb5d182ffacc98de5 Mon Sep 17 00:00:00 2001 From: yanmeng Date: Wed, 17 May 2023 12:05:03 +0800 Subject: [PATCH 02/43] fix bug --- lib/ebay_api/operations/sell/account/program.rb | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/ebay_api/operations/sell/account/program.rb b/lib/ebay_api/operations/sell/account/program.rb index 0e523b2..06a9d1d 100644 --- a/lib/ebay_api/operations/sell/account/program.rb +++ b/lib/ebay_api/operations/sell/account/program.rb @@ -1,4 +1,5 @@ require_relative "program/opt_in" +require_relative "program/get" class EbayAPI scope :sell do From 6691f1bf00e926d4cd6d8d315fab243dffe9c1b8 Mon Sep 17 00:00:00 2001 From: mengyang <974166167@qq.com> Date: Tue, 14 Nov 2023 16:12:46 +0800 Subject: [PATCH 03/43] translation api --- lib/ebay_api/operations/commerce.rb | 1 + lib/ebay_api/operations/commerce/translation.rb | 14 ++++++++++++++ .../operations/commerce/translation/translate.rb | 13 +++++++++++++ 3 files changed, 28 insertions(+) create mode 100644 lib/ebay_api/operations/commerce/translation.rb create mode 100644 lib/ebay_api/operations/commerce/translation/translate.rb diff --git a/lib/ebay_api/operations/commerce.rb b/lib/ebay_api/operations/commerce.rb index cd80922..949702c 100644 --- a/lib/ebay_api/operations/commerce.rb +++ b/lib/ebay_api/operations/commerce.rb @@ -9,5 +9,6 @@ class EbayAPI require_relative "commerce/notification" require_relative "commerce/taxonomy" + require_relative "commerce/translation" end end diff --git a/lib/ebay_api/operations/commerce/translation.rb b/lib/ebay_api/operations/commerce/translation.rb new file mode 100644 index 0000000..ddec0a1 --- /dev/null +++ b/lib/ebay_api/operations/commerce/translation.rb @@ -0,0 +1,14 @@ +class EbayAPI + scope :commerce do + # + # eBay Commerce Translation API + # + # @see https://developer.ebay.com/api-docs/commerce/translation/overview.html + # + scope :translation do + path { "translation/v1_beta" } + + require_relative "translation/translate" + end + end +end diff --git a/lib/ebay_api/operations/commerce/translation/translate.rb b/lib/ebay_api/operations/commerce/translation/translate.rb new file mode 100644 index 0000000..373da71 --- /dev/null +++ b/lib/ebay_api/operations/commerce/translation/translate.rb @@ -0,0 +1,13 @@ +class EbayAPI + scope :commerce do + scope :translation do + operation :translate do + option :data, proc(&:to_h) # TODO: add model to validate input + + path { "/translate" } + http_method :post + body { data } + end + end + end +end From ffbe0e0caf52faaca1471f8cd2b9452632a84ed1 Mon Sep 17 00:00:00 2001 From: mengyang <974166167@qq.com> Date: Sat, 18 Nov 2023 10:21:30 +0800 Subject: [PATCH 04/43] findSellerStandardsProfiles api --- lib/ebay_api/operations/sell/analytics.rb | 13 +++++++++++++ .../sell/analytics/seller_standards_profile.rb | 16 ++++++++++++++++ 2 files changed, 29 insertions(+) create mode 100644 lib/ebay_api/operations/sell/analytics.rb create mode 100644 lib/ebay_api/operations/sell/analytics/seller_standards_profile.rb diff --git a/lib/ebay_api/operations/sell/analytics.rb b/lib/ebay_api/operations/sell/analytics.rb new file mode 100644 index 0000000..5451ef0 --- /dev/null +++ b/lib/ebay_api/operations/sell/analytics.rb @@ -0,0 +1,13 @@ +# +# findSellerStandardsProfiles +# https://developer.ebay.com/api-docs/sell/analytics/resources/seller_standards_profile/methods/findSellerStandardsProfiles +# +class EbayAPI + scope :sell do + scope :analytics do + path { "analytics/v#{EbayAPI::SELL_INVENTORY_VERSION[/^\d+/]}" } + + require_relative "analytics/seller_standards_profile" + end + end +end diff --git a/lib/ebay_api/operations/sell/analytics/seller_standards_profile.rb b/lib/ebay_api/operations/sell/analytics/seller_standards_profile.rb new file mode 100644 index 0000000..82f577e --- /dev/null +++ b/lib/ebay_api/operations/sell/analytics/seller_standards_profile.rb @@ -0,0 +1,16 @@ +# +# findSellerStandardsProfiles +# +class EbayAPI + scope :sell do + scope :analytics do + scope :seller_standards_profile do + path "seller_standards_profile" + + operation :get do + http_method :get + end + end + end + end +end From 5abde26ec68fb155824b8cf201e2e31213ccfed3 Mon Sep 17 00:00:00 2001 From: mengyang <974166167@qq.com> Date: Sat, 18 Nov 2023 10:33:52 +0800 Subject: [PATCH 05/43] findSellerStandardsProfiles api --- lib/ebay_api/operations/sell.rb | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/ebay_api/operations/sell.rb b/lib/ebay_api/operations/sell.rb index b4a68bf..b3434c1 100644 --- a/lib/ebay_api/operations/sell.rb +++ b/lib/ebay_api/operations/sell.rb @@ -8,5 +8,6 @@ class EbayAPI require_relative "sell/account" require_relative "sell/inventory" require_relative "sell/marketing" + require_relative "sell/analytics" end end From 7fb9f00cc060ca2cda4618c1d348121efe28841d Mon Sep 17 00:00:00 2001 From: mengyang <974166167@qq.com> Date: Thu, 7 Dec 2023 13:03:21 +0800 Subject: [PATCH 06/43] add log --- lib/ebay_api/middlewares/log_request.rb | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/ebay_api/middlewares/log_request.rb b/lib/ebay_api/middlewares/log_request.rb index 8c7654c..d343338 100644 --- a/lib/ebay_api/middlewares/log_request.rb +++ b/lib/ebay_api/middlewares/log_request.rb @@ -12,7 +12,8 @@ def call(env) private def logger - @logger ||= EbayAPI.logger + # @logger ||= EbayAPI.logger + @logger ||= Rails.logger end def log_info(key, data = nil) From 1de433890d3c0492ff32c222196003879ddc04a7 Mon Sep 17 00:00:00 2001 From: mengyang <974166167@qq.com> Date: Tue, 12 Dec 2023 20:12:35 +0800 Subject: [PATCH 07/43] add log --- lib/ebay_api/middlewares/log_request.rb | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/lib/ebay_api/middlewares/log_request.rb b/lib/ebay_api/middlewares/log_request.rb index d343338..8c7654c 100644 --- a/lib/ebay_api/middlewares/log_request.rb +++ b/lib/ebay_api/middlewares/log_request.rb @@ -12,8 +12,7 @@ def call(env) private def logger - # @logger ||= EbayAPI.logger - @logger ||= Rails.logger + @logger ||= EbayAPI.logger end def log_info(key, data = nil) From 7487d413317ca30d69ec96bcefb669bc2bdbde04 Mon Sep 17 00:00:00 2001 From: yanmeng <974166167@qq.com> Date: Thu, 25 Jan 2024 16:47:13 +0800 Subject: [PATCH 08/43] add response parameters to Error --- lib/ebay_api.rb | 3 ++- lib/ebay_api/exceptions.rb | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/lib/ebay_api.rb b/lib/ebay_api.rb index 26afe31..5b2bde2 100644 --- a/lib/ebay_api.rb +++ b/lib/ebay_api.rb @@ -98,6 +98,7 @@ class << self code = data.dig("errors", 0, "errorId") message = data.dig("errors", 0, "longMessage") || data.dig("errors", 0, "message") - raise InternalServerError.new(code: code), message + parameters = data.dig("errors",0,"parameters") + raise InternalServerError.new(code: code), message, parameters end end diff --git a/lib/ebay_api/exceptions.rb b/lib/ebay_api/exceptions.rb index 477d7e1..9d378a9 100644 --- a/lib/ebay_api/exceptions.rb +++ b/lib/ebay_api/exceptions.rb @@ -2,10 +2,11 @@ class EbayAPI class Error < RuntimeError attr_reader :code, :data - def initialize(*args, code: nil, data: nil, **) + def initialize(*args, code: nil, data: nil, parameters: nil, **) super(*args) @code = code @data = data + @parameters = parameters end end From 33873bcffe00d64ca556cbbfef75bafe385ecdbb Mon Sep 17 00:00:00 2001 From: yanmeng <974166167@qq.com> Date: Fri, 26 Jan 2024 09:10:57 +0800 Subject: [PATCH 09/43] add response parameters to Error --- lib/ebay_api/exceptions.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/ebay_api/exceptions.rb b/lib/ebay_api/exceptions.rb index 9d378a9..90aaac1 100644 --- a/lib/ebay_api/exceptions.rb +++ b/lib/ebay_api/exceptions.rb @@ -1,6 +1,6 @@ class EbayAPI class Error < RuntimeError - attr_reader :code, :data + attr_reader :code, :data, :parameters def initialize(*args, code: nil, data: nil, parameters: nil, **) super(*args) From e6a6df743c0a29888cea4c1a94d598ffb3ee6bbd Mon Sep 17 00:00:00 2001 From: yanmeng <974166167@qq.com> Date: Fri, 26 Jan 2024 09:56:09 +0800 Subject: [PATCH 10/43] add response parameters to Error --- lib/ebay_api.rb | 10 +++++++++- lib/ebay_api/exceptions.rb | 6 +++--- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/lib/ebay_api.rb b/lib/ebay_api.rb index 5b2bde2..800cac3 100644 --- a/lib/ebay_api.rb +++ b/lib/ebay_api.rb @@ -98,7 +98,15 @@ class << self code = data.dig("errors", 0, "errorId") message = data.dig("errors", 0, "longMessage") || data.dig("errors", 0, "message") + errorId = get_error_id(data) + raise InternalServerError.new(code: code), message, errorId + end + + def get_error_id(data) parameters = data.dig("errors",0,"parameters") - raise InternalServerError.new(code: code), message, parameters + error = (parameters || []).filter{|p| p["name"]== "errorId"} + (error || {}).dig("value") + rescue StandardError + nil end end diff --git a/lib/ebay_api/exceptions.rb b/lib/ebay_api/exceptions.rb index 90aaac1..3e83bef 100644 --- a/lib/ebay_api/exceptions.rb +++ b/lib/ebay_api/exceptions.rb @@ -1,12 +1,12 @@ class EbayAPI class Error < RuntimeError - attr_reader :code, :data, :parameters + attr_reader :code, :data, :error_id - def initialize(*args, code: nil, data: nil, parameters: nil, **) + def initialize(*args, code: nil, data: nil, error_id: nil, **) super(*args) @code = code @data = data - @parameters = parameters + @error_id = error_id end end From e3d4ad4f3453acba2b763dadc13feb2e4519040d Mon Sep 17 00:00:00 2001 From: yanmeng <974166167@qq.com> Date: Fri, 26 Jan 2024 10:16:04 +0800 Subject: [PATCH 11/43] add response parameters to Error --- lib/ebay_api.rb | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/lib/ebay_api.rb b/lib/ebay_api.rb index 800cac3..948894d 100644 --- a/lib/ebay_api.rb +++ b/lib/ebay_api.rb @@ -93,20 +93,20 @@ class << self raise RequestLimitExceeded.new(code: code), message end + def self.get_error_id(data) + parameters = data.dig("errors",0,"parameters") + error = (parameters || []).filter{|p| p["name"] == "errorId"} + (error || {}).dig("value") + rescue StandardError + nil + end + response(500) do |_, _, (data, *)| data = data.to_h code = data.dig("errors", 0, "errorId") message = data.dig("errors", 0, "longMessage") || data.dig("errors", 0, "message") - errorId = get_error_id(data) + errorId = EbayAPI.get_error_id(data) raise InternalServerError.new(code: code), message, errorId end - - def get_error_id(data) - parameters = data.dig("errors",0,"parameters") - error = (parameters || []).filter{|p| p["name"]== "errorId"} - (error || {}).dig("value") - rescue StandardError - nil - end end From 7669e222ebc910ddcc9833459ad7c272c68167ca Mon Sep 17 00:00:00 2001 From: yanmeng <974166167@qq.com> Date: Fri, 26 Jan 2024 10:22:09 +0800 Subject: [PATCH 12/43] add response parameters to Error --- lib/ebay_api.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/ebay_api.rb b/lib/ebay_api.rb index 948894d..ea88ec2 100644 --- a/lib/ebay_api.rb +++ b/lib/ebay_api.rb @@ -95,7 +95,7 @@ class << self def self.get_error_id(data) parameters = data.dig("errors",0,"parameters") - error = (parameters || []).filter{|p| p["name"] == "errorId"} + error = (parameters || []).find{|p| p["name"] == "errorId"} (error || {}).dig("value") rescue StandardError nil From 28158ed14ef30b909e97bb94df66f1d9f2863fdf Mon Sep 17 00:00:00 2001 From: yanmeng <974166167@qq.com> Date: Fri, 26 Jan 2024 10:29:14 +0800 Subject: [PATCH 13/43] add response parameters to Error --- lib/ebay_api.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/ebay_api.rb b/lib/ebay_api.rb index ea88ec2..6cbe4ec 100644 --- a/lib/ebay_api.rb +++ b/lib/ebay_api.rb @@ -106,7 +106,7 @@ def self.get_error_id(data) code = data.dig("errors", 0, "errorId") message = data.dig("errors", 0, "longMessage") || data.dig("errors", 0, "message") - errorId = EbayAPI.get_error_id(data) - raise InternalServerError.new(code: code), message, errorId + error_id = EbayAPI.get_error_id(data) + raise InternalServerError.new(code: code, errorId: error_id), message end end From fb7bf69c7794afc2516f6df278176290fcd346b5 Mon Sep 17 00:00:00 2001 From: yanmeng <974166167@qq.com> Date: Fri, 26 Jan 2024 10:45:41 +0800 Subject: [PATCH 14/43] add response parameters to Error --- lib/ebay_api.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/ebay_api.rb b/lib/ebay_api.rb index 6cbe4ec..0464d92 100644 --- a/lib/ebay_api.rb +++ b/lib/ebay_api.rb @@ -107,6 +107,6 @@ def self.get_error_id(data) message = data.dig("errors", 0, "longMessage") || data.dig("errors", 0, "message") error_id = EbayAPI.get_error_id(data) - raise InternalServerError.new(code: code, errorId: error_id), message + raise InternalServerError.new(code: code, error_id: error_id), message end end From c0a9b406daae235493f34587761ef3e4f7da3d86 Mon Sep 17 00:00:00 2001 From: yanmeng <974166167@qq.com> Date: Fri, 26 Jan 2024 10:50:31 +0800 Subject: [PATCH 15/43] add response parameters to Error --- lib/ebay_api.rb | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) diff --git a/lib/ebay_api.rb b/lib/ebay_api.rb index 0464d92..89d361d 100644 --- a/lib/ebay_api.rb +++ b/lib/ebay_api.rb @@ -93,20 +93,11 @@ class << self raise RequestLimitExceeded.new(code: code), message end - def self.get_error_id(data) - parameters = data.dig("errors",0,"parameters") - error = (parameters || []).find{|p| p["name"] == "errorId"} - (error || {}).dig("value") - rescue StandardError - nil - end - response(500) do |_, _, (data, *)| data = data.to_h code = data.dig("errors", 0, "errorId") message = data.dig("errors", 0, "longMessage") || data.dig("errors", 0, "message") - error_id = EbayAPI.get_error_id(data) - raise InternalServerError.new(code: code, error_id: error_id), message + raise InternalServerError.new(code: code, data: data), message end end From 8a7c3c92a85d41a262d089f486652993e89ecf22 Mon Sep 17 00:00:00 2001 From: yanmeng <974166167@qq.com> Date: Fri, 26 Jan 2024 12:22:34 +0800 Subject: [PATCH 16/43] add response parameters to Error --- lib/ebay_api/exceptions.rb | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/lib/ebay_api/exceptions.rb b/lib/ebay_api/exceptions.rb index 3e83bef..477d7e1 100644 --- a/lib/ebay_api/exceptions.rb +++ b/lib/ebay_api/exceptions.rb @@ -1,12 +1,11 @@ class EbayAPI class Error < RuntimeError - attr_reader :code, :data, :error_id + attr_reader :code, :data - def initialize(*args, code: nil, data: nil, error_id: nil, **) + def initialize(*args, code: nil, data: nil, **) super(*args) @code = code @data = data - @error_id = error_id end end From 7bf9a6f45f42ef3fd9129ee01384e1dd00a1e258 Mon Sep 17 00:00:00 2001 From: yanmeng <974166167@qq.com> Date: Mon, 4 Mar 2024 10:37:20 +0800 Subject: [PATCH 17/43] process ebaymag internal api. --- lib/ebay_api.rb | 3 ++- lib/ebay_api/operations/commerce.rb | 1 + lib/ebay_api/operations/commerce/internal.rb | 14 ++++++++++++++ .../operations/commerce/internal/send_message.rb | 13 +++++++++++++ 4 files changed, 30 insertions(+), 1 deletion(-) create mode 100644 lib/ebay_api/operations/commerce/internal.rb create mode 100644 lib/ebay_api/operations/commerce/internal/send_message.rb diff --git a/lib/ebay_api.rb b/lib/ebay_api.rb index 89d361d..200b1ff 100644 --- a/lib/ebay_api.rb +++ b/lib/ebay_api.rb @@ -46,7 +46,8 @@ class << self end format "json" - path { "https://api#{".sandbox" if sandbox}.ebay.com/" } + # path { "https://api#{".sandbox" if sandbox}.ebay.com/" } + path { "http://localhost:9090/" } middleware { [LogRequest, JSONResponse] } diff --git a/lib/ebay_api/operations/commerce.rb b/lib/ebay_api/operations/commerce.rb index 949702c..8cb6168 100644 --- a/lib/ebay_api/operations/commerce.rb +++ b/lib/ebay_api/operations/commerce.rb @@ -10,5 +10,6 @@ class EbayAPI require_relative "commerce/notification" require_relative "commerce/taxonomy" require_relative "commerce/translation" + require_relative "commerce/internal" end end diff --git a/lib/ebay_api/operations/commerce/internal.rb b/lib/ebay_api/operations/commerce/internal.rb new file mode 100644 index 0000000..9b60f94 --- /dev/null +++ b/lib/ebay_api/operations/commerce/internal.rb @@ -0,0 +1,14 @@ +class EbayAPI + scope :commerce do + # + # eBayMsa + # + # @see + # + scope :translation do + path { "internal/v1" } + + require_relative "internal/send_message" + end + end +end diff --git a/lib/ebay_api/operations/commerce/internal/send_message.rb b/lib/ebay_api/operations/commerce/internal/send_message.rb new file mode 100644 index 0000000..1033c84 --- /dev/null +++ b/lib/ebay_api/operations/commerce/internal/send_message.rb @@ -0,0 +1,13 @@ +class EbayAPI + scope :commerce do + scope :internal do + operation :send_message do + option :data, proc(&:to_h) # TODO: add model to validate input + + path { "/send_message" } + http_method :post + body { data } + end + end + end +end From 935198a93ca9cb43f2433942b0de80b91741decf Mon Sep 17 00:00:00 2001 From: yanmeng <974166167@qq.com> Date: Mon, 4 Mar 2024 10:44:18 +0800 Subject: [PATCH 18/43] process ebaymag internal api. --- lib/ebay_api/operations/commerce.rb | 2 +- lib/ebay_api/operations/commerce/ebaymagapi.rb | 14 ++++++++++++++ .../{internal => ebaymagapi}/send_message.rb | 0 lib/ebay_api/operations/commerce/internal.rb | 14 -------------- 4 files changed, 15 insertions(+), 15 deletions(-) create mode 100644 lib/ebay_api/operations/commerce/ebaymagapi.rb rename lib/ebay_api/operations/commerce/{internal => ebaymagapi}/send_message.rb (100%) delete mode 100644 lib/ebay_api/operations/commerce/internal.rb diff --git a/lib/ebay_api/operations/commerce.rb b/lib/ebay_api/operations/commerce.rb index 8cb6168..430c5f8 100644 --- a/lib/ebay_api/operations/commerce.rb +++ b/lib/ebay_api/operations/commerce.rb @@ -10,6 +10,6 @@ class EbayAPI require_relative "commerce/notification" require_relative "commerce/taxonomy" require_relative "commerce/translation" - require_relative "commerce/internal" + require_relative "commerce/ebaymagapi" end end diff --git a/lib/ebay_api/operations/commerce/ebaymagapi.rb b/lib/ebay_api/operations/commerce/ebaymagapi.rb new file mode 100644 index 0000000..cc4dce4 --- /dev/null +++ b/lib/ebay_api/operations/commerce/ebaymagapi.rb @@ -0,0 +1,14 @@ +class EbayAPI + scope :commerce do + # + # eBayMsa + # + # @see + # + scope :internal do + path { "ebaymagapi/v1" } + + require_relative "ebaymagapi/send_message" + end + end +end diff --git a/lib/ebay_api/operations/commerce/internal/send_message.rb b/lib/ebay_api/operations/commerce/ebaymagapi/send_message.rb similarity index 100% rename from lib/ebay_api/operations/commerce/internal/send_message.rb rename to lib/ebay_api/operations/commerce/ebaymagapi/send_message.rb diff --git a/lib/ebay_api/operations/commerce/internal.rb b/lib/ebay_api/operations/commerce/internal.rb deleted file mode 100644 index 9b60f94..0000000 --- a/lib/ebay_api/operations/commerce/internal.rb +++ /dev/null @@ -1,14 +0,0 @@ -class EbayAPI - scope :commerce do - # - # eBayMsa - # - # @see - # - scope :translation do - path { "internal/v1" } - - require_relative "internal/send_message" - end - end -end From 10ee0cdf2b2ed9cde3d5a3c822674531c93bafa6 Mon Sep 17 00:00:00 2001 From: yanmeng <974166167@qq.com> Date: Mon, 4 Mar 2024 10:49:25 +0800 Subject: [PATCH 19/43] process ebaymag internal api. --- lib/ebay_api/operations/commerce/ebaymagapi.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/ebay_api/operations/commerce/ebaymagapi.rb b/lib/ebay_api/operations/commerce/ebaymagapi.rb index cc4dce4..518ef69 100644 --- a/lib/ebay_api/operations/commerce/ebaymagapi.rb +++ b/lib/ebay_api/operations/commerce/ebaymagapi.rb @@ -5,7 +5,7 @@ class EbayAPI # # @see # - scope :internal do + scope :ebaymagapi do path { "ebaymagapi/v1" } require_relative "ebaymagapi/send_message" From fae610ea7e4d637475f5aa0c38072c57fb9f88b0 Mon Sep 17 00:00:00 2001 From: yanmeng <974166167@qq.com> Date: Mon, 4 Mar 2024 11:19:12 +0800 Subject: [PATCH 20/43] process ebaymag internal api. --- lib/ebay_api/operations/commerce/ebaymagapi/send_message.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/ebay_api/operations/commerce/ebaymagapi/send_message.rb b/lib/ebay_api/operations/commerce/ebaymagapi/send_message.rb index 1033c84..b481911 100644 --- a/lib/ebay_api/operations/commerce/ebaymagapi/send_message.rb +++ b/lib/ebay_api/operations/commerce/ebaymagapi/send_message.rb @@ -1,6 +1,6 @@ class EbayAPI scope :commerce do - scope :internal do + scope :ebaymagapi do operation :send_message do option :data, proc(&:to_h) # TODO: add model to validate input From dd6083f6f55b2dc4e10d425a9e1cc0f7d36c1fd1 Mon Sep 17 00:00:00 2001 From: yanmeng <974166167@qq.com> Date: Mon, 4 Mar 2024 11:25:47 +0800 Subject: [PATCH 21/43] process ebaymag internal api. --- lib/ebay_api/operations/commerce.rb | 2 +- lib/ebay_api/operations/ebaymagapi.rb | 12 ++++++++++++ .../{commerce => ebaymagapi}/ebaymagapi.rb | 6 +++--- .../send_message}/send_message.rb | 2 +- 4 files changed, 17 insertions(+), 5 deletions(-) create mode 100644 lib/ebay_api/operations/ebaymagapi.rb rename lib/ebay_api/operations/{commerce => ebaymagapi}/ebaymagapi.rb (50%) rename lib/ebay_api/operations/{commerce/ebaymagapi => ebaymagapi/send_message}/send_message.rb (91%) diff --git a/lib/ebay_api/operations/commerce.rb b/lib/ebay_api/operations/commerce.rb index 430c5f8..952a321 100644 --- a/lib/ebay_api/operations/commerce.rb +++ b/lib/ebay_api/operations/commerce.rb @@ -10,6 +10,6 @@ class EbayAPI require_relative "commerce/notification" require_relative "commerce/taxonomy" require_relative "commerce/translation" - require_relative "commerce/ebaymagapi" + require_relative "commerce/i/ebaymagapi" end end diff --git a/lib/ebay_api/operations/ebaymagapi.rb b/lib/ebay_api/operations/ebaymagapi.rb new file mode 100644 index 0000000..63ef5d6 --- /dev/null +++ b/lib/ebay_api/operations/ebaymagapi.rb @@ -0,0 +1,12 @@ +class EbayAPI + # + # eBay Commerce APIs + # + # @see https://developer.ebay.com/api-docs/commerce/static/commerce-landing.html + # + scope :commerce do + path "ebaymagapi" + + require_relative "ebaymagapi/ebaymagapi" + end +end diff --git a/lib/ebay_api/operations/commerce/ebaymagapi.rb b/lib/ebay_api/operations/ebaymagapi/ebaymagapi.rb similarity index 50% rename from lib/ebay_api/operations/commerce/ebaymagapi.rb rename to lib/ebay_api/operations/ebaymagapi/ebaymagapi.rb index 518ef69..f7cd3b0 100644 --- a/lib/ebay_api/operations/commerce/ebaymagapi.rb +++ b/lib/ebay_api/operations/ebaymagapi/ebaymagapi.rb @@ -1,14 +1,14 @@ class EbayAPI - scope :commerce do + scope :ebaymagapi do # # eBayMsa # # @see # scope :ebaymagapi do - path { "ebaymagapi/v1" } + path { "v1" } - require_relative "ebaymagapi/send_message" + require_relative "send_message/send_message" end end end diff --git a/lib/ebay_api/operations/commerce/ebaymagapi/send_message.rb b/lib/ebay_api/operations/ebaymagapi/send_message/send_message.rb similarity index 91% rename from lib/ebay_api/operations/commerce/ebaymagapi/send_message.rb rename to lib/ebay_api/operations/ebaymagapi/send_message/send_message.rb index b481911..5dd235a 100644 --- a/lib/ebay_api/operations/commerce/ebaymagapi/send_message.rb +++ b/lib/ebay_api/operations/ebaymagapi/send_message/send_message.rb @@ -1,5 +1,5 @@ class EbayAPI - scope :commerce do + scope :ebaymagapi do scope :ebaymagapi do operation :send_message do option :data, proc(&:to_h) # TODO: add model to validate input From b7c7780a236ff7b2433274b7adac70523acfa00b Mon Sep 17 00:00:00 2001 From: yanmeng <974166167@qq.com> Date: Mon, 4 Mar 2024 11:29:23 +0800 Subject: [PATCH 22/43] process ebaymag internal api. --- lib/ebay_api/operations.rb | 1 + lib/ebay_api/operations/ebaymagapi.rb | 4 ++-- .../operations/ebaymagapi/send_message/send_message.rb | 2 +- lib/ebay_api/operations/ebaymagapi/{ebaymagapi.rb => v1.rb} | 2 +- 4 files changed, 5 insertions(+), 4 deletions(-) rename lib/ebay_api/operations/ebaymagapi/{ebaymagapi.rb => v1.rb} (87%) diff --git a/lib/ebay_api/operations.rb b/lib/ebay_api/operations.rb index ed2095a..9e5afdf 100644 --- a/lib/ebay_api/operations.rb +++ b/lib/ebay_api/operations.rb @@ -1,3 +1,4 @@ require_relative "operations/sell" require_relative "operations/developer" require_relative "operations/commerce" +require_relative "operations/ebaymagapi" diff --git a/lib/ebay_api/operations/ebaymagapi.rb b/lib/ebay_api/operations/ebaymagapi.rb index 63ef5d6..15b3142 100644 --- a/lib/ebay_api/operations/ebaymagapi.rb +++ b/lib/ebay_api/operations/ebaymagapi.rb @@ -4,9 +4,9 @@ class EbayAPI # # @see https://developer.ebay.com/api-docs/commerce/static/commerce-landing.html # - scope :commerce do + scope :ebaymagapi do path "ebaymagapi" - require_relative "ebaymagapi/ebaymagapi" + require_relative "ebaymagapi/v1" end end diff --git a/lib/ebay_api/operations/ebaymagapi/send_message/send_message.rb b/lib/ebay_api/operations/ebaymagapi/send_message/send_message.rb index 5dd235a..a532bc3 100644 --- a/lib/ebay_api/operations/ebaymagapi/send_message/send_message.rb +++ b/lib/ebay_api/operations/ebaymagapi/send_message/send_message.rb @@ -1,6 +1,6 @@ class EbayAPI scope :ebaymagapi do - scope :ebaymagapi do + scope :v1 do operation :send_message do option :data, proc(&:to_h) # TODO: add model to validate input diff --git a/lib/ebay_api/operations/ebaymagapi/ebaymagapi.rb b/lib/ebay_api/operations/ebaymagapi/v1.rb similarity index 87% rename from lib/ebay_api/operations/ebaymagapi/ebaymagapi.rb rename to lib/ebay_api/operations/ebaymagapi/v1.rb index f7cd3b0..098ada3 100644 --- a/lib/ebay_api/operations/ebaymagapi/ebaymagapi.rb +++ b/lib/ebay_api/operations/ebaymagapi/v1.rb @@ -5,7 +5,7 @@ class EbayAPI # # @see # - scope :ebaymagapi do + scope :v1 do path { "v1" } require_relative "send_message/send_message" From 9fafb9d298019e143d1eef86d9dca85b4c1b8f55 Mon Sep 17 00:00:00 2001 From: yanmeng <974166167@qq.com> Date: Mon, 4 Mar 2024 11:32:35 +0800 Subject: [PATCH 23/43] process ebaymag internal api. --- lib/ebay_api/operations/commerce.rb | 1 - 1 file changed, 1 deletion(-) diff --git a/lib/ebay_api/operations/commerce.rb b/lib/ebay_api/operations/commerce.rb index 952a321..949702c 100644 --- a/lib/ebay_api/operations/commerce.rb +++ b/lib/ebay_api/operations/commerce.rb @@ -10,6 +10,5 @@ class EbayAPI require_relative "commerce/notification" require_relative "commerce/taxonomy" require_relative "commerce/translation" - require_relative "commerce/i/ebaymagapi" end end From cceb67f2372ec59619274a079faa16ec7a393f6d Mon Sep 17 00:00:00 2001 From: yanmeng <974166167@qq.com> Date: Mon, 4 Mar 2024 11:43:44 +0800 Subject: [PATCH 24/43] change url --- lib/ebay_api.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/ebay_api.rb b/lib/ebay_api.rb index 200b1ff..8b49f28 100644 --- a/lib/ebay_api.rb +++ b/lib/ebay_api.rb @@ -47,7 +47,7 @@ class << self format "json" # path { "https://api#{".sandbox" if sandbox}.ebay.com/" } - path { "http://localhost:9090/" } + path { "http://localhost:5050/" } middleware { [LogRequest, JSONResponse] } From 288f69081c5ed4ed9a0042a8f6f6ba4c02ff2a23 Mon Sep 17 00:00:00 2001 From: yanmeng <974166167@qq.com> Date: Thu, 21 Mar 2024 15:32:49 +0800 Subject: [PATCH 25/43] change to real url --- lib/ebay_api.rb | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/lib/ebay_api.rb b/lib/ebay_api.rb index 8b49f28..89d361d 100644 --- a/lib/ebay_api.rb +++ b/lib/ebay_api.rb @@ -46,8 +46,7 @@ class << self end format "json" - # path { "https://api#{".sandbox" if sandbox}.ebay.com/" } - path { "http://localhost:5050/" } + path { "https://api#{".sandbox" if sandbox}.ebay.com/" } middleware { [LogRequest, JSONResponse] } From 9d0450f0dccc7aaa7b52da94be72da638492e221 Mon Sep 17 00:00:00 2001 From: yanmeng <974166167@qq.com> Date: Thu, 21 Mar 2024 16:22:34 +0800 Subject: [PATCH 26/43] add poll message --- .../ebaymagapi/operations/poll_message.rb | 13 +++++++++++++ .../{send_message => operations}/send_message.rb | 2 +- lib/ebay_api/operations/ebaymagapi/v1.rb | 3 ++- 3 files changed, 16 insertions(+), 2 deletions(-) create mode 100644 lib/ebay_api/operations/ebaymagapi/operations/poll_message.rb rename lib/ebay_api/operations/ebaymagapi/{send_message => operations}/send_message.rb (73%) diff --git a/lib/ebay_api/operations/ebaymagapi/operations/poll_message.rb b/lib/ebay_api/operations/ebaymagapi/operations/poll_message.rb new file mode 100644 index 0000000..4c5fe8b --- /dev/null +++ b/lib/ebay_api/operations/ebaymagapi/operations/poll_message.rb @@ -0,0 +1,13 @@ +class EbayAPI + scope :ebaymagapi do + scope :v1 do + operation :poll_message do + option :data, proc(&:to_h) + + path { "/poll_message" } + http_method :post + body { data } + end + end + end +end diff --git a/lib/ebay_api/operations/ebaymagapi/send_message/send_message.rb b/lib/ebay_api/operations/ebaymagapi/operations/send_message.rb similarity index 73% rename from lib/ebay_api/operations/ebaymagapi/send_message/send_message.rb rename to lib/ebay_api/operations/ebaymagapi/operations/send_message.rb index a532bc3..c3d6fe5 100644 --- a/lib/ebay_api/operations/ebaymagapi/send_message/send_message.rb +++ b/lib/ebay_api/operations/ebaymagapi/operations/send_message.rb @@ -2,7 +2,7 @@ class EbayAPI scope :ebaymagapi do scope :v1 do operation :send_message do - option :data, proc(&:to_h) # TODO: add model to validate input + option :data, proc(&:to_h) path { "/send_message" } http_method :post diff --git a/lib/ebay_api/operations/ebaymagapi/v1.rb b/lib/ebay_api/operations/ebaymagapi/v1.rb index 098ada3..b458342 100644 --- a/lib/ebay_api/operations/ebaymagapi/v1.rb +++ b/lib/ebay_api/operations/ebaymagapi/v1.rb @@ -8,7 +8,8 @@ class EbayAPI scope :v1 do path { "v1" } - require_relative "send_message/send_message" + require_relative "operations/send_message" + require_relative "operations/poll_message" end end end From 7ee8235ba9e3f26364521f5801ba1321adfacea9 Mon Sep 17 00:00:00 2001 From: yanmeng <974166167@qq.com> Date: Mon, 8 Jul 2024 09:46:16 +0800 Subject: [PATCH 27/43] get compatibility properties --- .../get_compatibility_properties.rb | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 lib/ebay_api/operations/commerce/taxonomy/category_tree/get_compatibility_properties.rb diff --git a/lib/ebay_api/operations/commerce/taxonomy/category_tree/get_compatibility_properties.rb b/lib/ebay_api/operations/commerce/taxonomy/category_tree/get_compatibility_properties.rb new file mode 100644 index 0000000..7676577 --- /dev/null +++ b/lib/ebay_api/operations/commerce/taxonomy/category_tree/get_compatibility_properties.rb @@ -0,0 +1,16 @@ +class EbayAPI + scope :commerce do + scope :taxonomy do + scope :category_tree do + # @see https://developer.ebay.com/api-docs/commerce/taxonomy/resources/category_tree/methods/getCompatibilityProperties + operation :get_compatibility_properties do + option :category_id, proc(&:to_s) + + path { "get_compatibility_properties" } + query { { category_id: category_id } } + http_method :get + end + end + end + end +end From 0594c63e92d6f9ba0858d1ac83d1ab5eb62951bf Mon Sep 17 00:00:00 2001 From: yanmeng <974166167@qq.com> Date: Mon, 8 Jul 2024 09:56:13 +0800 Subject: [PATCH 28/43] get compatibility properties --- lib/ebay_api/operations/commerce/taxonomy/category_tree.rb | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/ebay_api/operations/commerce/taxonomy/category_tree.rb b/lib/ebay_api/operations/commerce/taxonomy/category_tree.rb index 82afabc..a669125 100644 --- a/lib/ebay_api/operations/commerce/taxonomy/category_tree.rb +++ b/lib/ebay_api/operations/commerce/taxonomy/category_tree.rb @@ -15,6 +15,7 @@ class EbayAPI require_relative "category_tree/get_category_suggestions" require_relative "category_tree/get_item_aspects_for_category" require_relative "category_tree/fetch_item_aspects" + require_relative "category_tree/get_compatibility_properties" end end end From 9cbbefe9fe1bc59534e87a7d4ba9fb228484664b Mon Sep 17 00:00:00 2001 From: yanmeng <974166167@qq.com> Date: Mon, 8 Jul 2024 16:21:43 +0800 Subject: [PATCH 29/43] get compatibility properties --- lib/ebay_api/middlewares/log_request.rb | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/lib/ebay_api/middlewares/log_request.rb b/lib/ebay_api/middlewares/log_request.rb index 8c7654c..db1944d 100644 --- a/lib/ebay_api/middlewares/log_request.rb +++ b/lib/ebay_api/middlewares/log_request.rb @@ -20,6 +20,7 @@ def log_info(key, data = nil) end def log_request(env) + log_api_request_log(env) return unless logger log_info "REQUEST:" log_info "Url", env["PATH_INFO"] @@ -29,6 +30,7 @@ def log_request(env) end def log_response(output) + log_api_response_log(output) return unless logger status, headers, body = output log_info "RESPONSE:" @@ -37,4 +39,21 @@ def log_response(output) log_info "Body", body end end + + def log_api_request_log(env) + return unless Thread.current[:request_listing_id] || Thread.current[:request_account_id] + + Thread.current[:request_callname] = env["REQUEST_METHOD"] + Thread.current[:request_url] = env["PATH_INFO"] + Thread.current[:request_headers] = env["HTTP_Variables"] + Thread.current[:request_body] = env["rack.input"] + end + + def log_api_response_log(output) + return unless Thread.current[:request_listing_id] || Thread.current[:request_account_id] + + status, headers, body = output + Thread.current[:response_headers] = headers + Thread.current[:response_body] = body + end end From 6454e1552e79cfee7978afc60ad52ebfd860d7a7 Mon Sep 17 00:00:00 2001 From: yanmeng <974166167@qq.com> Date: Mon, 8 Jul 2024 18:20:24 +0800 Subject: [PATCH 30/43] add log --- lib/ebay_api/middlewares/log_request.rb | 32 +++++++++++++------------ 1 file changed, 17 insertions(+), 15 deletions(-) diff --git a/lib/ebay_api/middlewares/log_request.rb b/lib/ebay_api/middlewares/log_request.rb index db1944d..08f2936 100644 --- a/lib/ebay_api/middlewares/log_request.rb +++ b/lib/ebay_api/middlewares/log_request.rb @@ -19,6 +19,23 @@ def log_info(key, data = nil) logger.info "[EbayAPI] | #{format('%9s', key)} | #{data}" end + def log_api_request_log(env) + return unless Thread.current[:request_listing_id] || Thread.current[:request_account_id] + + Thread.current[:request_callname] = env["REQUEST_METHOD"] + Thread.current[:request_url] = env["PATH_INFO"] + Thread.current[:request_headers] = env["HTTP_Variables"] + Thread.current[:request_body] = env["rack.input"] + end + + def log_api_response_log(output) + return unless Thread.current[:request_listing_id] || Thread.current[:request_account_id] + + status, headers, body = output + Thread.current[:response_headers] = headers + Thread.current[:response_body] = body + end + def log_request(env) log_api_request_log(env) return unless logger @@ -40,20 +57,5 @@ def log_response(output) end end - def log_api_request_log(env) - return unless Thread.current[:request_listing_id] || Thread.current[:request_account_id] - - Thread.current[:request_callname] = env["REQUEST_METHOD"] - Thread.current[:request_url] = env["PATH_INFO"] - Thread.current[:request_headers] = env["HTTP_Variables"] - Thread.current[:request_body] = env["rack.input"] - end - def log_api_response_log(output) - return unless Thread.current[:request_listing_id] || Thread.current[:request_account_id] - - status, headers, body = output - Thread.current[:response_headers] = headers - Thread.current[:response_body] = body - end end From 7702115d265e2def771f313815c84d93fca056c2 Mon Sep 17 00:00:00 2001 From: yanmeng <974166167@qq.com> Date: Tue, 9 Jul 2024 08:42:53 +0800 Subject: [PATCH 31/43] add log --- lib/ebay_api/middlewares/log_request.rb | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/lib/ebay_api/middlewares/log_request.rb b/lib/ebay_api/middlewares/log_request.rb index 08f2936..c4d592a 100644 --- a/lib/ebay_api/middlewares/log_request.rb +++ b/lib/ebay_api/middlewares/log_request.rb @@ -19,8 +19,9 @@ def log_info(key, data = nil) logger.info "[EbayAPI] | #{format('%9s', key)} | #{data}" end + APIS = %w(PUT DELETE POST) def log_api_request_log(env) - return unless Thread.current[:request_listing_id] || Thread.current[:request_account_id] + return unless APIS.include?(env["REQUEST_METHOD"]) Thread.current[:request_callname] = env["REQUEST_METHOD"] Thread.current[:request_url] = env["PATH_INFO"] @@ -29,7 +30,7 @@ def log_api_request_log(env) end def log_api_response_log(output) - return unless Thread.current[:request_listing_id] || Thread.current[:request_account_id] + return unless Thread.current[:request_callname] status, headers, body = output Thread.current[:response_headers] = headers From ce1448a306055ad024d2efac49a6baf8ef77038d Mon Sep 17 00:00:00 2001 From: yanmeng <974166167@qq.com> Date: Tue, 9 Jul 2024 16:39:08 +0800 Subject: [PATCH 32/43] add response code --- lib/ebay_api/middlewares/log_request.rb | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lib/ebay_api/middlewares/log_request.rb b/lib/ebay_api/middlewares/log_request.rb index c4d592a..3d9c4cb 100644 --- a/lib/ebay_api/middlewares/log_request.rb +++ b/lib/ebay_api/middlewares/log_request.rb @@ -27,6 +27,7 @@ def log_api_request_log(env) Thread.current[:request_url] = env["PATH_INFO"] Thread.current[:request_headers] = env["HTTP_Variables"] Thread.current[:request_body] = env["rack.input"] + Thread.current[:request_restful] = true end def log_api_response_log(output) @@ -35,6 +36,7 @@ def log_api_response_log(output) status, headers, body = output Thread.current[:response_headers] = headers Thread.current[:response_body] = body + Thread.current[:response_code] = status end def log_request(env) From bd70681999bd0e6c1db12a683f4fb10fa40e429f Mon Sep 17 00:00:00 2001 From: yanmeng <974166167@qq.com> Date: Tue, 9 Jul 2024 16:49:13 +0800 Subject: [PATCH 33/43] add response code --- lib/ebay_api/middlewares/log_request.rb | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lib/ebay_api/middlewares/log_request.rb b/lib/ebay_api/middlewares/log_request.rb index 3d9c4cb..88d6189 100644 --- a/lib/ebay_api/middlewares/log_request.rb +++ b/lib/ebay_api/middlewares/log_request.rb @@ -6,6 +6,7 @@ def initialize(app) def call(env) log_request(env) + @start_time = Time.now @app.call(env).tap { |output| log_response(output) } end @@ -37,6 +38,7 @@ def log_api_response_log(output) Thread.current[:response_headers] = headers Thread.current[:response_body] = body Thread.current[:response_code] = status + Thread.current[:response_time] = Time.now = @start_time end def log_request(env) From d0b2444ffb6179d2d168b5ea1f5dced3557293e2 Mon Sep 17 00:00:00 2001 From: yanmeng <974166167@qq.com> Date: Wed, 10 Jul 2024 10:08:16 +0800 Subject: [PATCH 34/43] catch some error --- lib/ebay_api/middlewares/log_request.rb | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/lib/ebay_api/middlewares/log_request.rb b/lib/ebay_api/middlewares/log_request.rb index 88d6189..9e0e5da 100644 --- a/lib/ebay_api/middlewares/log_request.rb +++ b/lib/ebay_api/middlewares/log_request.rb @@ -29,6 +29,8 @@ def log_api_request_log(env) Thread.current[:request_headers] = env["HTTP_Variables"] Thread.current[:request_body] = env["rack.input"] Thread.current[:request_restful] = true + rescue StandardError + nil end def log_api_response_log(output) @@ -39,6 +41,8 @@ def log_api_response_log(output) Thread.current[:response_body] = body Thread.current[:response_code] = status Thread.current[:response_time] = Time.now = @start_time + rescue StandardError + nil end def log_request(env) From ebb613cb818df09063260de00370aac1b4e0d40e Mon Sep 17 00:00:00 2001 From: yanmeng <974166167@qq.com> Date: Wed, 10 Jul 2024 10:28:05 +0800 Subject: [PATCH 35/43] catch some error --- lib/ebay_api/middlewares/log_request.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/ebay_api/middlewares/log_request.rb b/lib/ebay_api/middlewares/log_request.rb index 9e0e5da..087bab4 100644 --- a/lib/ebay_api/middlewares/log_request.rb +++ b/lib/ebay_api/middlewares/log_request.rb @@ -40,7 +40,7 @@ def log_api_response_log(output) Thread.current[:response_headers] = headers Thread.current[:response_body] = body Thread.current[:response_code] = status - Thread.current[:response_time] = Time.now = @start_time + Thread.current[:response_time] = Time.now - @start_time rescue StandardError nil end From 2804802fc3798243b88b15c33ef453bc508b34bf Mon Sep 17 00:00:00 2001 From: yanmeng <974166167@qq.com> Date: Thu, 11 Jul 2024 08:12:30 +0800 Subject: [PATCH 36/43] add get_compatibility_property_values --- .../get_compatibility_property_values.rb | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 lib/ebay_api/operations/commerce/taxonomy/category_tree/get_compatibility_property_values.rb diff --git a/lib/ebay_api/operations/commerce/taxonomy/category_tree/get_compatibility_property_values.rb b/lib/ebay_api/operations/commerce/taxonomy/category_tree/get_compatibility_property_values.rb new file mode 100644 index 0000000..b909b4b --- /dev/null +++ b/lib/ebay_api/operations/commerce/taxonomy/category_tree/get_compatibility_property_values.rb @@ -0,0 +1,16 @@ +class EbayAPI + scope :commerce do + scope :taxonomy do + scope :category_tree do + # @see https://developer.ebay.com/api-docs/commerce/taxonomy/resources/category_tree/methods/getCompatibilityPropertyValues + operation :get_compatibility_property_values do + option :category_id, proc(&:to_s) + + path { "get_compatibility_property_values" } + query { { category_id: category_id } } + http_method :get + end + end + end + end +end From 5d261e567cf74abe0b9117a221ad66442b2040fd Mon Sep 17 00:00:00 2001 From: yanmeng <974166167@qq.com> Date: Thu, 10 Oct 2024 16:26:54 +0800 Subject: [PATCH 37/43] media document apis --- lib/ebay_api/operations/commerce.rb | 1 + lib/ebay_api/operations/commerce/media.rb | 14 ++++++++++++++ .../operations/commerce/media/document.rb | 16 ++++++++++++++++ .../commerce/media/document/create.rb | 18 ++++++++++++++++++ .../operations/commerce/media/document/get.rb | 17 +++++++++++++++++ .../commerce/media/document/upload.rb | 19 +++++++++++++++++++ 6 files changed, 85 insertions(+) create mode 100644 lib/ebay_api/operations/commerce/media.rb create mode 100644 lib/ebay_api/operations/commerce/media/document.rb create mode 100644 lib/ebay_api/operations/commerce/media/document/create.rb create mode 100644 lib/ebay_api/operations/commerce/media/document/get.rb create mode 100644 lib/ebay_api/operations/commerce/media/document/upload.rb diff --git a/lib/ebay_api/operations/commerce.rb b/lib/ebay_api/operations/commerce.rb index 949702c..205eb00 100644 --- a/lib/ebay_api/operations/commerce.rb +++ b/lib/ebay_api/operations/commerce.rb @@ -10,5 +10,6 @@ class EbayAPI require_relative "commerce/notification" require_relative "commerce/taxonomy" require_relative "commerce/translation" + require_relative "commerce/media" end end diff --git a/lib/ebay_api/operations/commerce/media.rb b/lib/ebay_api/operations/commerce/media.rb new file mode 100644 index 0000000..407d8f4 --- /dev/null +++ b/lib/ebay_api/operations/commerce/media.rb @@ -0,0 +1,14 @@ +class EbayAPI + scope :commerce do + # + # eBay Commerce Media API Overview + # + # @see https://developer.ebay.com/api-docs/commerce/media/overview.html + # + scope :media do + path { "media/v1_beta" } + + require_relative "media/document" + end + end +end diff --git a/lib/ebay_api/operations/commerce/media/document.rb b/lib/ebay_api/operations/commerce/media/document.rb new file mode 100644 index 0000000..897b637 --- /dev/null +++ b/lib/ebay_api/operations/commerce/media/document.rb @@ -0,0 +1,16 @@ +class EbayAPI + scope :commerce do + # + # eBay Commerce Media API about document + # + scope :media do + scope :document do + path { "document" } + + require_relative "document/get" + require_relative "document/create" + require_relative "document/upload" + end + end + end +end diff --git a/lib/ebay_api/operations/commerce/media/document/create.rb b/lib/ebay_api/operations/commerce/media/document/create.rb new file mode 100644 index 0000000..2010753 --- /dev/null +++ b/lib/ebay_api/operations/commerce/media/document/create.rb @@ -0,0 +1,18 @@ +class EbayAPI + scope :commerce do + scope :media do + scope :document do + # + # https://developer.ebay.com/api-docs/commerce/media/resources/document/methods/createDocument + # + operation :create do + option :data, proc(&:to_h) + + path { "/" } + http_method :post + body { data } + end + end + end + end +end diff --git a/lib/ebay_api/operations/commerce/media/document/get.rb b/lib/ebay_api/operations/commerce/media/document/get.rb new file mode 100644 index 0000000..ccd6d06 --- /dev/null +++ b/lib/ebay_api/operations/commerce/media/document/get.rb @@ -0,0 +1,17 @@ +class EbayAPI + scope :commerce do + scope :media do + scope :document do + # + # https://developer.ebay.com/api-docs/commerce/media/resources/document/methods/getDocument + # + operation :get do + option :id, proc(&:to_s) + + path { id } + http_method :get + end + end + end + end +end diff --git a/lib/ebay_api/operations/commerce/media/document/upload.rb b/lib/ebay_api/operations/commerce/media/document/upload.rb new file mode 100644 index 0000000..92896c4 --- /dev/null +++ b/lib/ebay_api/operations/commerce/media/document/upload.rb @@ -0,0 +1,19 @@ +class EbayAPI + scope :commerce do + scope :media do + scope :document do + # + # https://developer.ebay.com/api-docs/commerce/media/resources/document/methods/uploadDocument + # + operation :upload do + option :id + option :file + + path { "#{id}/upload" } + http_method :post + body { data } + end + end + end + end +end From eafb91560bd0f007ad1ca26212bb234293b40455 Mon Sep 17 00:00:00 2001 From: yanmeng <974166167@qq.com> Date: Thu, 10 Oct 2024 17:18:48 +0800 Subject: [PATCH 38/43] media document apis --- lib/ebay_api.rb | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/ebay_api.rb b/lib/ebay_api.rb index 89d361d..0af975f 100644 --- a/lib/ebay_api.rb +++ b/lib/ebay_api.rb @@ -38,6 +38,7 @@ class << self option :sandbox, true.method(:&), default: proc { false } option :gzip, true.method(:&), default: proc { false } option :user_agent, method(:String), optional: true + option :form_data?, optional: true, default: false validate do next unless language && site @@ -62,7 +63,7 @@ class << self "User-Agent": user_agent, "X-Ruby-Client": "https://github.com/nepalez/ebay_api", "X-Ruby-Framework": "https://github.com/evilmartians/evil-client" - }.compact + }.merge(form_data? ? { "Content-Type": "multipart/form-data" } : {}).compact end response(200, 201) { |_, _, (data, *)| data } From 8be660bf262753a7c97f81274e7819ef21105545 Mon Sep 17 00:00:00 2001 From: yanmeng <974166167@qq.com> Date: Thu, 10 Oct 2024 17:32:00 +0800 Subject: [PATCH 39/43] media document apis --- lib/ebay_api.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/ebay_api.rb b/lib/ebay_api.rb index 0af975f..2d1f9e6 100644 --- a/lib/ebay_api.rb +++ b/lib/ebay_api.rb @@ -38,7 +38,7 @@ class << self option :sandbox, true.method(:&), default: proc { false } option :gzip, true.method(:&), default: proc { false } option :user_agent, method(:String), optional: true - option :form_data?, optional: true, default: false + option :form, optional: true, default: false validate do next unless language && site @@ -63,7 +63,7 @@ class << self "User-Agent": user_agent, "X-Ruby-Client": "https://github.com/nepalez/ebay_api", "X-Ruby-Framework": "https://github.com/evilmartians/evil-client" - }.merge(form_data? ? { "Content-Type": "multipart/form-data" } : {}).compact + }.merge(form ? { "Content-Type": "multipart/form-data" } : {}).compact end response(200, 201) { |_, _, (data, *)| data } From 7a9d6aef03f945ac804b06482f5ae0bfe483880a Mon Sep 17 00:00:00 2001 From: yanmeng <974166167@qq.com> Date: Sat, 12 Oct 2024 15:44:22 +0800 Subject: [PATCH 40/43] api log --- lib/ebay_api/middlewares/log_request.rb | 3 --- 1 file changed, 3 deletions(-) diff --git a/lib/ebay_api/middlewares/log_request.rb b/lib/ebay_api/middlewares/log_request.rb index 087bab4..63fcd62 100644 --- a/lib/ebay_api/middlewares/log_request.rb +++ b/lib/ebay_api/middlewares/log_request.rb @@ -6,7 +6,6 @@ def initialize(app) def call(env) log_request(env) - @start_time = Time.now @app.call(env).tap { |output| log_response(output) } end @@ -26,7 +25,6 @@ def log_api_request_log(env) Thread.current[:request_callname] = env["REQUEST_METHOD"] Thread.current[:request_url] = env["PATH_INFO"] - Thread.current[:request_headers] = env["HTTP_Variables"] Thread.current[:request_body] = env["rack.input"] Thread.current[:request_restful] = true rescue StandardError @@ -40,7 +38,6 @@ def log_api_response_log(output) Thread.current[:response_headers] = headers Thread.current[:response_body] = body Thread.current[:response_code] = status - Thread.current[:response_time] = Time.now - @start_time rescue StandardError nil end From 5d47e407f24dcef0d770a4726c4aaf5d2ee2ae98 Mon Sep 17 00:00:00 2001 From: yanmeng <974166167@qq.com> Date: Thu, 21 Nov 2024 11:34:28 +0800 Subject: [PATCH 41/43] api log --- lib/ebay_api/operations/commerce/media/document/upload.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/ebay_api/operations/commerce/media/document/upload.rb b/lib/ebay_api/operations/commerce/media/document/upload.rb index 92896c4..ff7a862 100644 --- a/lib/ebay_api/operations/commerce/media/document/upload.rb +++ b/lib/ebay_api/operations/commerce/media/document/upload.rb @@ -7,7 +7,7 @@ class EbayAPI # operation :upload do option :id - option :file + option :data path { "#{id}/upload" } http_method :post From c2a3b6b29442cb877fad7830a9925c9e0915f20e Mon Sep 17 00:00:00 2001 From: yanmeng <974166167@qq.com> Date: Thu, 21 Nov 2024 16:10:49 +0800 Subject: [PATCH 42/43] api log --- lib/ebay_api.rb | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/lib/ebay_api.rb b/lib/ebay_api.rb index 2d1f9e6..89d361d 100644 --- a/lib/ebay_api.rb +++ b/lib/ebay_api.rb @@ -38,7 +38,6 @@ class << self option :sandbox, true.method(:&), default: proc { false } option :gzip, true.method(:&), default: proc { false } option :user_agent, method(:String), optional: true - option :form, optional: true, default: false validate do next unless language && site @@ -63,7 +62,7 @@ class << self "User-Agent": user_agent, "X-Ruby-Client": "https://github.com/nepalez/ebay_api", "X-Ruby-Framework": "https://github.com/evilmartians/evil-client" - }.merge(form ? { "Content-Type": "multipart/form-data" } : {}).compact + }.compact end response(200, 201) { |_, _, (data, *)| data } From 61ac499c53aee0dd97a034e484a78704c436ec43 Mon Sep 17 00:00:00 2001 From: gaohan Date: Tue, 29 Apr 2025 15:24:02 +0800 Subject: [PATCH 43/43] add the send_batch_message api --- .../ebaymagapi/operations/send_batch_message.rb | 17 +++++++++++++++++ lib/ebay_api/operations/ebaymagapi/v1.rb | 1 + 2 files changed, 18 insertions(+) create mode 100644 lib/ebay_api/operations/ebaymagapi/operations/send_batch_message.rb diff --git a/lib/ebay_api/operations/ebaymagapi/operations/send_batch_message.rb b/lib/ebay_api/operations/ebaymagapi/operations/send_batch_message.rb new file mode 100644 index 0000000..f97bae5 --- /dev/null +++ b/lib/ebay_api/operations/ebaymagapi/operations/send_batch_message.rb @@ -0,0 +1,17 @@ +class EbayAPI + scope :ebaymagapi do + scope :v1 do + operation :send_batch_message do + option :data do |value| + value.is_a?(Array) ? value : value.to_h + end + + path { "/send_batch_message" } + http_method :post + body { data } + end + end + end +end + + diff --git a/lib/ebay_api/operations/ebaymagapi/v1.rb b/lib/ebay_api/operations/ebaymagapi/v1.rb index b458342..74d52bd 100644 --- a/lib/ebay_api/operations/ebaymagapi/v1.rb +++ b/lib/ebay_api/operations/ebaymagapi/v1.rb @@ -10,6 +10,7 @@ class EbayAPI require_relative "operations/send_message" require_relative "operations/poll_message" + require_relative "operations/send_batch_message" end end end