app_manager 1.2.3 → 1.2.6
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 +4 -4
- data/Gemfile.lock +3 -3
- data/app/controllers/app_manager/plans_controller.rb +2 -1
- data/app_manager.gemspec +1 -1
- data/lib/app_manager/client/connection.rb +20 -0
- data/lib/app_manager/client/plans.rb +4 -0
- data/lib/app_manager/config.rb +1 -1
- data/lib/app_manager/fail_safe.rb +1 -1
- data/lib/app_manager/graphql_helper.rb +2 -4
- data/lib/app_manager/model.rb +19 -7
- data/lib/app_manager/version.rb +1 -1
- data/lib/app_manager.rb +5 -1
- metadata +4 -4
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: cba2a8e2159e68da401fd6ac3e3442b4b9e45e417544f69f0db476c86afcdb40
|
|
4
|
+
data.tar.gz: 16e80be01398355ff3c8d844a52ba9f95581ae9d2f5de9f0ad10a194771d630d
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
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.
|
|
4
|
+
app_manager (1.2.6)
|
|
5
5
|
httparty
|
|
6
6
|
kaminari (>= 0.16.3)
|
|
7
7
|
rails (>= 5.2.0)
|
|
8
|
-
sqlite3 (~> 1.
|
|
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.
|
|
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.
|
|
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
|
data/lib/app_manager/config.rb
CHANGED
|
@@ -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
|
|
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
|
-
|
|
65
|
-
|
|
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
|
data/lib/app_manager/model.rb
CHANGED
|
@@ -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
|
|
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
|
-
|
|
78
|
-
|
|
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?
|
data/lib/app_manager/version.rb
CHANGED
data/lib/app_manager.rb
CHANGED
|
@@ -27,7 +27,11 @@ module AppManager
|
|
|
27
27
|
end
|
|
28
28
|
|
|
29
29
|
def self.clear_cache
|
|
30
|
-
|
|
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.
|
|
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-
|
|
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.
|
|
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.
|
|
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: []
|