Class: ZipMoney::Resources

Inherits:
Object
  • Object
show all
Defined in:
lib/zipMoney/resources.rb

Constant Summary collapse

RESOURCE_SETTINGS =
'settings'
RESOURCE_CONFIGURE =
'configure'
RESOURCE_QUOTE =
'quote'
RESOURCE_CANCEL =
'cancel'
RESOURCE_REFUND =
'refund'
RESOURCE_CHECKOUT =
'checkout'
RESOURCE_QUERY =
'query'
RESOURCE_CAPTURE =
'capture'
RESOURCE_HEART_BEAT =
'Heartbeat'

Class Method Summary collapse

Class Method Details

.get(resource, method = :post, query_string = nil) ⇒ Object

Checks if passed resource is valid and returns RestClient::Resource object configured with the passed resource and url

Parameters:

  • endpoint (resource)

    resource

  • method (method) (defaults to: :post)

    get|post

  • query_string (query_string) (defaults to: nil)

    parameters

Returns:

  • RestClient::Resource object



23
24
25
26
27
28
29
# File 'lib/zipMoney/resources.rb', line 23

def get(resource, method = :post, query_string = nil)
  return false unless resource_exists(resource)
  url = get_url(resource, (method == :get ? query_string : nil))
  ssl_opts = {:verify_ssl => OpenSSL::SSL::VERIFY_PEER}
  opts = {}
  RestClient::Resource.new(url, opts.merge(ssl_opts))
end

.get_url(resource, query_string = nil) ⇒ Object

Builds the proper endpoint url with the given resource

Parameters:

  • endpoint (resource)

    resource

  • query_string (query_string) (defaults to: nil)

    parameters

Returns:

  • String



52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
# File 'lib/zipMoney/resources.rb', line 52

def get_url(resource, query_string = nil)
  if Configuration.is_sandbox
    url = "#{Configuration::ENV_TEST_API_URL}"
  else
    url = "#{Configuration::ENV_LIVE_API_URL}"
  end   

  url =   url + resource

  unless query_string.nil?
    url = url + "?" + 
    query_string.map do |key, value|
      "#{key}=#{value}" 
    end.join("&")
  end
  url
end

.resource_exists(resource) ⇒ Object

Checks if passed resource exists

Parameters:

  • endpoint (resource)

    resource

Returns:

  • ZipMoney::Response object



36
37
38
39
40
41
42
43
44
# File 'lib/zipMoney/resources.rb', line 36

def resource_exists(resource)
  if resource.is_a?(String)
    if self.constants.map{ |k| self.const_get(k).downcase }.include?resource 
      resource
    end  
  else
    raise ArgumentError, "#{resource} should be a string"
  end
end