Sha256: 6f69300a36d610ff292370f72305ec5243452ac6504b86db1b7276dceb422ef1

Contents?: true

Size: 1020 Bytes

Versions: 1

Compression:

Stored size: 1020 Bytes

Contents

module Paymo
  class API

    def self.methodize(resource, method)
      method = method.to_s.gsub(/_([a-z]{1})/) { "#{$1.upcase}" }
      "#{resource}.#{method}"
    end

    def self.get(resource, method, options = {})
      method = methodize(resource, method)
      options.merge!({ auth_token: Paymo.config.auth_token, api_key: Paymo.config.api_key, format: 'json' })
      puts "curl #{API_ENDPOINT}paymo.#{method}?#{URI.encode_www_form(options)}" if Paymo.config.debug
      json = RestClient.get "#{API_ENDPOINT}paymo.#{method}", { params: options }
      JSON.parse(json)
    end

    def self.post(resource, method, options = {})
      method = methodize(resource, method)
      options.merge!({ auth_token: Paymo.config.auth_token, api_key: Paymo.config.api_key, format: 'json' })
      puts "curl -X POST -d '#{URI.encode_www_form(options)}' #{API_ENDPOINT}paymo.#{method}" if Paymo.config.debug
      json = RestClient.post "#{API_ENDPOINT}paymo.#{method}", options
      JSON.parse(json)
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
paymo-0.0.2 lib/paymo/api.rb