Sha256: 641f158974391bd8b0d8e327ff0b55ec5362d1feddba037ad86efb1663ac1daa
Contents?: true
Size: 1.14 KB
Versions: 2
Compression:
Stored size: 1.14 KB
Contents
require 'faraday' require 'faraday_middleware' module Mpesa class Client attr_reader :key, :secret, :env, :adapter, :shortcode, :pass_key def initialize(key:, secret:, shortcode: nil, pass_key: nil, env: 'production', adapter: Faraday.default_adapter) @key = key @secret = secret @env = env @adapter = adapter @pass_key = pass_key @shortcode = shortcode 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 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 :basic_auth, 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.1 | lib/mpesa/client.rb |
mpesarb-0.3.0 | lib/mpesa/client.rb |