module VposModule
Constants
- VERSION
Public Instance Methods
get_request(request_id)
click to toggle source
# File lib/vpos_module.rb, line 46 def get_request(request_id) request = HTTParty.get("#{host}/requests/#{request_id}", set_headers) return_vpos_object(request) end
get_request_id(response)
click to toggle source
# File lib/vpos_module.rb, line 34 def get_request_id(response) if response[:location].nil? HTTParty.get("#{host}/references/invalid", set_headers) else if response[:status_code] == 202 response[:location].gsub("/api/v1/requests/", "") else response[:location].gsub("/api/v1/transactions/", "") end end end
get_transaction(transaction_id)
click to toggle source
# File lib/vpos_module.rb, line 24 def get_transaction(transaction_id) request = HTTParty.get("#{host}/transactions/#{transaction_id}", set_headers) return_vpos_object(request) end
get_transactions()
click to toggle source
# File lib/vpos_module.rb, line 29 def get_transactions request = HTTParty.get("#{host}/transactions", set_headers) return_vpos_object(request) end
new_payment(customer, amount, pos_id: @pos_id, callback_url: @payment_callback_url)
click to toggle source
# File lib/vpos_module.rb, line 10 def new_payment(customer, amount, pos_id: @pos_id, callback_url: @payment_callback_url) content = set_headers content[:body] = {type:"payment", pos_id: pos_id, mobile: customer, amount: amount, callback_url: callback_url}.to_json request = HTTParty.post("#{host}/transactions", content) return_vpos_object(request) end
new_refund(transaction_id, supervisor_card: @supervisor_card, callback_url: @refund_callback_url)
click to toggle source
# File lib/vpos_module.rb, line 17 def new_refund(transaction_id, supervisor_card: @supervisor_card, callback_url: @refund_callback_url) content = set_headers content[:body] = {type: "refund", parent_transaction_id: transaction_id, supervisor_card: supervisor_card, callback_url: callback_url}.to_json request = HTTParty.post("#{host}/transactions", content) return_vpos_object(request) end
Private Instance Methods
host()
click to toggle source
# File lib/vpos_module.rb, line 70 def host if @environment == "PRD" "https://api.vpos.ao/api/v1" else "https://sandbox.vpos.ao/api/v1" end end
return_vpos_object(request)
click to toggle source
# File lib/vpos_module.rb, line 52 def return_vpos_object(request) case request.response.code.to_i when 200, 201 return {status_code: request.response.code.to_i, message: request.response.message, data: request.parsed_response} when 202, 303 return {status_code: request.response.code.to_i, message: request.response.message, location: request.headers["location"]} else return {status_code: request.response.code.to_i, message: request.response.message, details: request.parsed_response["errors"]} end end
set_headers()
click to toggle source
# File lib/vpos_module.rb, line 63 def set_headers content = {} headers = {'Content-Type' => "application/json", 'Accept' => "application/json", 'Authorization' => @token, 'Idempotency-Key' => SecureRandom.uuid} content[:headers] = headers content end