class Mollie::Base

Attributes

attributes[R]

Public Class Methods

all(options = {}) click to toggle source
# File lib/mollie/base.rb, line 23
def all(options = {})
  id      = nil
  data    = {}

  request('GET', id, data, options) do |response|
    Mollie::List.new(response, self)
  end
end
cancel(id, options = {})
Alias for: delete
create(data = {}, options = {}) click to toggle source
# File lib/mollie/base.rb, line 17
def create(data = {}, options = {})
  request('POST', nil, data, options) do |response|
    new(response)
  end
end
delete(id, options = {}) click to toggle source
# File lib/mollie/base.rb, line 46
def delete(id, options = {})
  request('DELETE', id, options)
end
Also aliased as: cancel
embedded_resource_name(parent_id = nil)
Alias for: resource_name
get(id, options = {}) click to toggle source
# File lib/mollie/base.rb, line 32
def get(id, options = {})
  raise Mollie::Exception, "Invalid resource ID: #{id.inspect}" if id.nil? || id.strip.empty?

  request('GET', id, {}, options) do |response|
    new(response)
  end
end
id_param() click to toggle source
# File lib/mollie/base.rb, line 57
def id_param
  "#{name.downcase.split('::')[-1]}_id".to_sym
end
new(attributes) click to toggle source
# File lib/mollie/base.rb, line 5
def initialize(attributes)
  @attributes = attributes
  assign_attributes(attributes)
end
parent_id() click to toggle source
# File lib/mollie/base.rb, line 61
def parent_id
  "#{name.downcase.split('::')[-2]}_id".to_sym
end
request(method, id = 0, data = {}, options = {}) { |response| ... } click to toggle source
# File lib/mollie/base.rb, line 51
def request(method, id = 0, data = {}, options = {})
  parent_id = options.delete(self.parent_id) || data.delete(self.parent_id)
  response  = Mollie::Client.instance.perform_http_call(method, resource_name(parent_id), id, data, options)
  yield(response) if block_given?
end
resource_name(parent_id = nil) click to toggle source
# File lib/mollie/base.rb, line 65
def resource_name(parent_id = nil)
  path = name.downcase.split('::').slice(1..-1).map(&Util.method(:pluralize))

  if path.size == 2 && parent_id
    path.join("/#{parent_id}/")
  else
    path.last
  end
end
Also aliased as: embedded_resource_name
update(id, data = {}) click to toggle source
# File lib/mollie/base.rb, line 40
def update(id, data = {})
  request('PATCH', id, data) do |response|
    new(response)
  end
end

Public Instance Methods

assign_attributes(attributes) click to toggle source
# File lib/mollie/base.rb, line 10
def assign_attributes(attributes)
  attributes.each do |key, value|
    public_send("#{key}=", value) if respond_to?("#{key}=")
  end
end
cancel(options = {})
Alias for: delete
delete(options = {}) click to toggle source
# File lib/mollie/base.rb, line 90
def delete(options = {})
  if (parent_id = attributes[self.class.parent_id])
    options[self.class.parent_id] = parent_id
  end
  self.class.delete(id, options)
end
Also aliased as: cancel
update(data = {}) click to toggle source
# File lib/mollie/base.rb, line 78
def update(data = {})
  if (parent_id = attributes[self.class.parent_id])
    data[self.class.parent_id] = parent_id
  end

  if (resource = self.class.update(id, data))
    !!assign_attributes(resource.attributes)
  else
    resource
  end
end