Class: SynapseClient::APIResource

Inherits:
Object
  • Object
show all
Defined in:
lib/synapse_client/api_resource.rb

Direct Known Subclasses

BankAccount, Customer, MassPay, Order

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#idObject

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_nameObject



11
12
13
# File 'lib/synapse_client/api_resource.rb', line 11

def self.api_resource_name
  class_name.downcase
end

.class_nameObject



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

.urlObject



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

Returns:

  • (Boolean)


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

def successful?
  true
end

#to_hashObject



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

#urlObject



31
32
33
# File 'lib/synapse_client/api_resource.rb', line 31

def url
  self.class.url
end