Class: WineDotComApiRequest

Inherits:
Object
  • Object
show all
Defined in:
lib/wine_dot_com_api_request.rb,
lib/wine_dot_com_api_request/configuration.rb

Constant Summary collapse

@@api_key =
'3scale-0cef67842d4f32bc31230883e1f4f69c'
@@base_url =
'http://services.wine.com/api/beta/service.svc'

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(options = {}) ⇒ WineDotComApiRequest

Inialize the required parameters, and setup the request defaults.



77
78
79
80
81
# File 'lib/wine_dot_com_api_request.rb', line 77

def initialize(options = {})
  options.each_pair do |key, value|
    self.send("#{key}=", value)
  end
end

Instance Attribute Details

#affiliate_idObject

Affiliate ID for revenue sharing.



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

def affiliate_id
  @affiliate_id
end

#api_keyObject

API key from Wine.com.



35
36
37
# File 'lib/wine_dot_com_api_request.rb', line 35

def api_key
  @api_key
end

#base_urlObject

Base URL of API.



50
51
52
# File 'lib/wine_dot_com_api_request.rb', line 50

def base_url
  @base_url
end

#filterObject

Search filter. Ex. filter=categories(7155+124)+rating(85|100).



65
66
67
# File 'lib/wine_dot_com_api_request.rb', line 65

def filter
  @filter
end

#formatObject

API result format. Available API formats: xml, json.



41
42
43
# File 'lib/wine_dot_com_api_request.rb', line 41

def format
  @format
end

#instockObject

In stock. Boolean search value.



74
75
76
# File 'lib/wine_dot_com_api_request.rb', line 74

def instock
  @instock
end

#offsetObject

Search offset to start at.



56
57
58
# File 'lib/wine_dot_com_api_request.rb', line 56

def offset
  @offset
end

#parameters=(value) ⇒ Object

API parameters.



47
48
49
# File 'lib/wine_dot_com_api_request.rb', line 47

def parameters=(value)
  @parameters = value
end

#resourceObject

API requested resource. Available API resources: catalog, reference, categorymap.



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

def resource
  @resource
end

#searchObject

Search terms.



62
63
64
# File 'lib/wine_dot_com_api_request.rb', line 62

def search
  @search
end

#sizeObject

Number of records to return.



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

def size
  @size
end

#sortObject

Sort key. Ex. sort=rating|ascending.



71
72
73
# File 'lib/wine_dot_com_api_request.rb', line 71

def sort
  @sort
end

#stateObject

Ship to state. Two letter abbrev. Ex. MA.



68
69
70
# File 'lib/wine_dot_com_api_request.rb', line 68

def state
  @state
end

#versionObject

API version number. Available API versions: v1.0, v2.3.



38
39
40
# File 'lib/wine_dot_com_api_request.rb', line 38

def version
  @version
end

Instance Method Details

#query(options = {}) ⇒ Object

Execute a search. Returns either raw json or xml.



89
90
91
92
93
94
95
96
97
98
99
100
# File 'lib/wine_dot_com_api_request.rb', line 89

def query(options = {})
  options.each_pair do |key, value|
    self.send("#{key}=", value)
  end
  
  raise 'No API base URL provided.' unless @@base_url
  raise 'No API key provided.' unless @@api_key
  raise 'No resource specified.' unless @resource
  raise 'No format specified.' unless @format
  
  return do_get
end

#urlObject

Return URL that request will be made to. Mainly for debugging purposes.



84
85
86
# File 'lib/wine_dot_com_api_request.rb', line 84

def url
  api_url
end