From d760ca85347b8fdb4903d1bcb50e074b46f437c7 Mon Sep 17 00:00:00 2001 From: meriton Date: Sat, 13 Oct 2018 12:42:28 -0400 Subject: [PATCH] Modify to be compatible with NuGenie app --- lib/ebay_ruby/connect.rb | 27 +++++++++++++++------------ 1 file changed, 15 insertions(+), 12 deletions(-) diff --git a/lib/ebay_ruby/connect.rb b/lib/ebay_ruby/connect.rb index fe53027..0306310 100644 --- a/lib/ebay_ruby/connect.rb +++ b/lib/ebay_ruby/connect.rb @@ -3,45 +3,48 @@ class EbayConnect - def initialize(app_id) + def initialize(app_id:, campaign_id:) @app_id = app_id + @campaign_id = campaign_id end - attr_reader :app_id, :build_uri + attr_reader :app_id, :build_uri, :campaign_id def get_connect(url) response = Net::HTTP.get_response url response.body end - def find_items_by_keywords(search_keyword, per_page) + def find_items_by_keywords(search_keyword, per_page, page_number = 1) str = __method__.to_s.camelize operation_name = str.gsub(str.first, str.first.downcase) search_param = "keywords=#{URI::encode(search_keyword)}" - ebay_items = EbayFindItem.new(get_connect(build_uri(operation_name, search_param, per_page))) + ebay_items = EbayFindItem.new(get_connect(build_uri(operation_name, search_param, per_page, page_number))) ebay_items.all_items end - def find_items_by_category(category_id, per_page) + def find_items_by_category(category_id, per_page, page_number = 1) str = __method__.to_s.camelize operation_name = str.gsub(str.first, str.first.downcase) search_param = "categoryId=#{category_id}" - ebay_items = EbayFindItem.new(get_connect(build_uri(operation_name, search_param, per_page))) + ebay_items = EbayFindItem.new(get_connect(build_uri(operation_name, search_param, per_page, page_number))) ebay_items.all_items end #productId can be ISBN,UPC,EAN - def find_items_by_product(product_id, per_page) + def find_items_by_product(product_id, per_page, page_number = 1) str = __method__.to_s.camelize operation_name = str.gsub(str.first, str.first.downcase) search_param = "productId=#{product_id}" - ebay_items = EbayFindItem.new(get_connect(build_uri(operation_name, search_param, per_page))) + ebay_items = EbayFindItem.new(get_connect(build_uri(operation_name, search_param, per_page, page_number))) ebay_items.all_items end - private - def build_uri(operation_name, search_keyword, per_page) - uri_string = "http://svcs.ebay.com/services/search/FindingService/v1?OPERATION-NAME=#{operation_name}&SERVICE-VERSION=1.0.0&SECURITY-APPNAME=#{app_id}&GLOBAL-ID=EBAY-US&RESPONSE-DATA-FORMAT=JSON&#{search_keyword}&paginationInput.entriesPerPage=#{per_page.to_i}" + def build_uri(operation_name, search_keyword, per_page, page_number = 1) + uri_string = "http://svcs.ebay.com/services/search/FindingService/v1?OPERATION-NAME=#{operation_name}" \ + "&SERVICE-VERSION=1.0.0&SECURITY-APPNAME=#{app_id}&GLOBAL-ID=EBAY-US&RESPONSE-DATA-FORMAT=JSON" \ + "&#{search_keyword}&paginationInput.entriesPerPage=#{per_page.to_i}&paginationInput.pageNumber=#{page_number.to_i}" \ + "&affiliate.trackingId=#{campaign_id}&affiliate.networkId=9" URI(uri_string) end - end +end