app_manager 1.1.8 → 1.2.0

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: 49b23403c65f2eb57f2d3a3a54d1c966e3810773aea9822c8625f3026fec93b9
4
- data.tar.gz: 3625d02deadd46fbc14f27227cc49d0ffb774fa285d971df90a4d91dcef06255
3
+ metadata.gz: 3ef86306a34e83be7d439ecda3ca318a33146373c0a5f8cd910d5da1cf06d587
4
+ data.tar.gz: 1239cc87364f045b966f9f2ccc24ca770c7fdd07dda704b25d7b37bf2a49dc05
5
5
  SHA512:
6
- metadata.gz: 2e755621b1a8dea6d0f24a8135bd562cad9451ca1917a5c011be9e30654529f3dd55f8b9dc60908d7460b2ab8f6ca90823ec779726b277f1e35e45eec711621c
7
- data.tar.gz: 45f80655e7125a4b00740be0b286867edc755101bdb2d3c6fe5a52ed70ae7f798f56a87b371783be6b3b4cda678917165cf49ffe16fe2aa0ed6cc437b22ff7fb
6
+ metadata.gz: db78e088159f14d5bad35456c2a3b41e87e5e813bcd92a12c32562d8882ba698e6eae97f6a7807e8b94ccf6673234f6cd58ef3c8846c40e6df3a97dbe6e8f266
7
+ data.tar.gz: d9d6dcb07015cde6b085473762cdffa39f12bf03ed7d2af0c9c79fe6849b29338b839f0f31712fd362fa7b037318bf9fa72754e0847ca09fe3a5f86a4f974a75
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- app_manager (1.1.8)
4
+ app_manager (1.2.0)
5
5
  httparty
6
6
  kaminari (>= 0.16.3)
7
7
  rails (>= 5.2.0)
@@ -146,7 +146,7 @@ GEM
146
146
  method_source (~> 1.0)
147
147
  public_suffix (4.0.6)
148
148
  racc (1.6.0)
149
- rack (2.2.3.1)
149
+ rack (2.2.4)
150
150
  rack-test (2.0.2)
151
151
  rack (>= 1.3)
152
152
  rails (7.0.3)
data/README.md CHANGED
@@ -171,7 +171,26 @@ and then you can use follwing methods with your shop objects.
171
171
 
172
172
  @shop.get_plan # return current plan hash
173
173
 
174
- @shop.get_charge # return current charge hash
174
+ if you pass @shop.get_plan(plan_id) it will return that particular plan hash like @shop.get_plan(311)
175
+
176
+ @shop.get_charge # return current charge hash, it will return nil if current plan is free
177
+
178
+ @shop.set_default_plan(plan_id=nil) #if plan id is passed nil, then it will set the free(public and $0 price) to active and if passed it will set that plan to active plan
179
+
180
+ @shop.get_plans_by_features(feature_slugs) # pass feature_slugs as an array even if one slug and it will return plans array which have that slug found. Example:
181
+
182
+ @shop.get_plans_by_features(['quantity-based-discount'])
183
+ @shop.get_plans_by_features(['quantity-based-discount','multiple-discount-types'])
184
+
185
+
186
+ you can pass string argument 'exclude_current_plan' which will return all plans that matching features except current plan
187
+
188
+ @shop.get_plans_by_features(['quantity-based-discount'],'exclude_current_plan')
189
+ @shop.get_plans_by_features(['quantity-based-discount','multiple-discount-types'],'exclude_current_plan')
190
+
191
+
192
+ @shop.get_all_plans # return all app plans array
193
+
175
194
  ```
176
195
 
177
196
 
@@ -13,8 +13,22 @@ module AppManager
13
13
  if !@shop.nil?
14
14
  plan_obj = AppManager::Client.new
15
15
  plan_data = plan_obj.get_plan(params[:plan_id],params[:shop])
16
+ # render json: plan_data and return #use this to test plan failsafe api
16
17
  if plan_data.present? && plan_data.is_a?(Hash)
17
18
  if plan_data['price'] == 0
19
+ active_charge_data = plan_obj.get_charge(params[:shop])
20
+ begin
21
+ if active_charge_data && active_charge_data.any? && !active_charge_data['active_charge']['charge_id'].nil?
22
+ gq_obj = AppManager::GraphqlHelper.new(@shop.shopify_domain,@shop.shopify_token)
23
+ rec_cancel_data = gq_obj.recurring_charge_cancel_api_call(active_charge_data['active_charge']['charge_id'],@shop)
24
+ if !rec_cancel_data["errors"].present? && (rec_cancel_data["data"].present? && rec_cancel_data["data"]["appSubscriptionCancel"].present? && !rec_cancel_data["data"]["appSubscriptionCreate"]["userErrors"].any? && (rec_cancel_data["data"]["appSubscriptionCancel"]["appSubscription"]["status"] == 'CANCELLED'))
25
+ plan_obj.cancel_charge(params[:shop],active_charge_data['active_charge']['plan_id'])
26
+ end
27
+ end
28
+ rescue Exception => e
29
+ Rails.logger.info "APP MANAGER >>>> #{e.inspect}"
30
+ end
31
+
18
32
  if @shop.update(@plan_field => params[:plan_id])
19
33
  begin
20
34
  AppManager::EventHandler.new('charge_created',{
@@ -23,7 +37,7 @@ module AppManager
23
37
  "previous_charge" => nil
24
38
  })
25
39
  rescue Exception => e
26
- Rails.logger.info "APP MANGAGER >>>> #{e.inspect}"
40
+ Rails.logger.info "APP MANAGER >>>> #{e.inspect}"
27
41
  end
28
42
  AppManager.clear_cache
29
43
  render json: {'redirect_url' => "#{app_url}?shop=#{params[:shop]}"} and return true
@@ -78,7 +92,7 @@ module AppManager
78
92
  begin
79
93
  plan_obj.cancel_charge(@shop[shopify_domain],@shop[@plan_field])
80
94
  rescue Exception => e
81
- Rails.logger.info "APP MANGAGER >>>> #{e.inspect}"
95
+ Rails.logger.info "APP MANAGER >>>> #{e.inspect}"
82
96
  end
83
97
  end
84
98
 
@@ -96,7 +110,7 @@ module AppManager
96
110
  "previous_charge" => charge_data ? (charge_data['cancelled_charge'] || nil) : nil
97
111
  })
98
112
  rescue Exception => e
99
- Rails.logger.info "APP MANGAGER >>>> #{e.inspect}"
113
+ Rails.logger.info "APP MANAGER >>>> #{e.inspect}"
100
114
  end
101
115
  end
102
116
  redirect_to "#{app_url}?shop=#{params[:shop]}", :status => 301 and return
@@ -36,10 +36,10 @@ module AppManager
36
36
 
37
37
  end
38
38
  else
39
- Rails.logger.info "APP MANGAGER >>>> Either model is defined wrong or config.plan_id_or_name_field is nil in initializer ==="
39
+ Rails.logger.info "APP MANAGER >>>> Either model is defined wrong or config.plan_id_or_name_field is nil in initializer ==="
40
40
  end
41
41
  else
42
- Rails.logger.info "APP MANGAGER >>>> Either params missing store_domain or config.plan_features is nil in initializer ==="
42
+ Rails.logger.info "APP MANAGER >>>> Either params missing store_domain or config.plan_features is nil in initializer ==="
43
43
  end
44
44
 
45
45
 
@@ -119,8 +119,23 @@ module AppManager
119
119
  if params[:shop_domain].present? && params[:plan_id].present? && model
120
120
  @shop = shop_data
121
121
  @trial_activated_field = AppManager.configuration.field_names['trial_activated_at']
122
- @shop.update(@plan_field => params[:plan_id],@trial_activated_field => DateTime.now)
122
+ if @shop.update(@plan_field => params[:plan_id],@trial_activated_field => DateTime.now)
123
+ begin
124
+ plan_obj = AppManager::Client.new
125
+ plan_data = plan_obj.get_plan(params[:plan_id],params[:shop_domain]) rescue nil
126
+ AppManager::EventHandler.new('charge_created',{
127
+ "plan" => plan_data,
128
+ "charge" => nil,
129
+ "previous_charge" => nil,
130
+ "choose_later" => true
131
+ })
132
+ rescue Exception => e
133
+ Rails.logger.info "APP MANAGER >>>> #{e.inspect}"
134
+ end
123
135
  render json: {'status' => true}
136
+ else
137
+ render json: {'status' => false,'error' => "#{@shop.errors.full_messages.to_sentence}"}, status: 422
138
+ end
124
139
  else
125
140
  render json: {'status' => false,'error' => 'Shop not found or missing shop'}, status: 422
126
141
  end
@@ -140,13 +155,13 @@ module AppManager
140
155
  begin
141
156
  @fs.sync_app_manager
142
157
  rescue Exception => e
143
- Rails.logger.info "APP MANGAGER >>>> LOCAL DB couldn't sync with POTAL DB #{e.inspect}"
158
+ Rails.logger.info "APP MANAGER >>>> LOCAL DB couldn't sync with POTAL DB #{e.inspect}"
144
159
  end
145
160
 
146
161
  begin
147
162
  @fs.save_api_data(params)
148
163
  rescue Exception => e
149
- Rails.logger.info "APP MANGAGER >>>> #{e.inspect}"
164
+ Rails.logger.info "APP MANAGER >>>> #{e.inspect}"
150
165
  end
151
166
  AppManager.clear_cache
152
167
  end
@@ -18,6 +18,10 @@ module AppManager
18
18
  post("/cancel-charge", {shop_domain: shop_domain,plan_id: plan_id})
19
19
  end
20
20
 
21
+ def update_charge(shop_domain,plan_id)
22
+ post("/update-charge", {shop_domain: shop_domain,plan_id: plan_id})
23
+ end
24
+
21
25
  def sync_charge(options = {})
22
26
  post("/sync-charge", options)
23
27
  end
@@ -28,37 +28,37 @@ module AppManager
28
28
  begin
29
29
  save_api_plans(params["plans"])
30
30
  rescue Exception => e
31
- Rails.logger.info "APP MANGAGER >>>> #{e.inspect}"
31
+ Rails.logger.info "APP MANAGER >>>> #{e.inspect}"
32
32
  end
33
33
  begin
34
34
  save_api_charges(params["charges"])
35
35
  rescue Exception => e
36
- Rails.logger.info "APP MANGAGER >>>> #{e.inspect}"
36
+ Rails.logger.info "APP MANAGER >>>> #{e.inspect}"
37
37
  end
38
38
  begin
39
39
  save_api_apps(params["apps"])
40
40
  rescue Exception => e
41
- Rails.logger.info "APP MANGAGER >>>> #{e.inspect}"
41
+ Rails.logger.info "APP MANAGER >>>> #{e.inspect}"
42
42
  end
43
43
  begin
44
44
  save_api_app_structures(params["app_structures"])
45
45
  rescue Exception => e
46
- Rails.logger.info "APP MANGAGER >>>> #{e.inspect}"
46
+ Rails.logger.info "APP MANAGER >>>> #{e.inspect}"
47
47
  end
48
48
  begin
49
49
  save_api_discount_plans(params["discount_plans"])
50
50
  rescue Exception => e
51
- Rails.logger.info "APP MANGAGER >>>> #{e.inspect}"
51
+ Rails.logger.info "APP MANAGER >>>> #{e.inspect}"
52
52
  end
53
53
  begin
54
54
  save_api_extend_trials(params["extend_trials"])
55
55
  rescue Exception => e
56
- Rails.logger.info "APP MANGAGER >>>> #{e.inspect}"
56
+ Rails.logger.info "APP MANAGER >>>> #{e.inspect}"
57
57
  end
58
58
  begin
59
59
  save_api_plan_users(params["plan_users"])
60
60
  rescue Exception => e
61
- Rails.logger.info "APP MANGAGER >>>> #{e.inspect}"
61
+ Rails.logger.info "APP MANAGER >>>> #{e.inspect}"
62
62
  end
63
63
  end
64
64
 
@@ -194,11 +194,22 @@ module AppManager
194
194
 
195
195
 
196
196
  def get_local_plans(params)
197
+
197
198
  plans_data = []
198
199
 
199
200
  active_plan_id = nil
201
+ active_charge_price = nil
202
+
200
203
  charges = @apm_db.execute( "SELECT * FROM charges WHERE shop_domain = ? ",params['shop_domain'])
201
- active_plan_id = charges.first['plan_id'] if charges.any?
204
+
205
+ if charges.any?
206
+ active_plan_id = charges.first['plan_id']
207
+ active_charge_price = charges.first['price']
208
+ elsif params['active_plan_id'].present? && !params['active_plan_id'].nil?
209
+ active_plan_id = params['active_plan_id']
210
+ plan_data = @apm_db.execute( "SELECT * FROM plans WHERE id = ?", active_plan_id)
211
+ active_charge_price = plan_data.first['price'] if plan_data.any?
212
+ end
202
213
 
203
214
  custom_plan_ids = []
204
215
  plan_users = @apm_db.execute( "SELECT * FROM plan_users WHERE shop_domain = ? ",params['shop_domain'])
@@ -232,7 +243,7 @@ module AppManager
232
243
  new_plan[key] = val.collect{|e|e['value']}
233
244
  elsif ['affiliate'].include?(key)
234
245
  new_plan[key] = eval(value)
235
- elsif ['is_custom','public','store_base_plan'].include?(key)
246
+ elsif ['is_custom','public','store_base_plan','choose_later_plan'].include?(key)
236
247
  new_plan[key] = (value == 0 ? false : true)
237
248
  elsif ['test'].include?(key)
238
249
  new_plan[key] = (value == 0 ? nil : true)
@@ -255,12 +266,41 @@ module AppManager
255
266
  features_by_plan.each do |fp|
256
267
  fp['name'] = features.find{|e| e['uuid'] == fp['feature_id']}['name'] rescue nil
257
268
  fp['format'] = features.find{|e| e['uuid'] == fp['feature_id']}['format'] rescue nil
269
+ fp['slug'] = features.find{|e| e['uuid'] == fp['feature_id']}['slug'] rescue nil
258
270
  features_by_plans_data.push(fp)
259
271
  end
260
272
  end
261
273
  end
262
274
 
275
+
276
+ custom_discounts_data = []
277
+ if params["shop_domain"].present? && plan_data
278
+ custom_discounts = @apm_db.execute( "SELECT * FROM discount_plans WHERE shop_domain = ? ORDER BY created_at DESC", params["shop_domain"])
279
+ if custom_discounts.any?
280
+ custom_discounts.each do |custom_discount|
281
+ new_custom_discount = {}
282
+ custom_discount.each_with_index do |(key, value), index|
283
+ new_custom_discount[key] = value unless key.class == Integer
284
+ end
285
+ custom_discounts_data.push(new_custom_discount)
286
+ end
287
+ end
288
+ end
289
+
263
290
  plans_data.each do |plan|
291
+ if (!active_plan_id.nil? && plan['id'] == active_plan_id)
292
+ plan['price'] = active_charge_price
293
+ end
294
+
295
+ if custom_discounts_data.any? && custom_discounts_data.select{|e| e['plan_id'] == plan['id']}.size > 0
296
+ cd_hash = {}
297
+ custom_discounts_data.select{|e| e['plan_id'] == plan['id']}.each do |cd|
298
+ plan['discount'] = cd['discount']
299
+ plan['discount_type'] = cd['discount_type']
300
+ plan['cycle_count'] = cd['cycle_count']
301
+ end
302
+ end
303
+
264
304
  if features_by_plans_data.select{|e| e['plan_id'] == plan['id']}.size > 0
265
305
  feature_hash = {}
266
306
  features_by_plans_data.select{|e| e['plan_id'] == plan['id']}.each do |fp|
@@ -271,11 +311,14 @@ module AppManager
271
311
  features = nil
272
312
  end
273
313
  plan['features'] = features
314
+ plan['old_plan_id'] = nil
315
+
274
316
  end
275
317
 
276
318
  plans = plans_data
277
319
  end
278
320
 
321
+
279
322
  return plans
280
323
  end
281
324
 
@@ -291,7 +334,7 @@ module AppManager
291
334
  new_plan[key] = val
292
335
  elsif ['shopify_plans','affiliate','features'].include?(key)
293
336
  new_plan[key] = eval(value)
294
- elsif ['is_custom','public','store_base_plan'].include?(key)
337
+ elsif ['is_custom','public','store_base_plan','choose_later_plan'].include?(key)
295
338
  new_plan[key] = (value == 0 ? false : true)
296
339
  elsif ['test'].include?(key)
297
340
  new_plan[key] = (value == 0 ? nil : true)
@@ -308,7 +351,7 @@ module AppManager
308
351
  end
309
352
  plan_data['app'] = app_data
310
353
  end
311
-
354
+ plan_data['old_plan_id'] = nil # Temporary for migration puspose only
312
355
  if params["shop_domain"].present? && plan_data
313
356
  @apm_db.execute( "SELECT * FROM discount_plans WHERE plan_id = ? AND shop_domain = ? ", params["plan_id"],params["shop_domain"]) do |cd|
314
357
  plan_data['discount'] = cd['discount'] if cd rescue plan_data['discount']
@@ -322,6 +365,7 @@ module AppManager
322
365
  end
323
366
 
324
367
  end
368
+
325
369
  return plan_data
326
370
  end
327
371
 
@@ -122,6 +122,32 @@ module AppManager
122
122
  return data
123
123
  end
124
124
 
125
+
126
+ def recurring_charge_cancel_api_call(charge_id,shop)
127
+ query = 'mutation(
128
+ $id: ID!
129
+ ){
130
+ appSubscriptionCancel(
131
+ id: $id
132
+ ) {
133
+ userErrors {
134
+ field
135
+ message
136
+ }
137
+ appSubscription {
138
+ id
139
+ status
140
+ }
141
+ }
142
+ }
143
+ '
144
+ variables = {
145
+ "id": "gid://shopify/AppSubscription/#{charge_id}"
146
+ }
147
+ data = run_graph_api(query,variables)
148
+ return data
149
+ end
150
+
125
151
  end
126
152
  end
127
153
 
@@ -31,7 +31,8 @@ module AppManager
31
31
  def plan_features
32
32
  plan_id = self[AppManager.configuration.plan_id_or_name_field]
33
33
  if !plan_id
34
- raise Error, "Plan id not found"
34
+ Rails.logger.info "Plan id found nil or not set in DB"
35
+ return []
35
36
  end
36
37
  plan_obj = AppManager::Client.new
37
38
  plans = plan_obj.get_plan(plan_id)
@@ -64,34 +65,86 @@ module AppManager
64
65
  end
65
66
 
66
67
  def get_remaining_days
67
- shop_domain = self[AppManager.configuration.shopify_domain_field]
68
- trial_activated_at_field = AppManager.configuration.field_names['trial_activated_at']
69
- trial_activated_at_val = self[trial_activated_at_field]
70
- plan_field = AppManager.configuration.field_names['plan_id']
71
- plan_id = self[plan_field]
72
- plan_obj = AppManager::Client.new
73
- shop_domain ? plan_obj.get_remaining_days(shop_domain,trial_activated_at_val,plan_id) : 0
68
+ begin
69
+ shop_domain = self[AppManager.configuration.shopify_domain_field]
70
+ trial_activated_at_field = AppManager.configuration.field_names['trial_activated_at']
71
+ trial_activated_at_val = self[trial_activated_at_field]
72
+ plan_field = AppManager.configuration.field_names['plan_id']
73
+ plan_id = self[plan_field]
74
+ plan_obj = AppManager::Client.new
75
+ shop_domain ? plan_obj.get_remaining_days(shop_domain,trial_activated_at_val,plan_id) : 0
76
+ rescue Exception => e
77
+ return "#{e.inspect}"
78
+ end
74
79
  end
75
80
 
76
81
 
77
- def get_plan
78
- if !self[AppManager.configuration.plan_id_or_name_field]
79
- raise Error, "Invalid params, must have charge_id,shop && plan"
82
+ def get_plan(plan_id=nil)
83
+ req_plan_id = nil
84
+ if !plan_id.nil?
85
+ req_plan_id = plan_id
86
+ else
87
+ shop_plan_id = self[AppManager.configuration.plan_id_or_name_field]
88
+ if shop_plan_id && !shop_plan_id.nil?
89
+ req_plan_id = shop_plan_id
90
+ else
91
+ Rails.logger.info "Invalid params, must have charge_id,shop && plan"
92
+ return {}
93
+ end
80
94
  end
81
- plan_obj = AppManager::Client.new
82
- return plan_obj.get_plan(self[AppManager.configuration.plan_id_or_name_field])
95
+ plan_obj = AppManager::Client.new if req_plan_id
96
+ return req_plan_id ? plan_obj.get_plan(req_plan_id) : {}
83
97
  end
84
98
 
85
99
  def get_charge
100
+ shop_plan_id = self[AppManager.configuration.plan_id_or_name_field]
101
+ found_free_plan = false
102
+ if shop_plan_id && !shop_plan_id.nil?
103
+ plan_obj = AppManager::Client.new
104
+ plan = plan_obj.get_plan(shop_plan_id) rescue nil
105
+ if plan && plan['price'] == 0 && plan['public'] == true
106
+ found_free_plan = true
107
+ return nil
108
+ end
109
+ end
110
+ if !found_free_plan
111
+ begin
112
+ shop_domain = self[AppManager.configuration.shopify_domain_field]
113
+ plan_obj = AppManager::Client.new
114
+ return plan_obj.get_charge(shop_domain)
115
+ rescue Exception => e
116
+ Rails.logger.info "#{e.inspect}"
117
+ return nil
118
+ end
119
+ end
120
+ end
121
+
122
+ def get_all_plans
86
123
  begin
87
124
  shop_domain = self[AppManager.configuration.shopify_domain_field]
125
+ shop_plan_id = self[AppManager.configuration.plan_id_or_name_field]
126
+ active_plan_id = shop_plan_id && shop_plan_id.nil? ? nil : shop_plan_id
88
127
  plan_obj = AppManager::Client.new
89
- return plan_obj.get_charge(shop_domain)
128
+ return plan_obj.get_plans(shop_domain,active_plan_id)
90
129
  rescue Exception => e
91
- return "#{e.inspect}"
130
+ Rails.logger.info "#{e.inspect}"
131
+ return []
92
132
  end
93
133
  end
94
134
 
135
+ def cancel_charge
136
+ begin
137
+ shop_plan_id = self[AppManager.configuration.plan_id_or_name_field]
138
+ shop_domain = self[AppManager.configuration.shopify_domain_field]
139
+ if shop_plan_id && shop_domain
140
+ plan_obj = AppManager::Client.new
141
+ plan_obj.cancel_charge(shop_domain,shop_plan_id)
142
+ end
143
+ rescue Exception => e
144
+ return "#{e.inspect}"
145
+ end
146
+ end
147
+
95
148
  def set_default_plan(plan_id=nil)
96
149
  begin
97
150
  if plan_id.nil?
@@ -117,15 +170,17 @@ module AppManager
117
170
 
118
171
 
119
172
 
120
- def get_plans_by_features(feature_slugs)
173
+ def get_plans_by_features(feature_slugs,params="false")
121
174
  if feature_slugs.any?
175
+ shop_plan_id = self[AppManager.configuration.plan_id_or_name_field]
122
176
  plan_data = []
123
177
  shop_domain = self[AppManager.configuration.shopify_domain_field]
124
178
  plan_obj = AppManager::Client.new
125
179
  plans = plan_obj.get_plans(shop_domain)
126
180
  plans = plans.select{|x| x['interval'] == 'EVERY_30_DAYS' && x['public'] == true}
127
181
  plans.each do |plan|
128
- if plan['features'].any? && plan['features'].values.any? && plan['features'].values.collect{|c| c['slug']}.any?
182
+ next if (params && !params.nil? && params == "exclude_current_plan" && !shop_plan_id.nil? && plan["id"] == shop_plan_id)
183
+ if plan && (plan['features'] && plan['features'].any?) && (plan['features'].values && plan['features'].values.any?) && (plan['features'].values.collect{|c| c['slug']} && plan['features'].values.collect{|c| c['slug']}.any?)
129
184
  plan_feature_slugs = plan['features'].values.collect{|c| c['slug']}.sort
130
185
  if (feature_slugs & plan_feature_slugs).any? && ((feature_slugs & plan_feature_slugs).sort == feature_slugs.sort)
131
186
  plan_data.push(plan)
@@ -138,6 +193,8 @@ module AppManager
138
193
  end
139
194
  end
140
195
 
196
+
197
+
141
198
  private
142
199
 
143
200
  def casted_value(value,value_type)
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module AppManager
4
- VERSION = "1.1.8"
4
+ VERSION = "1.2.0"
5
5
  end
@@ -84,5 +84,6 @@ end
84
84
  ActiveSupport::Notifications.subscribe "charge_created" do |name, start, finish, id, payload|
85
85
  Rails.logger.debug "========APP MANAGER========="
86
86
  Rails.logger.debug "DATA : #{payload}"
87
+ #payload hash contains 3 keys, "plan", "charge", "previous_charge" and an extra key "choose_later" => "true" renders when clicked on choose later
87
88
  Rails.logger.debug "========APP MANAGER========="
88
89
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: app_manager
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.8
4
+ version: 1.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Hulkapps
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-06-30 00:00:00.000000000 Z
11
+ date: 2022-07-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: httparty