class EbayBrowseApi::EbayBrowseApiClient

Your code goes here…

Attributes

get_access_token_url[R]
search_url[R]
access_token[R]
client_id[R]
ebay_marketplace_id[R]
enc[R]
expire_date[R]
expires_in[R]
get_access_token_body[R]
get_access_token_headers[R]
get_access_token_json[R]
get_access_token_options[R]
get_access_token_resp[R]
init_time[R]
ru_name[R]
search_filter_params[R]
search_headers[R]
search_json[R]
search_options[R]
search_resp[R]
secret_id[R]

Public Class Methods

date_time(year: nil, month: nil, day: nil, diff_year: 0, diff_month: 0, diff_day: 0) click to toggle source
# File lib/ebay_browse_api.rb, line 30
def date_time(year: nil, month: nil, day: nil, diff_year: 0, diff_month: 0, diff_day: 0)
  now = DateTime.now
  DateTime.new((year || now.year) - diff_year,
               (month || now.month) - diff_month,
               (day || now.day) - diff_day).
    strftime("%Y-%m-%dT00:00:00Z")
end
new( ru_name: ENV["RU_NAME"], client_id: ENV["CLIENT_ID"], secret_id: ENV["SECRET_ID"], ebay_marketplace_id: "EBAY_US" ) click to toggle source
# File lib/ebay_browse_api.rb, line 44
def initialize(
  ru_name: ENV["RU_NAME"],
  client_id: ENV["CLIENT_ID"],
  secret_id: ENV["SECRET_ID"],
  ebay_marketplace_id: "EBAY_US"
)
  @init_time = nil
  @expires_in = nil
  @expire_date = nil
  @ru_name = ru_name
  @client_id = client_id
  @secret_id = secret_id
  @ebay_marketplace_id = ebay_marketplace_id
  @enc = Base64.encode64("#{@client_id}:#{@secret_id}").gsub(/\n/,'')
  @search_filter_params = {}
  @access_token = nil
  @get_access_token_resp = nil
  @get_access_token_json = nil
  @search_resp = nil
  @search_json = nil
  check_ebay_credentials
end
parse_json(json, **kwargs) click to toggle source
# File lib/ebay_browse_api.rb, line 21
def parse_json(json, **kwargs)
  begin
    ( json.is_a?(String) && !json.empty? ) ? hash = Oj.load(json, **kwargs) : hash = {}
  rescue Oj::ParseError
    hash = {}
  end
  hash
end

Public Instance Methods

add_search_param(param_name, param_value) click to toggle source
# File lib/ebay_browse_api.rb, line 107
def add_search_param(param_name, param_value)
  @search_filter_params[param_name] ||= String.new
  @search_filter_params[param_name] << "#{param_value}"
end
add_search_param_filter(param_name, param_value) click to toggle source
# File lib/ebay_browse_api.rb, line 112
def add_search_param_filter(param_name, param_value)
  @search_filter_params[:filter] ||= String.new
  @search_filter_params[:filter] << "&" unless @search_filter_params[:filter].empty?
  @search_filter_params[:filter] << "#{param_name}:#{param_value}"
end
clear_search_params() click to toggle source
# File lib/ebay_browse_api.rb, line 67
def clear_search_params
  @search_filter_params.clear
end
get_access_token() click to toggle source
# File lib/ebay_browse_api.rb, line 87
def get_access_token
  prepare_get_access_token
  @init_time = DateTime.now
  @get_access_token_resp = Typhoeus::Request.post(EbayBrowseApiClient.get_access_token_url, @get_access_token_options)
  @get_access_token_json = EbayBrowseApiClient.parse_json(@get_access_token_resp.response_body)
  @expires_in = @get_access_token_json.fetch('expires_in',nil).to_i
  @expire_date = @init_time + @expires_in
  @access_token = @get_access_token_json.fetch('access_token',nil)
end
prepare_get_access_token() click to toggle source
# File lib/ebay_browse_api.rb, line 71
def prepare_get_access_token
  @get_access_token_headers = {
    'Content-Type' => 'application/x-www-form-urlencoded',
    'Accept' => 'application/json',
    'Accept-Charset' => 'utf-8',
    'Authorization' => "Basic #{@enc}",
    'X-EBAY-C-MARKETPLACE-ID' => @ebay_marketplace_id,
  }
  @get_access_token_body = "grant_type=client_credentials&redirect_uri=#{@ru_name}&scope=https://api.ebay.com/oauth/api_scope"
  @get_access_token_options = {
    headers: @get_access_token_headers,
    followlocation: true,
    body: @get_access_token_body
  }
end

Private Instance Methods

check_ebay_credentials() click to toggle source
# File lib/ebay_browse_api.rb, line 131
def check_ebay_credentials
  vars = [:ru_name, :client_id, :secret_id, :ebay_marketplace_id]
  errors = []
  vars.each do |var_name|
    var_value = instance_variable_get(:"@#{var_name}")
    errors << var_name if var_value.nil? || var_value.to_s.empty?
  end
  unless errors.empty?
    raise EbayBrowseApi::Error.new("Please populate: #{errors}")
  end
end