app_manager 1.2.2 → 1.2.5

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: 9e3986aadebfd51cccf040bfd0a5ad36041de436ac3ab4c074fb0a2174a9da10
4
- data.tar.gz: 83e772b1847481e9e91745f91569973d16e1809eb7732affe4f6f46ab3385c89
3
+ metadata.gz: b8b130ade59cce66eefb10134bca05802a6f7911e59123a1f8885789547a6c5f
4
+ data.tar.gz: d3fb70f8010e1d70dc1042c28322d5eeb7696cdecef9bd29fdd09e80a9a02e9d
5
5
  SHA512:
6
- metadata.gz: 8793bb25fdfbff2ed36e2c0f4f24f63d6c40c1bc6df999ef101cfa6f6b66d2732729743f1ab2298d66debfbd6785ea47bddcdacf7fa3d21efcebdd17bcda5b3b
7
- data.tar.gz: 1b040a0afaedeb15cf4892f9010105e4f1ea1e6f7a92b75c5d65dc5e1c3a5870fd3eb4a01f825738a5c8fbc722a8f3dd63fe3be8eb217bf19ac4859bc1d716bd
6
+ metadata.gz: 3fbef0b8ce7194394d942bbf2fd93d1aa52c7b9035be8a98a09ab080c33d047c8e8fe213f66d5cc1396aa326f7d4881d0db47077ffae42a01b1558f8a8c3febc
7
+ data.tar.gz: e2138c8801189e683ae7db8703dbe2703eedfdedca2a87c0a6f00528bb49bcd28436e457aeb77dca3113993599459b25632e190ee85e95521332d43fe018a4a1
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- app_manager (1.2.2)
4
+ app_manager (1.2.5)
5
5
  httparty
6
6
  kaminari (>= 0.16.3)
7
7
  rails (>= 5.2.0)
@@ -172,6 +172,7 @@ module AppManager
172
172
  end
173
173
 
174
174
 
175
+
175
176
  private
176
177
 
177
178
  def params_permit
@@ -24,7 +24,11 @@ module AppManager
24
24
 
25
25
  def request(http_method, path, options)
26
26
  begin
27
+ if http_method.to_s == 'get'
28
+ response = response_from_cache_for_api(http_method, path, options)
29
+ else
27
30
  response = self.class.send(http_method, path, { body: options, timeout: 10 })
31
+ end
28
32
  if path.include? "/get-status"
29
33
  data = response
30
34
  elsif path.include? "/sync-charge"
@@ -44,6 +48,22 @@ module AppManager
44
48
  end
45
49
  end
46
50
 
51
+ def response_from_cache_for_api(http_method, path, options)
52
+ cache_key = "app-manager-cache/#{path}"
53
+ if fetch_static_cached_response(cache_key).present?
54
+ return fetch_static_cached_response(cache_key)
55
+ end
56
+ response = self.class.send(http_method, path, { body: options, timeout: 10 })
57
+ Rails.cache.write(cache_key, response, expires_in: AppManager.configuration.expires_in)
58
+ return response
59
+ end
60
+
61
+ def fetch_static_cached_response(cache_key)
62
+ if Rails.cache.read(cache_key).present?
63
+ return Rails.cache.read(cache_key)
64
+ end
65
+ end
66
+
47
67
  def parse_data(original_data)
48
68
  return unless original_data
49
69
  if (original_data.class == Hash) && original_data.key?("headers") && original_data.key?("footers") && original_data.key?("modal")
@@ -35,7 +35,7 @@ module AppManager
35
35
  'email' => 'email'
36
36
  }
37
37
  @fs = AppManager::FailSafe.new
38
- AppManager.clear_cache
38
+ # AppManager.clear_cache
39
39
  end
40
40
 
41
41
  def expires_in
@@ -10,7 +10,7 @@ module AppManager
10
10
  def initialize(db_name='app_manager_local')
11
11
  @apm_db = SQLite3::Database.open "db/#{db_name}.db"
12
12
  begin
13
- FileUtils.chmod 0777, "db/#{db_name}.db"
13
+ FileUtils.chmod 0664, "db/#{db_name}.db"
14
14
  rescue Exception => e
15
15
  puts ">>>>>> #{e.inspect}"
16
16
  end
@@ -2,7 +2,8 @@ module AppManager
2
2
  module Model
3
3
  extend ActiveSupport::Concern
4
4
 
5
-
5
+ @@remaining_cache_key = "get_remaining_days_key"
6
+ @@get_charge_key = "get_charge_key"
6
7
 
7
8
  def has_plan
8
9
  if !self[AppManager.configuration.plan_id_or_name_field]
@@ -16,14 +17,15 @@ module AppManager
16
17
  Rails.logger.info "Plan id found nil or not set"
17
18
  return false;
18
19
  end
19
- remaining_days = self.get_remaining_days
20
+ remaining_days = fetch_static_remaining_days
20
21
  if remaining_days > 0
21
22
  return true
22
23
  end
23
- plan_obj = AppManager::Client.new
24
- shop_domain = self[AppManager.configuration.shopify_domain_field]
25
- active_charge = plan_obj.get_charge(shop_domain) rescue nil
26
- return active_charge['active_charge'].present? && !active_charge['active_charge'].nil? ? true : false
24
+ # plan_obj = AppManager::Client.new
25
+ # shop_domain = self[AppManager.configuration.shopify_domain_field]
26
+ # active_charge = plan_obj.get_charge(shop_domain) rescue nil
27
+ active_charge = fetch_static_get_charge
28
+ return active_charge && active_charge['active_charge'].present? && !active_charge['active_charge'].nil? ? true : false
27
29
  end
28
30
 
29
31
 
@@ -72,7 +74,7 @@ module AppManager
72
74
  plan_field = AppManager.configuration.field_names['plan_id']
73
75
  plan_id = self[plan_field]
74
76
  plan_obj = AppManager::Client.new
75
- shop_domain ? plan_obj.get_remaining_days(shop_domain,trial_activated_at_val,plan_id) : 0
77
+ return shop_domain ? plan_obj.get_remaining_days(shop_domain,trial_activated_at_val,plan_id) : 0
76
78
  rescue Exception => e
77
79
  return "#{e.inspect}"
78
80
  end
@@ -195,6 +197,41 @@ module AppManager
195
197
 
196
198
 
197
199
 
200
+ def fetch_static_remaining_days
201
+ @remaining_cache_key = "app-manager-cache/#{self.shopify_domain}-remaining_days"
202
+ if fetch_cached_static_remaining_days(@remaining_cache_key).present?
203
+ return fetch_cached_static_remaining_days(@remaining_cache_key)
204
+ end
205
+ remaining_days = self.get_remaining_days
206
+ Rails.cache.write(@remaining_cache_key, remaining_days, expires_in: AppManager.configuration.expires_in)
207
+ return remaining_days
208
+ end
209
+
210
+ def fetch_cached_static_remaining_days(cache_key)
211
+ if Rails.cache.read(cache_key).present?
212
+ return Rails.cache.read(cache_key)
213
+ end
214
+ end
215
+
216
+
217
+
218
+ def fetch_static_get_charge
219
+ @get_charge_key = "app-manager-cache/#{self.shopify_domain}-get_charge"
220
+ if fetch_cached_static_get_charge(@get_charge_key).present?
221
+ return fetch_cached_static_get_charge(@get_charge_key)
222
+ end
223
+ charge = self.get_charge
224
+ Rails.cache.write(@get_charge_key, charge, expires_in: AppManager.configuration.expires_in)
225
+ return charge
226
+ end
227
+
228
+ def fetch_cached_static_get_charge(cache_key)
229
+ if Rails.cache.read(cache_key).present?
230
+ return Rails.cache.read(cache_key)
231
+ end
232
+ end
233
+
234
+
198
235
  private
199
236
 
200
237
  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.2.2"
4
+ VERSION = "1.2.5"
5
5
  end
data/lib/app_manager.rb CHANGED
@@ -27,7 +27,11 @@ module AppManager
27
27
  end
28
28
 
29
29
  def self.clear_cache
30
- Rails.cache.delete_matched('app-manager-cache/*')
30
+ begin
31
+ Rails.cache.delete_matched('app-manager-cache/*')
32
+ rescue Exception => e
33
+ Rails.logger.info "APP MANAGER >>>> #{e.inspect}"
34
+ end
31
35
  end
32
36
 
33
37
  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.2.2
4
+ version: 1.2.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Hulkapps
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-07-05 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: httparty