Class: SynapseClient::APIResource
- Inherits:
-
Object
- Object
- SynapseClient::APIResource
show all
- Defined in:
- lib/synapse_client/api_resource.rb
Instance Attribute Summary collapse
Class Method Summary
collapse
Instance Method Summary
collapse
Instance Attribute Details
#id ⇒ Object
Returns the value of attribute id.
5
6
7
|
# File 'lib/synapse_client/api_resource.rb', line 5
def id
@id
end
|
Class Method Details
.api_resource_name ⇒ Object
11
12
13
|
# File 'lib/synapse_client/api_resource.rb', line 11
def self.api_resource_name
class_name.downcase
end
|
.class_name ⇒ Object
7
8
9
|
# File 'lib/synapse_client/api_resource.rb', line 7
def self.class_name
self.name.split('::').last
end
|
.retrieve(id, opts = {}) ⇒ Object
42
43
44
45
46
47
|
# File 'lib/synapse_client/api_resource.rb', line 42
def self.retrieve(id, opts={})
opts.merge!(:id => id)
instance = self.new(opts)
instance.refresh(retrieve_endpoint)
instance
end
|
.url ⇒ Object
24
25
26
27
28
29
|
# File 'lib/synapse_client/api_resource.rb', line 24
def self.url
if self == APIResource
raise NotImplementedError.new('APIResource is an abstract class. You should perform actions on its subclasses (Customer, Bank Account, Order, etc.)')
end
"/api/v2/#{CGI.escape( api_resource_name )}/"
end
|
Instance Method Details
#refresh(endpoint = "") ⇒ Object
35
36
37
38
39
40
|
# File 'lib/synapse_client/api_resource.rb', line 35
def refresh(endpoint="")
response = SynapseClient.request(:post, url + endpoint, retrieve_params)
return response unless response.successful?
update_attributes(response.data[self.class.class_name.downcase])
end
|
#successful? ⇒ Boolean
50
51
52
|
# File 'lib/synapse_client/api_resource.rb', line 50
def successful?
true
end
|
#to_hash ⇒ Object
15
16
17
18
19
20
21
22
|
# File 'lib/synapse_client/api_resource.rb', line 15
def to_hash
hash = {}
instance_variables.each do |var|
value = instance_variable_get(var)
hash[var[1..-1].to_sym] = value if value
end
hash
end
|
#url ⇒ Object
31
32
33
|
# File 'lib/synapse_client/api_resource.rb', line 31
def url
self.class.url
end
|