app_manager 1.6.0 → 1.6.2

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: 2fd3e056fce2196e44c5eb349cd910cf80a7d94bac2530a957c88bb3c5799685
4
- data.tar.gz: 80ae23cafeb5680a542e3abe6050b9663e3407c395a0f293aea0b4815575ef17
3
+ metadata.gz: ea6c61b1ae005d14902a296e6c1a43e28679313985905b295fb24f4f361434cd
4
+ data.tar.gz: f586f0d88bbb8ccda1fcd4a1c67aea648755909219c8c26671b744eb4c132ee2
5
5
  SHA512:
6
- metadata.gz: a3fc7ee4d7b213c658229d352234a4d43732fd8adc25685e58f3e16bceec6384b8c7dab4b51974c89cf59eba4ce6781aad7afa1638a41f20207957a08b937cd8
7
- data.tar.gz: f1a631d14d3ef1633a773bff3a5bbda2b93f612703086caec1fddf36a2cf2901154422ccbd7ff17badc38de59e9f5ece5ce883b90b9b8b20b20988655265807a
6
+ metadata.gz: 27fd9ec25e4c6e1aa49b06dd2668abdc8f3f51efe6becf6fee47bbecc187e9c5bc51485a0ff40a46d4427d08b675738c7af35fc6815958577e33d30fb295de63
7
+ data.tar.gz: 1f817a3e9193b58e3b792ab36ea567174058f0e39e265c75f6cac5b463a26387007aa6226807b9bd9626171e90ab396b1cbf496c466fae66106ec73eeca2b743
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- app_manager (1.6.0)
4
+ app_manager (1.6.2)
5
5
  activerecord-import (~> 1.4)
6
6
  httparty
7
7
  kaminari (>= 0.16.3)
@@ -10,69 +10,69 @@ PATH
10
10
  GEM
11
11
  remote: https://rubygems.org/
12
12
  specs:
13
- actioncable (7.0.4.2)
14
- actionpack (= 7.0.4.2)
15
- activesupport (= 7.0.4.2)
13
+ actioncable (7.0.5)
14
+ actionpack (= 7.0.5)
15
+ activesupport (= 7.0.5)
16
16
  nio4r (~> 2.0)
17
17
  websocket-driver (>= 0.6.1)
18
- actionmailbox (7.0.4.2)
19
- actionpack (= 7.0.4.2)
20
- activejob (= 7.0.4.2)
21
- activerecord (= 7.0.4.2)
22
- activestorage (= 7.0.4.2)
23
- activesupport (= 7.0.4.2)
18
+ actionmailbox (7.0.5)
19
+ actionpack (= 7.0.5)
20
+ activejob (= 7.0.5)
21
+ activerecord (= 7.0.5)
22
+ activestorage (= 7.0.5)
23
+ activesupport (= 7.0.5)
24
24
  mail (>= 2.7.1)
25
25
  net-imap
26
26
  net-pop
27
27
  net-smtp
28
- actionmailer (7.0.4.2)
29
- actionpack (= 7.0.4.2)
30
- actionview (= 7.0.4.2)
31
- activejob (= 7.0.4.2)
32
- activesupport (= 7.0.4.2)
28
+ actionmailer (7.0.5)
29
+ actionpack (= 7.0.5)
30
+ actionview (= 7.0.5)
31
+ activejob (= 7.0.5)
32
+ activesupport (= 7.0.5)
33
33
  mail (~> 2.5, >= 2.5.4)
34
34
  net-imap
35
35
  net-pop
36
36
  net-smtp
37
37
  rails-dom-testing (~> 2.0)
38
- actionpack (7.0.4.2)
39
- actionview (= 7.0.4.2)
40
- activesupport (= 7.0.4.2)
41
- rack (~> 2.0, >= 2.2.0)
38
+ actionpack (7.0.5)
39
+ actionview (= 7.0.5)
40
+ activesupport (= 7.0.5)
41
+ rack (~> 2.0, >= 2.2.4)
42
42
  rack-test (>= 0.6.3)
43
43
  rails-dom-testing (~> 2.0)
44
44
  rails-html-sanitizer (~> 1.0, >= 1.2.0)
45
- actiontext (7.0.4.2)
46
- actionpack (= 7.0.4.2)
47
- activerecord (= 7.0.4.2)
48
- activestorage (= 7.0.4.2)
49
- activesupport (= 7.0.4.2)
45
+ actiontext (7.0.5)
46
+ actionpack (= 7.0.5)
47
+ activerecord (= 7.0.5)
48
+ activestorage (= 7.0.5)
49
+ activesupport (= 7.0.5)
50
50
  globalid (>= 0.6.0)
51
51
  nokogiri (>= 1.8.5)
52
- actionview (7.0.4.2)
53
- activesupport (= 7.0.4.2)
52
+ actionview (7.0.5)
53
+ activesupport (= 7.0.5)
54
54
  builder (~> 3.1)
55
55
  erubi (~> 1.4)
56
56
  rails-dom-testing (~> 2.0)
57
57
  rails-html-sanitizer (~> 1.1, >= 1.2.0)
58
- activejob (7.0.4.2)
59
- activesupport (= 7.0.4.2)
58
+ activejob (7.0.5)
59
+ activesupport (= 7.0.5)
60
60
  globalid (>= 0.3.6)
61
- activemodel (7.0.4.2)
62
- activesupport (= 7.0.4.2)
63
- activerecord (7.0.4.2)
64
- activemodel (= 7.0.4.2)
65
- activesupport (= 7.0.4.2)
61
+ activemodel (7.0.5)
62
+ activesupport (= 7.0.5)
63
+ activerecord (7.0.5)
64
+ activemodel (= 7.0.5)
65
+ activesupport (= 7.0.5)
66
66
  activerecord-import (1.4.1)
67
67
  activerecord (>= 4.2)
68
- activestorage (7.0.4.2)
69
- actionpack (= 7.0.4.2)
70
- activejob (= 7.0.4.2)
71
- activerecord (= 7.0.4.2)
72
- activesupport (= 7.0.4.2)
68
+ activestorage (7.0.5)
69
+ actionpack (= 7.0.5)
70
+ activejob (= 7.0.5)
71
+ activerecord (= 7.0.5)
72
+ activesupport (= 7.0.5)
73
73
  marcel (~> 1.0)
74
74
  mini_mime (>= 1.1.0)
75
- activesupport (7.0.4.2)
75
+ activesupport (7.0.5)
76
76
  concurrent-ruby (~> 1.0, >= 1.0.2)
77
77
  i18n (>= 1.6, < 2)
78
78
  minitest (>= 5.1)
@@ -81,7 +81,7 @@ GEM
81
81
  public_suffix (>= 2.0.2, < 5.0)
82
82
  builder (3.2.4)
83
83
  coderay (1.1.3)
84
- concurrent-ruby (1.2.0)
84
+ concurrent-ruby (1.2.2)
85
85
  crack (0.4.5)
86
86
  rexml
87
87
  crass (1.0.6)
@@ -95,7 +95,7 @@ GEM
95
95
  httparty (0.21.0)
96
96
  mini_mime (>= 1.0.0)
97
97
  multi_xml (>= 0.5.2)
98
- i18n (1.12.0)
98
+ i18n (1.14.1)
99
99
  concurrent-ruby (~> 1.0)
100
100
  kaminari (1.2.2)
101
101
  activesupport (>= 4.1.0)
@@ -109,9 +109,9 @@ GEM
109
109
  activerecord
110
110
  kaminari-core (= 1.2.2)
111
111
  kaminari-core (1.2.2)
112
- loofah (2.19.1)
112
+ loofah (2.21.3)
113
113
  crass (~> 1.0.2)
114
- nokogiri (>= 1.5.9)
114
+ nokogiri (>= 1.12.0)
115
115
  mail (2.8.1)
116
116
  mini_mime (>= 0.1.1)
117
117
  net-imap
@@ -120,8 +120,8 @@ GEM
120
120
  marcel (1.0.2)
121
121
  method_source (1.0.0)
122
122
  mini_mime (1.1.2)
123
- mini_portile2 (2.8.1)
124
- minitest (5.17.0)
123
+ mini_portile2 (2.8.2)
124
+ minitest (5.18.0)
125
125
  multi_xml (0.6.0)
126
126
  net-imap (0.3.4)
127
127
  date
@@ -132,40 +132,41 @@ GEM
132
132
  timeout
133
133
  net-smtp (0.3.3)
134
134
  net-protocol
135
- nio4r (2.5.8)
136
- nokogiri (1.14.1)
137
- mini_portile2 (~> 2.8.0)
135
+ nio4r (2.5.9)
136
+ nokogiri (1.15.2)
137
+ mini_portile2 (~> 2.8.2)
138
138
  racc (~> 1.4)
139
139
  pry (0.14.1)
140
140
  coderay (~> 1.1)
141
141
  method_source (~> 1.0)
142
142
  public_suffix (4.0.6)
143
143
  racc (1.6.2)
144
- rack (2.2.6.2)
145
- rack-test (2.0.2)
144
+ rack (2.2.7)
145
+ rack-test (2.1.0)
146
146
  rack (>= 1.3)
147
- rails (7.0.4.2)
148
- actioncable (= 7.0.4.2)
149
- actionmailbox (= 7.0.4.2)
150
- actionmailer (= 7.0.4.2)
151
- actionpack (= 7.0.4.2)
152
- actiontext (= 7.0.4.2)
153
- actionview (= 7.0.4.2)
154
- activejob (= 7.0.4.2)
155
- activemodel (= 7.0.4.2)
156
- activerecord (= 7.0.4.2)
157
- activestorage (= 7.0.4.2)
158
- activesupport (= 7.0.4.2)
147
+ rails (7.0.5)
148
+ actioncable (= 7.0.5)
149
+ actionmailbox (= 7.0.5)
150
+ actionmailer (= 7.0.5)
151
+ actionpack (= 7.0.5)
152
+ actiontext (= 7.0.5)
153
+ actionview (= 7.0.5)
154
+ activejob (= 7.0.5)
155
+ activemodel (= 7.0.5)
156
+ activerecord (= 7.0.5)
157
+ activestorage (= 7.0.5)
158
+ activesupport (= 7.0.5)
159
159
  bundler (>= 1.15.0)
160
- railties (= 7.0.4.2)
160
+ railties (= 7.0.5)
161
161
  rails-dom-testing (2.0.3)
162
162
  activesupport (>= 4.2.0)
163
163
  nokogiri (>= 1.6)
164
- rails-html-sanitizer (1.5.0)
165
- loofah (~> 2.19, >= 2.19.1)
166
- railties (7.0.4.2)
167
- actionpack (= 7.0.4.2)
168
- activesupport (= 7.0.4.2)
164
+ rails-html-sanitizer (1.6.0)
165
+ loofah (~> 2.21)
166
+ nokogiri (~> 1.14)
167
+ railties (7.0.5)
168
+ actionpack (= 7.0.5)
169
+ activesupport (= 7.0.5)
169
170
  method_source
170
171
  rake (>= 12.2)
171
172
  thor (~> 1.0)
@@ -187,8 +188,8 @@ GEM
187
188
  diff-lcs (>= 1.2.0, < 2.0)
188
189
  rspec-support (~> 3.11.0)
189
190
  rspec-support (3.11.0)
190
- thor (1.2.1)
191
- timeout (0.3.1)
191
+ thor (1.2.2)
192
+ timeout (0.3.2)
192
193
  tzinfo (2.0.6)
193
194
  concurrent-ruby (~> 1.0)
194
195
  webmock (3.14.0)
@@ -198,7 +199,7 @@ GEM
198
199
  websocket-driver (0.7.5)
199
200
  websocket-extensions (>= 0.1.0)
200
201
  websocket-extensions (0.1.5)
201
- zeitwerk (2.6.6)
202
+ zeitwerk (2.6.8)
202
203
 
203
204
  PLATFORMS
204
205
  ruby
data/README.md CHANGED
@@ -56,6 +56,7 @@ AppManager.configure do |config|
56
56
  config.shopify_domain_field = 'shopify_domain' #shopify domain field
57
57
  config.plan_id_or_name_field = 'plan_id'
58
58
  config.shopify_app_slug = '' #Add your app slug here
59
+ config.plan_page_route = '' #Add your app's plan page route here without first slash. Ex. "payment"
59
60
  config.field_names = {
60
61
  'name' => 'shopify_domain', # demo-rahul-tiwari.myshopify.com
61
62
  'shopify_email' => 'email', # rahul.t@hulkapps.com
@@ -175,9 +176,11 @@ and then you can use follwing methods with your shop objects.
175
176
 
176
177
  if you pass @shop.get_plan(plan_id) it will return that particular plan hash like @shop.get_plan(311)
177
178
 
178
- @shop.get_charge # return current charge hash, it will return nil if current plan is free
179
+ @shop.get_charge # return current charge hash from app manager with 'active_charge' & 'cancelled_charge' keys, it will return nil if current plan is free
179
180
 
180
- @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
181
+ @shop.cancel_charge # it will cancel charge in app manager and will return success to true if done from app manager
182
+
183
+ @shop.set_default_plan(plan_id=nil) #if plan id is passed nil, then it will set the free(public and $0 price) plan_id in database and if passed it will set that plan_id in database.
181
184
 
182
185
  @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:
183
186
 
@@ -193,12 +196,17 @@ and then you can use follwing methods with your shop objects.
193
196
 
194
197
  @shop.get_all_plans # return all app plans array
195
198
 
196
- @shop.active_shopify_charge_id # return active shopify charge id if shop has any current reccurring charge otherwise nil
197
-
198
199
  @shop.get_active_charge_app_manager # return active charge hash from app manager otherwise nil
199
200
 
200
201
  @shop.update_app_manager_charge # return true if shop has shopify recurring charge but app manager doesn't then it update to app manager and return true otherwise nil
201
202
 
203
+ @shop.get_current_shopify_charge # return active charge hash from shopify https://shopify.dev/docs/api/admin-graphql/2022-10/queries/currentAppInstallation otherwise nil
204
+
205
+ @shop.active_shopify_charge_id # return active shopify charge id if shop has any current shopify reccurring charge otherwise nil
206
+
207
+ @shop.cancel_current_shopify_charge # It will cancel charge in shopify if there is any, if success then it will cancel charge in app manager as well using (@shop.cancel_charge ) and will make plan_id and grandfathered field to false. It will clear cache as well.
208
+
209
+ @shop.active_shopfiy_charge_full #It will give shopify recurring charge graphql object with discounted price details
202
210
  ```
203
211
 
204
212
 
@@ -16,15 +16,18 @@ module AppManager
16
16
  plan_data = plan_obj.get_plan(params[:plan_id], params[:shop])
17
17
  # render json: plan_data and return #use this to test plan failsafe api
18
18
  if plan_data.present? && plan_data.is_a?(Hash)
19
- if plan_data['price'] == 0
19
+ if plan_data['price'] == 0 && plan_data['is_external_charge'] == false
20
20
  active_charge_data = plan_obj.get_charge(params[:shop])
21
21
  begin
22
22
  if active_charge_data && active_charge_data.any? && !active_charge_data['active_charge'].nil? && !active_charge_data['active_charge']['charge_id'].nil?
23
23
  gq_obj = AppManager::GraphqlHelper.new(@shop.shopify_domain, @shop.shopify_token)
24
24
  rec_cancel_data = gq_obj.recurring_charge_cancel_api_call(active_charge_data['active_charge']['charge_id'], @shop)
25
25
  if !rec_cancel_data["errors"].present? && (rec_cancel_data["data"].present? && rec_cancel_data["data"]["appSubscriptionCancel"].present? && !rec_cancel_data["data"]["appSubscriptionCancel"]["userErrors"].any? && (rec_cancel_data["data"]["appSubscriptionCancel"]["appSubscription"]["status"] == 'CANCELLED'))
26
- cancelled_charge_id = rec_cancel_data["data"]["appSubscriptionCancel"]["appSubscription"]["id"].split('/')[-1]
27
- plan_obj.cancel_charge(params[:shop], cancelled_charge_id)
26
+ # cancelled_charge_id = rec_cancel_data["data"]["appSubscriptionCancel"]["appSubscription"]["id"].split('/')[-1]
27
+ shop_plan_id = @shop[AppManager.configuration.plan_id_or_name_field]
28
+ if !shop_plan_id.nil?
29
+ plan_obj.cancel_charge(params[:shop], shop_plan_id)
30
+ end
28
31
  end
29
32
  end
30
33
  rescue Exception => e
@@ -83,6 +86,8 @@ module AppManager
83
86
  shopify_domain = @field_names['name']
84
87
  grandfathered_field = @field_names['grandfathered']
85
88
  if !@shop.nil?
89
+ old_plan_id = @shop[@plan_field]
90
+ old_plan_data = nil
86
91
  headers = {"X-Shopify-Access-Token" => @shop[shopify_token]}
87
92
  charges = HTTParty.get('https://' + @shop[shopify_domain] + '/admin/api/' + @api_version + '/recurring_application_charges/' + params[:charge_id] + '.json', :headers => headers)
88
93
 
@@ -99,14 +104,6 @@ module AppManager
99
104
  charge['interval'] = plan_data['interval']['value']
100
105
 
101
106
  ['api_client_id', 'return_url', 'decorated_return_url','id','id','currency'].each { |k| charge.delete k }
102
- # new_plan_obj = AppManager::Client.new
103
- # if !@plan_field.nil?
104
- # begin
105
- # new_plan_obj.cancel_charge(@shop[shopify_domain], @shop[@plan_field])
106
- # rescue Exception => e
107
- # Rollbar.error("APP MANAGER Error in Cancel charge >>>> #{e.inspect}")
108
- # end
109
- # end
110
107
 
111
108
  charge_ob = AppManager::Client.new(nil, json_req = true)
112
109
  response = charge_ob.store_charge(charge.to_json)
@@ -121,6 +118,7 @@ module AppManager
121
118
  end
122
119
 
123
120
  @shop.update(update_info)
121
+
124
122
  Thread.new do
125
123
  charge_data = plan_obj.get_charge(@shop[shopify_domain])
126
124
  begin
@@ -136,8 +134,18 @@ module AppManager
136
134
  end
137
135
  end
138
136
  embed_host = Base64.encode64(params[:shop] + "/admin")
139
- # redirect_to "/login?host=#{embed_host}&shop=#{shop}" and return
140
- if app_slug.present?
137
+
138
+ if !old_plan_id.nil?
139
+ plan_obj = AppManager::Client.new
140
+ old_plan_data = plan_obj.get_plan(old_plan_id, params[:shop])
141
+ end
142
+
143
+ current_plan_string = !plan_data.nil? ? "#{plan_data['name'].gsub(" ", "-")}-#{plan_data['interval']['label']}" : "" rescue ""
144
+ old_plan_string = !old_plan_data.nil? ? "#{old_plan_data['name'].gsub(" ", "-")}-#{old_plan_data['interval']['label']}" : "" rescue ""
145
+ plan_query_string = "new_plan=#{current_plan_string}&old_plan=#{old_plan_string}"
146
+ if app_slug.present? && plan_page_route_value.present?
147
+ redirect_to "https://#{params[:shop]}/admin/apps/#{app_slug}/#{plan_page_route_value}?#{plan_query_string}"
148
+ elsif app_slug.present? && !plan_page_route_value.present?
141
149
  redirect_to "https://#{params[:shop]}/admin/apps/#{app_slug}"
142
150
  else
143
151
  redirect_to "#{app_url}?host=#{embed_host}&shop=#{params[:shop]}", :status => 301 and return
@@ -198,6 +206,10 @@ module AppManager
198
206
  AppManager.configuration.shopify_app_slug
199
207
  end
200
208
 
209
+ def plan_page_route_value
210
+ AppManager.configuration.plan_page_route
211
+ end
212
+
201
213
  def config_trial_days
202
214
  @field_names = AppManager.configuration.field_names
203
215
  if !@field_names.nil? && @field_names.has_key?('total_trial_days') && !@field_names['total_trial_days'].nil? && !@field_names['total_trial_days'].blank?
@@ -14,6 +14,7 @@ module AppManager
14
14
  attr_accessor :field_names
15
15
  attr_accessor :refresh_by_request_params
16
16
  attr_accessor :shopify_app_slug
17
+ attr_accessor :plan_page_route
17
18
 
18
19
  def initialize
19
20
  @refresh_by_request_params = true
@@ -26,6 +27,7 @@ module AppManager
26
27
  @shopify_domain_field = 'shopify_domain'
27
28
  @plan_id_or_name_field = nil
28
29
  @shopify_app_slug = nil
30
+ @plan_page_route = nil
29
31
  @field_names = {
30
32
  'name' => 'shopify_domain', # sample example: demo-chirag-parmar.myshopify.com
31
33
  'shopify_email' => 'email', # chirag.p@hulkapps.com
@@ -88,5 +90,9 @@ module AppManager
88
90
  @shopify_app_slug
89
91
  end
90
92
 
93
+ def plan_page_route
94
+ @plan_page_route
95
+ end
96
+
91
97
  end
92
98
  end
@@ -192,6 +192,56 @@ module AppManager
192
192
  return data
193
193
  end
194
194
 
195
+ def current_rc_charge_gql(shopify_charge_id)
196
+ query = 'query {
197
+ node(id: "gid://shopify/AppSubscription/'+shopify_charge_id+'") {
198
+ ...on AppSubscription {
199
+ createdAt
200
+ currentPeriodEnd
201
+ id
202
+ name
203
+ status
204
+ test
205
+ lineItems {
206
+ plan {
207
+ pricingDetails {
208
+ ...on AppRecurringPricing {
209
+ interval
210
+ price {
211
+ amount
212
+ currencyCode
213
+ }
214
+ discount {
215
+ priceAfterDiscount {
216
+ amount
217
+ }
218
+ }
219
+ }
220
+ ...on AppUsagePricing {
221
+ terms
222
+ cappedAmount {
223
+ amount
224
+ currencyCode
225
+
226
+ }
227
+ balanceUsed {
228
+ amount
229
+ currencyCode
230
+ }
231
+ }
232
+ }
233
+ }
234
+ }
235
+ }
236
+ }
237
+ }'
238
+
239
+
240
+ data = run_graph_api(query,'')
241
+ return data
242
+
243
+ end
244
+
195
245
  end
196
246
  end
197
247
 
@@ -152,6 +152,41 @@ module AppManager
152
152
  end
153
153
  end
154
154
 
155
+ def cancel_current_shopify_charge
156
+ begin
157
+ @field_names = AppManager.configuration.field_names
158
+ shopify_active_charge_id = self.active_shopify_charge_id
159
+ if shopify_active_charge_id.present?
160
+ gq_obj = AppManager::GraphqlHelper.new(self.shopify_domain, self.shopify_token)
161
+ rec_cancel_data = gq_obj.recurring_charge_cancel_api_call(shopify_active_charge_id, self)
162
+ if !rec_cancel_data["errors"].present? && (rec_cancel_data["data"].present? && rec_cancel_data["data"]["appSubscriptionCancel"].present? && !rec_cancel_data["data"]["appSubscriptionCancel"]["userErrors"].any? && (rec_cancel_data["data"]["appSubscriptionCancel"]["appSubscription"]["status"] == 'CANCELLED'))
163
+ cancelled_charge_id = rec_cancel_data["data"]["appSubscriptionCancel"]["appSubscription"]["id"].split('/')[-1]
164
+ self.cancel_charge
165
+ grandfathered_field = @field_names['grandfathered']
166
+ update_info = {AppManager.configuration.plan_id_or_name_field => nil,grandfathered_field => false}
167
+ if self.update(update_info)
168
+ AppManager.clear_cache
169
+ end
170
+ end
171
+ end
172
+ rescue Exception => e
173
+ return "#{e.inspect}"
174
+ end
175
+ end
176
+
177
+ def get_current_shopify_charge
178
+ begin
179
+ gq_obj = AppManager::GraphqlHelper.new(self.shopify_domain, self.shopify_token)
180
+ data = gq_obj.recurring_charge_current_api_call(self)
181
+ if !data["errors"].present? && (data["data"].present? && data["data"]["currentAppInstallation"].present? && data["data"]["currentAppInstallation"]["activeSubscriptions"].present?)
182
+ return data["data"]["currentAppInstallation"]["activeSubscriptions"].first
183
+ end
184
+ rescue Exception => e
185
+ Rollbar.error("Warning in APP MANAGER, trying to get_current_shopify_charge >>>> #{e.inspect}")
186
+ return nil
187
+ end
188
+ end
189
+
155
190
  def get_active_charge_app_manager
156
191
  active_charge = self.get_charge rescue nil
157
192
  return active_charge && active_charge['active_charge'].present? && !active_charge['active_charge'].nil? ? active_charge['active_charge'] : nil
@@ -182,17 +217,16 @@ module AppManager
182
217
  end
183
218
  return charge_updated
184
219
  rescue Exception => e
185
- Rollbar.error("Warning in APP MANAGER, trying to get active shopify charge id >>>> #{e.inspect}")
220
+ Rollbar.error("Warning in APP MANAGER, trying to get update_app_manager_charge >>>> #{e.inspect}")
186
221
  return nil
187
222
  end
188
223
  end
189
224
 
190
225
  def active_shopify_charge_id
191
226
  begin
192
- gq_obj = AppManager::GraphqlHelper.new(self.shopify_domain, self.shopify_token)
193
- data = gq_obj.recurring_charge_current_api_call(self)
194
- if !data["errors"].present? && (data["data"].present? && data["data"]["currentAppInstallation"].present? && data["data"]["currentAppInstallation"]["activeSubscriptions"].present?)
195
- current_shopify_charge_id = data["data"]["currentAppInstallation"]["activeSubscriptions"].first["id"]
227
+ get_active_shopify_charge = self.get_current_shopify_charge
228
+ if get_active_shopify_charge.present? && !get_active_shopify_charge.nil?
229
+ current_shopify_charge_id = get_active_shopify_charge["id"]
196
230
  if current_shopify_charge_id
197
231
  return current_shopify_charge_id.split('/')[-1] rescue nil
198
232
  else
@@ -279,6 +313,17 @@ module AppManager
279
313
  # end
280
314
  end
281
315
 
316
+ def active_shopfiy_charge_full
317
+ active_charge_id = self.active_shopify_charge_id
318
+ if active_charge_id.present?
319
+ gq_obj = AppManager::GraphqlHelper.new(self.shopify_domain, self.shopify_token)
320
+ rac_data = gq_obj.current_rc_charge_gql(active_charge_id)
321
+ return rac_data
322
+ else
323
+ return nil
324
+ end
325
+ end
326
+
282
327
  def config_trial_days
283
328
  @field_names = AppManager.configuration.field_names
284
329
  if !@field_names.nil? && @field_names.has_key?('total_trial_days') && !@field_names['total_trial_days'].nil? && !@field_names['total_trial_days'].blank?
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module AppManager
4
- VERSION = "1.6.0"
4
+ VERSION = "1.6.2"
5
5
  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.6.0
4
+ version: 1.6.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Rahul Tiwari @ Hulkapps
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-02-08 00:00:00.000000000 Z
11
+ date: 2023-06-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: httparty