mpesarb 0.3.0 → 0.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e9d8b053eedae0cab3d4839a9a618f7b4f520b2deada034c07ab57358d69896b
4
- data.tar.gz: da6f1486a2a3e329dc0999b0cb901791b97c4fe87caf1f85e364fdd864cec069
3
+ metadata.gz: 68d96fb20a2f0f9d3f463f6bb4b0d6d1e520c20d1c11f2d2a938aaf451d4ef4e
4
+ data.tar.gz: 92017a2a811f1f6de9f233c083be65b892ebb591bbc2c392dd31aeedac9a4212
5
5
  SHA512:
6
- metadata.gz: d05e129b9e523fc31be44cb452283aa83993086b67b7cb540ce0832db3ba787a000c6baee3617f4529e34d6e7668ad31bbf97b78f5aa2e1fb9de73764ea326a5
7
- data.tar.gz: a07ec8dc4b8d383028952722b5785fbba6884d640a0b5333005c6b1905015cba00b6678b30eeebb7cdce5e429cb3b71832a157c7eba149216fae652c5c94577b
6
+ metadata.gz: 3c23bd5e3eb258bf86062cfbdc5bde0745617c5d6cb8f59da3927333331ab231e1c6c8d6c1296d5b342594b7cc7acb73d4f1c8c6ddc218de39389a79f58e37e6
7
+ data.tar.gz: ded8afec648b6cd69b45d4d0b4f958c27c43dbe7b2113e939c4c4f83aaeb807dc5e8e7c2091ed609709b32673f8f47c47c28b9e80b1c166049c91ebf0f9cd56e
data/Gemfile.lock CHANGED
@@ -1,7 +1,8 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- mpesa (0.2.0)
4
+ mpesarb (0.3.0)
5
+ activesupport (>= 5.0.0)
5
6
  faraday (>= 1.1)
6
7
  faraday_middleware (~> 1.1)
7
8
  openssl (>= 2.1)
@@ -9,12 +10,19 @@ PATH
9
10
  GEM
10
11
  remote: https://rubygems.org/
11
12
  specs:
13
+ activesupport (6.1.4)
14
+ concurrent-ruby (~> 1.0, >= 1.0.2)
15
+ i18n (>= 1.6, < 2)
16
+ minitest (>= 5.1)
17
+ tzinfo (~> 2.0)
18
+ zeitwerk (~> 2.3)
12
19
  addressable (2.8.0)
13
20
  public_suffix (>= 2.0.2, < 5.0)
14
21
  ansi (1.5.0)
15
22
  builder (3.2.4)
16
23
  byebug (11.1.3)
17
24
  coderay (1.1.3)
25
+ concurrent-ruby (1.1.9)
18
26
  coveralls (0.8.23)
19
27
  json (>= 1.8, < 3)
20
28
  simplecov (~> 0.16.1)
@@ -46,6 +54,8 @@ GEM
46
54
  faraday_middleware (1.1.0)
47
55
  faraday (~> 1.0)
48
56
  hashdiff (1.0.1)
57
+ i18n (1.8.10)
58
+ concurrent-ruby (~> 1.0)
49
59
  json (2.5.1)
50
60
  method_source (1.0.0)
51
61
  minitest (5.14.4)
@@ -78,11 +88,14 @@ GEM
78
88
  thor (1.1.0)
79
89
  tins (1.29.1)
80
90
  sync
91
+ tzinfo (2.0.4)
92
+ concurrent-ruby (~> 1.0)
81
93
  vcr (6.0.0)
82
94
  webmock (3.14.0)
83
95
  addressable (>= 2.8.0)
84
96
  crack (>= 0.3.2)
85
97
  hashdiff (>= 0.4.0, < 2.0.0)
98
+ zeitwerk (2.4.2)
86
99
 
87
100
  PLATFORMS
88
101
  x86_64-darwin-19
@@ -93,7 +106,7 @@ DEPENDENCIES
93
106
  coveralls
94
107
  minitest
95
108
  minitest-reporters
96
- mpesa!
109
+ mpesarb!
97
110
  pry-byebug
98
111
  rake (>= 12.3)
99
112
  vcr
data/README.md CHANGED
@@ -12,7 +12,12 @@ This Gem provides an interface that developers can use to convert JSON to `OpenS
12
12
 
13
13
  Install via `Gemfile`
14
14
  ```
15
- gem "mpesa", github: "gathuku/mpesa"
15
+ gem 'mpesarb', '~> 0.3.0'
16
+ ```
17
+
18
+ Or
19
+ ```
20
+ bundle add mpesarb
16
21
  ```
17
22
 
18
23
  ## Usage
@@ -20,12 +25,24 @@ gem "mpesa", github: "gathuku/mpesa"
20
25
  ### Initialization
21
26
 
22
27
  ```ruby
23
- client = Mpesa::Client.new(key: "SKKSS" , secret: "SJSKS", env: "sandbox", adapter: )
28
+ client = Mpesa::Client.new(key: 'ZtkRW6ATbVtFpNml5w5SfG26Adfyagn9', secret: 'dosFI1yQ8bvHEVFw', env: 'sandbox')
24
29
 
25
30
  response = client.auth
26
31
  response.access_token # XiKf3D6UrY0J8S2aeOQ7R7w0BuA5
27
32
  response.expires_in # 3599
28
33
  ```
34
+ __Parameters__
35
+
36
+ Required
37
+ - `key` - API consumer key - Required
38
+ - `secret` - API consumer secret - Required
39
+
40
+ Optional
41
+ - `env` - API environment. Default `production`
42
+ - `adapter` - Faraday HTTP adapter. Default `:net_http`
43
+ - `shortcode` - Mpesa shortcode
44
+ - `pass_key` - LPNMO pass Key( used by STK API)
45
+
29
46
 
30
47
  ### Register Urls
31
48
 
@@ -33,7 +50,8 @@ Register C2B Urls( confirmation and validation url)
33
50
  ```ruby
34
51
  response = client.register(
35
52
  shortcode: "44445",
36
- confirmation_url: 'http://test.com', validation_url: 'http://test.com'
53
+ confirmation_url: 'http://example.com/confirm',
54
+ validation_url: 'http://example.com/validate'
37
55
  )
38
56
  response.OriginatorCoversationID # "807-15591582-1"
39
57
  response.ResponseCode # "0"
@@ -1,7 +1,33 @@
1
+ require 'active_support/cache'
2
+ require 'active_support/cache/memory_store'
3
+ require 'active_support/notifications'
4
+
1
5
  module Mpesa
2
6
  class Token < Resource
3
7
  def token
8
+ if cache.exist?('token')
9
+ expires_at = cache.send(:read_entry, 'token')&.expires_at
10
+ Object.new({
11
+ "access_token": cache.fetch('token'),
12
+ "expires_in": expires_at - Time.now.to_f
13
+ })
14
+ else
15
+ cache_token
16
+ end
17
+ end
18
+
19
+ def cache_token
20
+ res = call
21
+ cache.write('token', res.access_token, expires_in: res.expires_in)
22
+ res
23
+ end
24
+
25
+ def call
4
26
  Object.new get_request(url: 'oauth/v1/generate?grant_type=client_credentials', basic_auth: true).body
5
27
  end
28
+
29
+ def cache
30
+ @cache ||= ActiveSupport::Cache::MemoryStore.new
31
+ end
6
32
  end
7
33
  end
data/lib/mpesa/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Mpesa
2
- VERSION = '0.3.0'
2
+ VERSION = '0.3.1'
3
3
  end
data/mpesa.gemspec CHANGED
@@ -30,6 +30,7 @@ Gem::Specification.new do |spec|
30
30
  spec.add_development_dependency 'bundler', '>= 2.1.4'
31
31
  spec.add_development_dependency 'rake', '>= 12.3'
32
32
  # dependancies
33
+ spec.add_runtime_dependency 'activesupport', '>= 5.0.0'
33
34
  spec.add_runtime_dependency 'faraday', '>= 1.1'
34
35
  spec.add_runtime_dependency 'faraday_middleware', '~> 1.1'
35
36
  spec.add_runtime_dependency 'openssl', '>= 2.1'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mpesarb
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.3.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Moses Gathuku
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-09-05 00:00:00.000000000 Z
11
+ date: 2021-09-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -38,6 +38,20 @@ dependencies:
38
38
  - - ">="
39
39
  - !ruby/object:Gem::Version
40
40
  version: '12.3'
41
+ - !ruby/object:Gem::Dependency
42
+ name: activesupport
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: 5.0.0
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: 5.0.0
41
55
  - !ruby/object:Gem::Dependency
42
56
  name: faraday
43
57
  requirement: !ruby/object:Gem::Requirement