joy_ussd_engine 0.1.10 → 0.1.13

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: ca534a61cf01d8a83cbd89e6310f88c7bcedfb17f7221880e12a40b654103213
4
- data.tar.gz: 2d8ddf4b9f35ec40e0b82dbe5e5df7d2c235a0bc17673f6ba322b8e987f9a4d3
3
+ metadata.gz: 0a0caadc4f86815e553db92686d324b244c51627777a21dfd7ef3e548142a6c8
4
+ data.tar.gz: b7471162a7c88c2ae1b7fb5f8f3d806af47cb456d66e0c04724cd265d24f6db4
5
5
  SHA512:
6
- metadata.gz: c62f11fd5ebec29cb156e7f95f358b3fa50dce911a860e8a38332555e3b6f802303cf134a7b1496306e5614bef8c6413addbac4995e41894693f6a4097c424ef
7
- data.tar.gz: 02d7a7a53d86bc81041a5ab543703a0fa1ba80f4b582c24429b067cf07cffe77b293faaaf116db0241915c74a8dd8855820f9a898944c0d3deb280d4379544b9
6
+ metadata.gz: 5d3753253b039d771f70a821a21baf1c2cf3cece98cb3bfea543b38365746959c6a09ceed0e302f6257327bfb10ae3c7ff5aca8c8cfb2c7b63b036ff760cce53
7
+ data.tar.gz: 0f175497f911d7b5f36e3f8cabb34208789aa3e644f5e85968cb4c1f2385abfac4ccd7b982b84272d03b35f9daa314a337eed0ed8410fd26dcd8f21b05c6ede4
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- joy_ussd_engine (0.1.10)
4
+ joy_ussd_engine (0.1.13)
5
5
  will_paginate (~> 3.3.0)
6
6
 
7
7
  GEM
@@ -13,6 +13,10 @@ module JoyUssdEngine
13
13
  }
14
14
  end
15
15
 
16
+ def app_initiator(params)
17
+ params[:Type] == 'Initiation'
18
+ end
19
+
16
20
  def app_terminator(params)
17
21
  params[:Type] == 'Release' || (params[:Type] != "Initiation" && @context.get_state.blank?)
18
22
  end
@@ -1,41 +1,41 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module JoyUssdEngine::SessionManager
4
- def expire_mins
5
- @selected_provider.expiration.blank? ? 60.seconds : @selected_provider.expiration
6
- end
7
-
8
- def user_mobile_number
9
- @user_mobile_number ||= get_state[:"#{@session_id}"]
10
- end
11
-
12
- # Retrive Session Data
13
- def get_state
14
- session_id = params[:"#{@session_id}"]
15
- REDIS.with do |conn|
16
- data = conn.get(session_id)
17
- return {} if data.blank?
18
- JSON.parse(data, symbolize_names: true)
19
- end
4
+ def expire_mins
5
+ @selected_provider.expiration.blank? ? 60.seconds : @selected_provider.expiration
6
+ end
7
+
8
+ def user_mobile_number
9
+ @user_mobile_number ||= get_state[:"#{@params[:session_id]}"]
10
+ end
11
+
12
+ # Retrive Session Data
13
+ def get_state
14
+ session_id = @params[:session_id]
15
+ REDIS.with do |conn|
16
+ data = conn.get(session_id)
17
+ return {} if data.blank?
18
+ JSON.parse(data, symbolize_names: true)
20
19
  end
21
-
22
- # Store USSD sessions in Redis with Expiry
23
- def set_state(payload = {})
24
- session_id = params[:"#{@session_id}"]
25
- current_data = get_state
26
- REDIS.with do |conn|
27
- payload = current_data.merge(params.merge(payload))
28
- conn.set(session_id, payload.to_json)
29
- conn.expire(session_id, expire_mins)
30
- end
20
+ end
21
+
22
+ # Store USSD sessions in Redis with Expiry
23
+ def set_state(payload = {})
24
+ session_id = @params[:session_id]
25
+ current_data = get_state
26
+ REDIS.with do |conn|
27
+ payload = current_data.merge(params.merge(payload))
28
+ conn.set(session_id, payload.to_json)
29
+ conn.expire(session_id, expire_mins)
31
30
  end
32
-
33
- # Delete Session payload
34
- def reset_state
35
- session_id = params[:"#{@session_id}"]
36
- REDIS.with do |conn|
37
- conn.del(session_id)
38
- end
31
+ end
32
+
33
+ # Delete Session payload
34
+ def reset_state
35
+ session_id = @params[:session_id]
36
+ REDIS.with do |conn|
37
+ conn.del(session_id)
39
38
  end
40
39
  end
40
+ end
41
41
 
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module JoyUssdEngine
4
- VERSION = "0.1.10"
4
+ VERSION = "0.1.13"
5
5
  end
@@ -29,6 +29,11 @@ module JoyUssdEngine
29
29
  # If a particular provider returns some sort of response that can terminate the app we do that check here
30
30
  return @current_menu = end_point.to_s if @selected_provider.send("app_terminator", params) || @data[:ClientState] == 'EndJoyUssdEngine'
31
31
 
32
+ if(@selected_provider.send("app_initiator", params) ){
33
+ @current_menu = start_point.to_s
34
+ reset_state
35
+ return
36
+ }
32
37
  @current_menu = @data[:ClientState].blank? ? start_point.to_s : @data[:ClientState]
33
38
  end
34
39
 
Binary file
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: joy_ussd_engine
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.10
4
+ version: 0.1.13
5
5
  platform: ruby
6
6
  authors:
7
7
  - Caleb Mantey
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-06-15 00:00:00.000000000 Z
11
+ date: 2022-07-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: will_paginate
@@ -99,7 +99,7 @@ files:
99
99
  - lib/joy_ussd_engine/paginate_menu.rb
100
100
  - lib/joy_ussd_engine/session_manager.rb
101
101
  - lib/joy_ussd_engine/version.rb
102
- - pkg/joy_ussd_engine-0.1.10.gem
102
+ - pkg/joy_ussd_engine-0.1.13.gem
103
103
  - spec/joy_ussd_engine_spec.rb
104
104
  - spec/joy_ussd_engine_transformer.spec
105
105
  - spec/spec_helper.rb
Binary file