Sha256: 7d93d6304f58060bcfcd0259b077bd67caeb5e5eb48af097505528ff6cd0a770
Contents?: true
Size: 1.42 KB
Versions: 2
Compression:
Stored size: 1.42 KB
Contents
# frozen_string_literal: true require 'faraday' module Mpesa class Client attr_reader :key, :secret, :env, :adapter, :shortcode, :pass_key, :raise_errors def initialize(key:, secret:, shortcode: nil, pass_key: nil, env: 'production', adapter: Faraday.default_adapter, raise_errors: true) @key = key @secret = secret @env = env @adapter = adapter @pass_key = pass_key @shortcode = shortcode @raise_errors = raise_errors end def auth Token.new(self).token end def register(**args) Register.new(self, args).call end def stk(**args) Stk.new(self, args).call end def payout(**args) Payout.new(self, args).call end def status(**args) Status.new(self, args).call end def balance(**args) Balance.new(self, args).call end def reversal(**args) Reversal.new(self, args).call end def connection(basic_auth: false) @connection ||= Faraday.new do |conn| conn.url_prefix = "https://#{subdomain}.safaricom.co.ke" conn.request :json conn.response :json, content_type: 'application/json' conn.adapter adapter conn.request :authorization, :basic, key, secret if basic_auth conn.request :authorization, 'Bearer', auth.access_token unless basic_auth end end def subdomain env == 'production' ? 'api' : 'sandbox' end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
mpesarb-0.3.5 | lib/mpesa/client.rb |
mpesarb-0.3.4 | lib/mpesa/client.rb |