Class: Resource
- Inherits:
-
Object
show all
- Includes:
- HTTParty
- Defined in:
- lib/resource.rb
Overview
The default template for an Onvo Resource
Instance Attribute Summary collapse
Instance Method Summary
collapse
Constructor Details
#initialize(endpoint, api_key) ⇒ Resource
Returns a new instance of Resource.
13
14
15
16
17
18
19
20
21
|
# File 'lib/resource.rb', line 13
def initialize(endpoint, api_key)
self.class.base_uri endpoint
@options = {
headers: {
'x-api-key': api_key,
'Content-Type': 'application/json'
}
}
end
|
Instance Attribute Details
#options ⇒ Object
Returns the value of attribute options.
11
12
13
|
# File 'lib/resource.rb', line 11
def options
@options
end
|
Instance Method Details
#base_delete(subdirectory, **extra_options) ⇒ Object
53
54
55
|
# File 'lib/resource.rb', line 53
def base_delete(subdirectory, **)
base_request { self.class.delete(subdirectory, **merge_options()) }
end
|
#base_get(subdirectory, **extra_options) ⇒ Object
41
42
43
|
# File 'lib/resource.rb', line 41
def base_get(subdirectory, **)
base_request { self.class.get(subdirectory, **merge_options()) }
end
|
#base_post(subdirectory, **extra_options) ⇒ Object
49
50
51
|
# File 'lib/resource.rb', line 49
def base_post(subdirectory, **)
base_request { self.class.post(subdirectory, **merge_options()) }
end
|
#base_put(subdirectory, **extra_options) ⇒ Object
45
46
47
|
# File 'lib/resource.rb', line 45
def base_put(subdirectory, **)
base_request { self.class.put(subdirectory, **merge_options()) }
end
|
#base_request ⇒ Object
23
24
25
26
27
28
29
30
31
32
|
# File 'lib/resource.rb', line 23
def base_request
response = yield
body = JSON.parse(response.body)
raise "#{response.code} Error : #{body['message']}" if response.code >= 400
body
rescue JSON::ParserError, TypeError
response.body
end
|
#merge_options(extra_options) ⇒ Object
34
35
36
37
38
39
|
# File 'lib/resource.rb', line 34
def merge_options()
= {}
[:query] = [:query] if .key? :query
[:body] = [:body].to_json if .key? :body
options.merge()
end
|