Module: DistributionApi

Defined in:
lib/distribution-api-client.rb,
lib/distribution-api/version.rb

Constant Summary collapse

VERSION =
'0.1.0'

Class Attribute Summary collapse

Class Method Summary collapse

Class Attribute Details

.api_endpointObject

Returns the value of attribute api_endpoint.



11
12
13
# File 'lib/distribution-api-client.rb', line 11

def api_endpoint
  @api_endpoint
end

.api_keyObject

Returns the value of attribute api_key.



11
12
13
# File 'lib/distribution-api-client.rb', line 11

def api_key
  @api_key
end

.api_secretObject

Returns the value of attribute api_secret.



11
12
13
# File 'lib/distribution-api-client.rb', line 11

def api_secret
  @api_secret
end

Class Method Details

.cancel_card(reference) ⇒ Object



29
30
31
32
33
34
# File 'lib/distribution-api-client.rb', line 29

def self.cancel_card(reference)
  req_params = { url: ("#{api_endpoint}/cards/#{URI::encode_www_form_component reference}/cancel"), method: :post, headers: { accept: :json }, payload: {} }
  req        = RestClient::Request.new(req_params)
  req.sign!(api_key, api_secret)
  req.execute
end

.card_url(reference) ⇒ Object



36
37
38
39
40
41
42
43
44
45
46
# File 'lib/distribution-api-client.rb', line 36

def self.card_url(reference)
  timestamp    = Time.now.utc.httpdate
  security     = Base64.strict_encode64(OpenSSL::HMAC.digest('sha256', api_secret, "#{reference}\n#{timestamp}"))
  query_string = {
      key:       api_key,
      timestamp: timestamp,
      reference: reference,
      security:  security
  }.map { |k, v| "#{k}=#{URI::encode_www_form_component(v)}" }.join('&')
  "#{api_endpoint}/widget?#{query_string}"
end

.create_card(reference, amount, currency, merchant_id, user) ⇒ Object



20
21
22
23
24
25
26
27
# File 'lib/distribution-api-client.rb', line 20

def self.create_card(reference, amount, currency, merchant_id, user)
  user       = user.to_json if user.is_a?(Hash)
  payload    = { amount: amount, currency: currency, merchant_id: merchant_id, reference: reference, user: user }
  req_params = { url: "#{api_endpoint}/cards", method: :post, headers: { accept: :json }, payload: payload }
  req        = RestClient::Request.new(req_params)
  req.sign!(api_key, api_secret)
  parse_response req.execute
end

.setup(api_key, api_secret, api_endpoint = 'https://distribution.api.wizypay.com/v1') ⇒ Object



14
15
16
17
18
# File 'lib/distribution-api-client.rb', line 14

def self.setup(api_key, api_secret, api_endpoint='https://distribution.api.wizypay.com/v1')
  self.api_endpoint   = api_endpoint
  self.api_key    = api_key
  self.api_secret = api_secret
end