Class: Ofx::APIResource

Inherits:
Object
  • Object
show all
Includes:
OfxObject
Defined in:
lib/ofx/api_resource.rb

Direct Known Subclasses

Beneficiary, Deal, Quote

Class Method Summary collapse

Methods included from OfxObject

#add_methods, included, #initialize, #initialize_from, #update_attributes

Class Method Details

.class_nameObject



5
6
7
# File 'lib/ofx/api_resource.rb', line 5

def self.class_name
  self.name.split('::')[-1]
end

.collection_url(resource_id = nil) ⇒ Object



13
14
15
16
17
18
# File 'lib/ofx/api_resource.rb', line 13

def self.collection_url(resource_id = nil)
  if self == APIResource
    raise NotImplementedError.new('APIResource is an abstract class. You should perform actions on its subclasses (Account, Transfer, etc.)')
  end
  "/payments/#{CGI.escape(class_name.downcase)}s"
end

.create(params = {}, opts = {}) ⇒ Object



20
21
22
23
# File 'lib/ofx/api_resource.rb', line 20

def self.create(params = {}, opts = {})
  response = Ofx::Client.request(:post, collection_url, params, opts)
  convert_to_ofx_object(response)
end

.get(resource_id, headers = {}) ⇒ Object



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

def self.get(resource_id, headers = {})
  response = Ofx::Client.request(:get, resource_url(resource_id), {}, headers)
  convert_to_ofx_object(response)
end

.list(headers = {}, filters = {}, resource_id: nil) ⇒ Object



25
26
27
28
# File 'lib/ofx/api_resource.rb', line 25

def self.list(headers = {}, filters = {}, resource_id: nil)
  response = Ofx::Client.request(:get, collection_url(resource_id), filters, headers)
  convert_to_ofx_object(response)
end

.resource_url(resource_id) ⇒ Object



9
10
11
# File 'lib/ofx/api_resource.rb', line 9

def self.resource_url(resource_id)
  "#{collection_url}/#{resource_id}"
end