joy_ussd_engine 0.1.10 → 0.1.13

Sign up to get free protection for your applications and to get access to all the features.
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