Module: VivaWallet

Defined in:
lib/viva_wallet.rb,
lib/viva_wallet/event.rb,
lib/viva_wallet/payment.rb,
lib/viva_wallet/version.rb,
lib/viva_wallet/authentication.rb

Defined Under Namespace

Classes: Authentication, ConfigurationError, Event, Payment, VivaWalletError

Constant Summary collapse

VERSION =
"0.3.3"

Class Attribute Summary collapse

Class Method Summary collapse

Class Attribute Details

.account_api_baseObject



47
48
49
# File 'lib/viva_wallet.rb', line 47

def 
  VivaWallet.test_mode ? "https://demo-accounts.vivapayments.com/" : "https://accounts.vivapayments.com/"
end

.api_baseObject



43
44
45
# File 'lib/viva_wallet.rb', line 43

def api_base
  VivaWallet.test_mode ? "https://demo-api.vivapayments.com/" : "https://api.vivapayments.com/"
end

.client_base64Object



51
52
53
# File 'lib/viva_wallet.rb', line 51

def client_base64
  Base64.encode64("#{VivaWallet.client_id}:#{VivaWallet.client_secret}").gsub("\n", "")
end

.client_idObject



21
22
23
24
25
# File 'lib/viva_wallet.rb', line 21

def client_id
  defined? @client_id and @client_id or raise(
    ConfigurationError, "VivaWallet client_id not configured"
  )
end

.client_secretObject



27
28
29
30
31
# File 'lib/viva_wallet.rb', line 27

def client_secret
  defined? @client_secret and @client_secret or raise(
    ConfigurationError, "VivaWallet client_secret not configured"
  )
end

.source_codeObject



33
34
35
36
37
# File 'lib/viva_wallet.rb', line 33

def source_code
  defined? @source_code and @source_code or raise(
    ConfigurationError, "VivaWallet source_code not configured"
  )
end

.test_modeObject



39
40
41
# File 'lib/viva_wallet.rb', line 39

def test_mode
  @test_mode.nil? ? false : @test_mode
end

Class Method Details

.request(method, resource, params = {}, access_token = nil) ⇒ Object



55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
# File 'lib/viva_wallet.rb', line 55

def request(method, resource, params = {}, access_token = nil)

  defined? method or raise(
    ArgumentError, "Request method has not been specified"
  )
  defined? resource or raise(
    ArgumentError, "Request resource has not been specified"
  )

  if method == :get
    url = VivaWallet.api_base + resource + '?' + params
    headers = {
      accept: :json,
      content_type: :json,
      'Authorization': "Bearer #{access_token}"
    }.merge({ params: params })
    payload = nil
  else
    url = VivaWallet.api_base + resource
    headers = {
      accept: :json,
      content_type: :json,
      'Authorization': "Bearer #{access_token}"
    }
    payload = params
  end
  RestClient::Request.new({
                            method: method,
                            url: url,
                            payload: payload.to_json,
                            headers: headers
                          }).execute do |response, request, result|
    str_response = response.to_str
    str_response.blank? ? '' : JSON.parse(str_response)
  end
end