class Api4Over::Client

Public Class Methods

new(private_key:, public_key:, mode: 'test') click to toggle source
# File lib/api4over.rb, line 10
def initialize(private_key:, public_key:, mode: 'test')
  @api_key = public_key
  @private_key = Digest::SHA256.hexdigest(private_key)
  @signature = OpenSSL::HMAC.hexdigest('sha256', @private_key, "GET")
  @mode = mode
end

Public Instance Methods

get_categories(options={}) click to toggle source
# File lib/api4over.rb, line 25
def get_categories(options={})
  Api4Over::PrintProducts.new.retrieve_categories(
    path: "/printproducts/categories", 
    parameters: build_parameters_for_product(options),
    mode: @mode
  )
end
get_option_groups(options={}) click to toggle source
# File lib/api4over.rb, line 33
def get_option_groups(options={})
  Api4Over::PrintProducts.new.retrieve_option_groups(
    path: "/printproducts/optiongroups", 
    parameters: build_parameters_for_product(options),
    mode: @mode
  )
end
get_organizations(options={}) click to toggle source
# File lib/api4over.rb, line 58
def get_organizations(options={})
  Api4Over::Organizations.new.retrieve_organizations(
    path: "/organizations", 
    parameters: build_parameters_for_product(options),
    mode: @mode
  )
end
get_product_feeds(options={}) click to toggle source
# File lib/api4over.rb, line 41
def get_product_feeds(options={})
  Api4Over::PrintProducts.new.retrieve_product_feeds(
    path: "/printproducts/productsfeed", 
    parameters: build_parameters_for_product(options),
    mode: @mode
  )
end
get_products(options={}) click to toggle source
# File lib/api4over.rb, line 17
def get_products(options={})
  Api4Over::PrintProducts.new.retrieve_products(
    path: "/printproducts/products", 
    parameters: build_parameters_for_product(options),
    mode: @mode
  )
end
get_quantity_discounts(options={}) click to toggle source
# File lib/api4over.rb, line 49
def get_quantity_discounts(options={})
  return {"status"=>"error", "status_code"=>400, "status_text"=>"Bad Request", "current_content"=>"", "message"=>"Product UUID parameter is missing"} unless options[:product_uuid]
  Api4Over::PrintProducts.new.retrieve_quantity_discounts(
    path: "/printproducts/products/#{options[:product_uuid]}/quantitydiscounts", 
    parameters: build_parameters_for_product(options),
    mode: @mode
  )
end

Private Instance Methods

build_parameters_for_product(options={}) click to toggle source
# File lib/api4over.rb, line 68
def build_parameters_for_product(options={})
  default_options = {
   query: 
    { 
      signature: @signature,
      apikey: @api_key 
    }.merge!(options)
  }
  default_options
end