module Proxypay

Constants

VERSION

Public Class Methods

get_customer(id, options = {}) click to toggle source

get a customer by id

# File lib/proxypay.rb, line 64
def self.get_customer(id, options = {})
  set_base_url(options.delete(:is_test))
  content = set_headers(options)
  get("/customers/#{id}", content).parsed_response
end
get_customers(options = {}) click to toggle source

Get a list of customers

# File lib/proxypay.rb, line 56
def self.get_customers(options = {})
  set_base_url(options.delete(:is_test))
  content = set_headers(options)
  content[:query] = options.delete(:query) || {}
  get("/customers", content).parsed_response
end
get_payments(options={}) click to toggle source

Fetch all availables payments that have not been acknowledged.

# File lib/proxypay.rb, line 33
def self.get_payments(options={})
  set_base_url(options.delete(:is_test))
  content = set_headers(options)
  content[:query] = options.delete(:query) || {}
  get("/events/payments", content).parsed_response
end
get_reference(id, options = {}) click to toggle source

Fetch a specific reference by his ID string

# File lib/proxypay.rb, line 18
def self.get_reference(id, options = {})
  set_base_url(options.delete(:is_test))
  content = set_headers(options)
  get("/references/#{id}", content).parsed_response
end
get_references(options = {}) click to toggle source

Fetch all available references

# File lib/proxypay.rb, line 10
def self.get_references(options = {})
  set_base_url(options.delete(:is_test))
  content = set_headers(options)
  content[:query] = options.delete(:query) || {}
  get("/references", content).parsed_response
end
new_customer(id, nome, telemovel, email, options = {}) click to toggle source

Store a new customer or update one

# File lib/proxypay.rb, line 71
def self.new_customer(id, nome, telemovel, email, options = {})
  set_base_url(options.delete(:is_test))
  content = set_headers(options)
  content[:body] = {:customer => {:name => nome.to_s, :mobile => telemovel.to_s, :email => email.to_s}}.to_json
  put("/customers/#{id}", content).parsed_response
end
new_payment(id, options = {}) click to toggle source

Acknowledge a payment by submitting his ID

# File lib/proxypay.rb, line 41
def self.new_payment(id, options = {})
  set_base_url(options.delete(:is_test))
  content = set_headers(options)
  delete("/events/payments/#{id}", content).parsed_response
end
new_payments(ids, options = {}) click to toggle source

Acknowledge multiple payments by submitting an array of ids

# File lib/proxypay.rb, line 48
def self.new_payments(ids, options = {})
  set_base_url(options.delete(:is_test))
  content = set_headers(options)
  content[:body] = { :ids => ids }.to_json
  delete("/events/payments", content).parsed_response
end
new_reference(amount, expiry_date, options={}) click to toggle source

Submit a request to create a new reference

# File lib/proxypay.rb, line 25
def self.new_reference(amount, expiry_date, options={})
  set_base_url(options.delete(:is_test))
  content = set_headers(options)
  content[:body] = {:reference => {:amount => amount.to_s, :expiry_date => expiry_date.to_s, custom_fields: (options.delete(:custom_fields) || {})}}.to_json
  post("/references", content).parsed_response
end
set_base_url(is_test = false) click to toggle source
# File lib/proxypay.rb, line 78
def self.set_base_url(is_test = false)
  self.base_uri is_test == true ? "https://api.sandbox.proxypay.co.ao" : "https://api.proxypay.co.ao"
end

Private Class Methods

authenticate(api_key = nil) click to toggle source
# File lib/proxypay.rb, line 90
def self.authenticate(api_key = nil)
  auth = {
    username: api_key.nil? ? ENV["PROXYPAY_USER"] : 'api',
    password: api_key.nil? ? ENV["PROXYPAY_API_KEY"] : api_key
  }
  return auth
end
set_headers(options) click to toggle source
# File lib/proxypay.rb, line 83
def self.set_headers(options)
  content = {}
  content[:basic_auth] = authenticate(options.delete(:api_key))
  content[:headers] = {'Content-Type' => 'application/json', 'Accept' => 'application/vnd.proxypay.v1+json'}
  return content
end