Class: Woocommerce::API

Inherits:
Object
  • Object
show all
Includes:
HTTParty
Defined in:
lib/woocommerce.rb

Constant Summary collapse

DEFAULT_TIMEOUT =

Default timeout of 3 seconds

180
API_ENDPOINT =
'/wc-api/v2/'
DEFAULT_HEADERS =

Default headers for HTTP requests

{
    'User-Agent' => "WooCommerce gem #{Woocommerce::VERSION}",

}

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(consumer_key, consumer_secret, store_url) ⇒ API



25
26
27
28
29
30
31
32
33
34
35
# File 'lib/woocommerce.rb', line 25

def initialize(consumer_key, consumer_secret, store_url)
  if consumer_key and consumer_secret and store_url and store_url.start_with?('https')
    @consumer_key = consumer_key
    @consumer_secret = consumer_secret
    self.class.base_uri store_url + API_ENDPOINT
    self.class.default_params consumer_key: @consumer_key
    self.class.default_params consumer_secret: @consumer_secret
  else
    raise 'We need all arguments, and store_url must start with https'
  end
end

Instance Attribute Details

#consumer_keyObject

Returns the value of attribute consumer_key.



19
20
21
# File 'lib/woocommerce.rb', line 19

def consumer_key
  @consumer_key
end

#consumer_secretObject

Returns the value of attribute consumer_secret.



19
20
21
# File 'lib/woocommerce.rb', line 19

def consumer_secret
  @consumer_secret
end

Instance Method Details

#debug(location = $stderr) ⇒ Object

Turn on HTTParty debugging



40
41
42
# File 'lib/woocommerce.rb', line 40

def debug(location = $stderr)
  self.class.debug_output(location)
end

#get_product(product_id) ⇒ Object



58
59
60
61
# File 'lib/woocommerce.rb', line 58

def get_product(product_id)
  endpoint = woocommerce_api_url_for("products/#{product_id}")
  self.class.get(endpoint).parsed_response
end

#get_productsObject



53
54
55
56
# File 'lib/woocommerce.rb', line 53

def get_products
  endpoint = woocommerce_api_url_for('products')
  self.class.get(endpoint).parsed_response
end

#set_http_headers(http_headers = {}) ⇒ Object



44
45
46
47
# File 'lib/woocommerce.rb', line 44

def set_http_headers(http_headers = {})
  http_headers.merge!(DEFAULT_HEADERS)
  self.class.headers(http_headers)
end

#set_timeout(timeout) ⇒ Object



49
50
51
# File 'lib/woocommerce.rb', line 49

def set_timeout(timeout)
  self.class.default_timeout(timeout)
end

#woocommerce_api_url_for(method) ⇒ Object



63
64
65
# File 'lib/woocommerce.rb', line 63

def woocommerce_api_url_for(method)
  "#{self.class.base_uri}/#{method}"
end