From 7abefd5e9ee8db8a0ee7ddfcba43db3fa7b784ac Mon Sep 17 00:00:00 2001 From: Kenneth Gallego Date: Thu, 14 Aug 2025 08:50:39 +0200 Subject: [PATCH 1/2] Add Search endpoint --- .../services/product_management/search.rb | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 lib/beyond_api/services/product_management/search.rb diff --git a/lib/beyond_api/services/product_management/search.rb b/lib/beyond_api/services/product_management/search.rb new file mode 100644 index 0000000..dbfd2b5 --- /dev/null +++ b/lib/beyond_api/services/product_management/search.rb @@ -0,0 +1,23 @@ +# frozen_string_literal: true + +module BeyondApi + module ProductManagement + # @example How to instantiate a client + # @client = BeyondApi::ProductManagement::Search.new(api_url: 'https://example.com/api', access_token: 'your_token') + class Search < BaseService + # Sarch for products by a search term. Optionally, you can also filter the search results. + # + # @see https://developer.epages.com/beyond-docs/#product-search-result + # + # @return [Hash] + # + # @example + # @client.find({ search: { term: tag, category: 'TAGS' }, + # filters: [{ key: 'status', values: ['DRAFT'] }], + # paging: { page: 0, pageSize: 100 } }) + def find(body = {}) + post('products/search', body) + end + end + end +end From 4e9abb9f0d10f08e0b25fc149edf4bfd21137bca Mon Sep 17 00:00:00 2001 From: Kenneth Gallego Date: Thu, 14 Aug 2025 08:55:54 +0200 Subject: [PATCH 2/2] Separate body --- lib/beyond_api/services/product_management/search.rb | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/lib/beyond_api/services/product_management/search.rb b/lib/beyond_api/services/product_management/search.rb index dbfd2b5..cdc9671 100644 --- a/lib/beyond_api/services/product_management/search.rb +++ b/lib/beyond_api/services/product_management/search.rb @@ -12,9 +12,12 @@ class Search < BaseService # @return [Hash] # # @example - # @client.find({ search: { term: tag, category: 'TAGS' }, - # filters: [{ key: 'status', values: ['DRAFT'] }], - # paging: { page: 0, pageSize: 100 } }) + # body = { + # search: { term: tag, category: 'TAGS' }, + # filters: [{ key: 'status', values: ['DRAFT'] }], + # paging: { page: 0, pageSize: 100 } + # } + # @client.find(body) def find(body = {}) post('products/search', body) end