app_manager 1.2.4 → 1.2.7

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: 9c547a5aa3260006c06faf84cd242801459dc0d6557139d94797558b2e960cf3
4
- data.tar.gz: bb52538ee806521616ca899b526db05d5dfa606921c0a49874584af7d5960ed2
3
+ metadata.gz: 559b2673d956bf393a0182e6bce25468802af17e39d6f3144a4ffdc6b78c8746
4
+ data.tar.gz: 698af4708cb8956733e8c6430fd4a280547411263ffac2f92dadd3e6fc3be8a1
5
5
  SHA512:
6
- metadata.gz: 0cf9d50efcfd4a72bc88a842d1ba7508a56cfe0a4eb29c3226ed526cda19a095125382292093fd2f296ea71c8cdca562039af5dda5b2ba2df34fe4ca05070f8c
7
- data.tar.gz: 6b4db1ea27b42898de5549a5fa528a3df9c759071e228d9a373075766b91086658d632b8427e5d9761382d16c3f46cb2685b5dcb8f33898f4590e3f7dd50f3f9
6
+ metadata.gz: bc4d093387cbf91f43cc6e303b5829f9aa30e8f4e80299419edcc324a9902a34cf26e39f6a1bfc8770da596efd34fa746be692f5ca9d7d9f0b688f1e41a96e17
7
+ data.tar.gz: cb61ff896ea8f84cd97305a711befc02dfd2ebd56da8d0d652b251d0ff9c55a20ab8992ada75854e7fb8f81e58b22314e8af8ac198064a4d66f0add031b19ca5
data/.gitignore CHANGED
@@ -6,4 +6,6 @@
6
6
  /pkg/
7
7
  /spec/reports/
8
8
  /tmp/
9
- /.env
9
+ /.env
10
+ .idea/
11
+ .rakeTasks
data/Gemfile.lock CHANGED
@@ -1,11 +1,11 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- app_manager (1.2.4)
4
+ app_manager (1.2.7)
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/
@@ -93,7 +93,7 @@ GEM
93
93
  httparty (0.20.0)
94
94
  mime-types (~> 3.0)
95
95
  multi_xml (>= 0.5.2)
96
- i18n (1.10.0)
96
+ i18n (1.11.0)
97
97
  concurrent-ruby (~> 1.0)
98
98
  kaminari (1.2.2)
99
99
  activesupport (>= 4.1.0)
@@ -118,7 +118,6 @@ GEM
118
118
  mime-types-data (~> 3.2015)
119
119
  mime-types-data (3.2022.0105)
120
120
  mini_mime (1.1.2)
121
- mini_portile2 (2.8.0)
122
121
  minitest (5.16.2)
123
122
  multi_xml (0.6.0)
124
123
  net-imap (0.2.3)
@@ -136,9 +135,6 @@ GEM
136
135
  net-protocol
137
136
  timeout
138
137
  nio4r (2.5.8)
139
- nokogiri (1.13.6)
140
- mini_portile2 (~> 2.8.0)
141
- racc (~> 1.4)
142
138
  nokogiri (1.13.6-x86_64-linux)
143
139
  racc (~> 1.4)
144
140
  pry (0.14.1)
@@ -192,7 +188,7 @@ GEM
192
188
  diff-lcs (>= 1.2.0, < 2.0)
193
189
  rspec-support (~> 3.11.0)
194
190
  rspec-support (3.11.0)
195
- sqlite3 (1.3.13)
191
+ sqlite3 (1.4.4)
196
192
  strscan (3.0.3)
197
193
  thor (1.2.1)
198
194
  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?
@@ -31,7 +32,7 @@ module AppManager
31
32
  @trial_activated_field = AppManager.configuration.field_names['trial_activated_at']
32
33
  trial_activated_at = @shop[@trial_activated_field] rescue nil
33
34
  active_charge = plan_obj.get_charge(params[:shop_domain])
34
- if active_charge && active_charge.any? && active_charge['active_charge'].nil? && active_charge['cancelled_charge'].nil? && !trial_activated_at
35
+ if active_charge && active_charge.any? && active_charge['active_charge'].nil? && active_charge['cancelled_charge'].nil? && !trial_activated_at && !plan
35
36
  choose_later = true
36
37
  end
37
38
 
@@ -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
@@ -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
 
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module AppManager
4
- VERSION = "1.2.4"
4
+ VERSION = "1.2.7"
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.4
4
+ version: 1.2.7
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-11 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: []