app_manager 1.2.3 → 1.2.6

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: 332f708479d365509b91a40229d7be81e2d4ff29bc14ec4d24f59cad3dd007d8
4
- data.tar.gz: addf31453c0847a80a734994ec65d8eaa8eb9a8bf18067359e3e97c5cbd06ac6
3
+ metadata.gz: cba2a8e2159e68da401fd6ac3e3442b4b9e45e417544f69f0db476c86afcdb40
4
+ data.tar.gz: 16e80be01398355ff3c8d844a52ba9f95581ae9d2f5de9f0ad10a194771d630d
5
5
  SHA512:
6
- metadata.gz: cafc22adef5875aea99cc8f8acebc7ee79e187359bf7aa6408d1692390a79af37e721efe3e7fd7a3a23e898b092988eca098a0ce6d3f737cfae30ceb19422243
7
- data.tar.gz: d74683f76df315f6a9b03f3f357d09ef63d50f0efd18b64e7fd83a160603cc26078ab82fc1d2c0041772de37f656714f554ac83656514cbd59a2c25220e2efc8
6
+ metadata.gz: 0c926ddee98d8311397d52d9a27d263c33da079c9971aacd6dbd29020022b38042b772d3195ff60e83e22ecb0b2f6af14e21023ffd4b9541c2315dd9be9a585b
7
+ data.tar.gz: b723e7e8d3d8ba97780220140508188c14547037e88e6f5d77110c2cea5dc57c202d3ac9ca64015ebf4df73e1afa74fa856e2f87f88073ddf207cc02525a715b
data/Gemfile.lock CHANGED
@@ -1,11 +1,11 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- app_manager (1.2.3)
4
+ app_manager (1.2.6)
5
5
  httparty
6
6
  kaminari (>= 0.16.3)
7
7
  rails (>= 5.2.0)
8
- sqlite3 (~> 1.3.0)
8
+ sqlite3 (~> 1.4.4)
9
9
 
10
10
  GEM
11
11
  remote: https://rubygems.org/
@@ -192,7 +192,7 @@ GEM
192
192
  diff-lcs (>= 1.2.0, < 2.0)
193
193
  rspec-support (~> 3.11.0)
194
194
  rspec-support (3.11.0)
195
- sqlite3 (1.3.13)
195
+ sqlite3 (1.4.4)
196
196
  strscan (3.0.3)
197
197
  thor (1.2.1)
198
198
  timeout (0.3.0)
@@ -16,6 +16,7 @@ module AppManager
16
16
  active_charge = nil
17
17
  default_plan_id = nil
18
18
  choose_later = false
19
+ trial_activated_at = nil
19
20
  plan_obj = AppManager::Client.new
20
21
  plans = []
21
22
  if params[:shop_domain].present? && !AppManager.configuration.plan_features.nil?
@@ -66,7 +67,7 @@ module AppManager
66
67
  'plan' => plan,
67
68
  'default_plan_id' => default_plan_id,
68
69
  'choose_later' => choose_later,
69
- 'has_active_charge' => (!active_charge['active_charge'].nil? ? true : false)
70
+ 'has_active_charge' => (((active_charge && active_charge.any? && !active_charge['active_charge'].nil?) or !trial_activated_at) ? true : false)
70
71
  }
71
72
  render json: response
72
73
  end
data/app_manager.gemspec CHANGED
@@ -33,7 +33,7 @@ Gem::Specification.new do |spec|
33
33
  spec.add_dependency "httparty"
34
34
  spec.add_dependency "rails", '>= 5.2.0'
35
35
  spec.add_dependency "kaminari", '>= 0.16.3'
36
- spec.add_dependency "sqlite3", '~> 1.3.0'
36
+ spec.add_dependency "sqlite3", '~> 1.4.4'
37
37
  # For more information and examples about making a new gem, checkout our
38
38
  # guide at: https://bundler.io/guides/creating_gem.html
39
39
  end
@@ -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")
@@ -38,6 +38,10 @@ module AppManager
38
38
  get("/get-status", options)
39
39
  end
40
40
 
41
+ def has_plan(shop_domain,plan_id,trial_activated_at,grandfathered)
42
+ get("/has-plan?shop_domain=#{shop_domain}&plan_id=#{plan_id}&trial_activated_at=#{trial_activated_at}&grandfathered=#{grandfathered}")
43
+ end
44
+
41
45
 
42
46
  end
43
47
  end
@@ -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
@@ -61,10 +61,8 @@ module AppManager
61
61
  trial_days = plan['trial_days'] || 0
62
62
 
63
63
  if shop && shop.shopify_domain && trial_days
64
- trial_activated_at_field = AppManager.configuration.field_names['trial_activated_at'] rescue nil
65
- trial_activated_at = shop[trial_activated_at] rescue nil
66
- plan_field = AppManager.configuration.plan_id_or_name_field rescue nil
67
- plan_id_field = shop[@plan_field] rescue nil
64
+ trial_activated_at = shop[AppManager.configuration.field_names['trial_activated_at']] rescue nil
65
+ plan_id_field = shop[AppManager.configuration.plan_id_or_name_field] rescue nil
68
66
  remaining_obj = AppManager::Client.new
69
67
  remaining = remaining_obj.get_remaining_days(shop.shopify_domain,trial_activated_at,plan_id_field)
70
68
  trial_days = !remaining.nil? ? remaining : trial_days
@@ -5,7 +5,7 @@ module AppManager
5
5
  @@remaining_cache_key = "get_remaining_days_key"
6
6
  @@get_charge_key = "get_charge_key"
7
7
 
8
- def has_plan
8
+ def has_plan_old
9
9
  if !self[AppManager.configuration.plan_id_or_name_field]
10
10
  return false;
11
11
  end
@@ -28,6 +28,20 @@ module AppManager
28
28
  return active_charge && active_charge['active_charge'].present? && !active_charge['active_charge'].nil? ? true : false
29
29
  end
30
30
 
31
+ def has_plan
32
+ plan_id = self[AppManager.configuration.plan_id_or_name_field]
33
+ if !plan_id
34
+ return false;
35
+ end
36
+ grandfathered = self[AppManager.configuration.field_names['grandfathered']]
37
+ grandfathered = grandfathered ? 1 : 0
38
+ shop_domain = self[AppManager.configuration.shopify_domain_field]
39
+ trial_activated_at_field = AppManager.configuration.field_names['trial_activated_at']
40
+ trial_activated_at_val = self[trial_activated_at_field]
41
+ plan_obj = AppManager::Client.new
42
+ response = plan_obj.has_plan(shop_domain,plan_id,trial_activated_at_val,grandfathered)
43
+ return (response && response['has_plan']) || false
44
+ end
31
45
 
32
46
 
33
47
  def plan_features
@@ -51,7 +65,7 @@ module AppManager
51
65
 
52
66
 
53
67
  def has_feature(slug)
54
- self.plan_features.select{|x| x['slug'].to_s == slug }.size > 0
68
+ self.plan_features.any? && self.plan_features.select{|x| x['slug'].to_s == slug }.size > 0 ? true : false
55
69
  end
56
70
 
57
71
 
@@ -67,17 +81,14 @@ module AppManager
67
81
  end
68
82
 
69
83
  def get_remaining_days
70
- begin
71
84
  shop_domain = self[AppManager.configuration.shopify_domain_field]
72
85
  trial_activated_at_field = AppManager.configuration.field_names['trial_activated_at']
73
86
  trial_activated_at_val = self[trial_activated_at_field]
74
87
  plan_field = AppManager.configuration.field_names['plan_id']
75
88
  plan_id = self[plan_field]
76
89
  plan_obj = AppManager::Client.new
77
- shop_domain ? plan_obj.get_remaining_days(shop_domain,trial_activated_at_val,plan_id) : 0
78
- rescue Exception => e
79
- return "#{e.inspect}"
80
- end
90
+ res = plan_obj.get_remaining_days(shop_domain,trial_activated_at_val,plan_id)
91
+ return (res && !res.nil?) ? res : 0
81
92
  end
82
93
 
83
94
 
@@ -214,6 +225,7 @@ module AppManager
214
225
  end
215
226
 
216
227
 
228
+
217
229
  def fetch_static_get_charge
218
230
  @get_charge_key = "app-manager-cache/#{self.shopify_domain}-get_charge"
219
231
  if fetch_cached_static_get_charge(@get_charge_key).present?
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module AppManager
4
- VERSION = "1.2.3"
4
+ VERSION = "1.2.6"
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.3
4
+ version: 1.2.6
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-06 00:00:00.000000000 Z
11
+ date: 2022-07-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: httparty
@@ -58,14 +58,14 @@ dependencies:
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: 1.3.0
61
+ version: 1.4.4
62
62
  type: :runtime
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: 1.3.0
68
+ version: 1.4.4
69
69
  description: Provides helper function to access AppManager API
70
70
  email: rahul.t@hulkapps.com
71
71
  executables: []