class Everypay::Resource

Public Class Methods

create(payload) click to toggle source
# File lib/everypay/resource.rb, line 9
def create payload
  invoke :post, payload
end
delete(token) click to toggle source
# File lib/everypay/resource.rb, line 26
def delete token
  invoke :delete, {:token => token}
end
list(filters={}) click to toggle source
# File lib/everypay/resource.rb, line 17
def list filters={}
  invoke :get, filters
end
retrieve(token) click to toggle source
# File lib/everypay/resource.rb, line 13
def retrieve token
  invoke :get, {:token => token}
end
update(token, payload) click to toggle source
# File lib/everypay/resource.rb, line 21
def update token, payload
  payload.merge! :token => token
  invoke :put, payload
end

Protected Class Methods

invoke(method, payload={}) click to toggle source
# File lib/everypay/resource.rb, line 37
def invoke method, payload={}
  url = endpoint
  url = url + '/' + payload[:namespace] if payload[:namespace]
  url = url + '/' + payload.delete(:token) if payload[:token]

  opts = {:method => method,
          :verify_ssl => Everypay.verify_ssl,
          :url => url,
          :user => Everypay.api_key}
  request opts, payload
end
resource() click to toggle source
# File lib/everypay/resource.rb, line 32
def resource
  raise NotImplementedError.new('resource method must return a resource name ex payment, customer, token etc')
end

Private Class Methods

endpoint() click to toggle source
# File lib/everypay/resource.rb, line 51
def endpoint
  Everypay.uri + '/' + resource
end
request(opts, payload) click to toggle source
# File lib/everypay/resource.rb, line 55
def request opts, payload
  opts[:payload] = payload
  response = nil
  begin
    response = RestClient::Request.execute opts
  rescue RestClient::ExceptionWithResponse => e
    response = e.response if e.response
  rescue RestClient::SSLCertificateNotVerified => e
    response = JSON.generate({:error => {:code => 400, :status=>400, :message => e.message}})
  end

  hash = JSON.parse response
end