class Peperusha::BusinessToCustomer

Public Instance Methods

call() click to toggle source
# File lib/peperusha/business_to_customer.rb, line 18
def call
  path = 'mpesa/b2c/v1/paymentrequest'
  response = Peperusha::Client.invoke_post_request(token, path, attributes)

  if response.status == 200
    data = JSON.parse(response.body)
    context.body = data
  else
    client_errors = Peperusha::Client.build_errors_collection(response)
    context.fail!(errors: client_errors)
  end
end

Private Instance Methods

attributes() click to toggle source
# File lib/peperusha/business_to_customer.rb, line 43
def attributes
  result_url = nil if result_url.nil?
  timeout_url = nil if timeout_url.nil?
  {
    'Amount': amount,
    'CommandID': 'BusinessPayment',
    'InitiatorName': initiator_name,
    'Occasion': 'Generated by peperusha',
    'PartyA': business_number,
    'PartyB': customer_number,
    'Remarks': remarks,
    'ResultURL': result_url,
    'SecurityCredential': security_credential,
    'QueueTimeOutURL': timeout_url
  }
end
check_if_params_missing() click to toggle source
# File lib/peperusha/business_to_customer.rb, line 33
def check_if_params_missing
  errors = []
  errors << 'token.missing' if token.nil?
  errors << 'amount.missing' if amount.nil?
  errors << 'business_number.missing' if business_number.nil?
  errors << 'customer_number.missing' if customer_number.nil?
  errors << 'security_credential.missing' if security_credential.nil?
  errors
end