app_manager 1.4.4 → 1.5.0
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 +2 -4
- data/app/controllers/app_manager/charges_controller.rb +1 -0
- data/lib/app_manager/fail_safe.rb +14 -13
- data/lib/app_manager/graphql_helper.rb +24 -6
- data/lib/app_manager/version.rb +1 -1
- data/lib/generators/app_manager/install/install_generator.rb +8 -0
- data/lib/generators/app_manager/install/templates/add_external_charge_field.erb +15 -0
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: '08247cd6b523b162de81de3d88cef576612ff41a2b2438b1182613c78e8d8afd'
|
4
|
+
data.tar.gz: 427cdb3d5feb431764fc99b85d64d208762f5994db53791e82a74cc3c1e248f5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d09675e9f069c260e67a0e40c14c786e07e662e4e9901dc8c0a3eb8f21709e3213ae5bf9943e71c3484b59a3dc69448bec6b390960f36da237f85aac31f9dc1f
|
7
|
+
data.tar.gz: '09e251efca96dbea992ab7e5b29eb2fff5c6f353b305699935f5445ee6301784324fa2dbec57777c1212dd0d6b813e639a3ec5bfd11bacbbea99849c56c26173'
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
app_manager (1.
|
4
|
+
app_manager (1.5.0)
|
5
5
|
activerecord-import (~> 1.4)
|
6
6
|
httparty
|
7
7
|
kaminari (>= 0.16.3)
|
@@ -120,7 +120,6 @@ 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
123
|
minitest (5.17.0)
|
125
124
|
multi_xml (0.6.0)
|
126
125
|
net-imap (0.3.4)
|
@@ -133,8 +132,7 @@ GEM
|
|
133
132
|
net-smtp (0.3.3)
|
134
133
|
net-protocol
|
135
134
|
nio4r (2.5.8)
|
136
|
-
nokogiri (1.13.10)
|
137
|
-
mini_portile2 (~> 2.8.0)
|
135
|
+
nokogiri (1.13.10-x86_64-linux)
|
138
136
|
racc (~> 1.4)
|
139
137
|
pry (0.14.1)
|
140
138
|
coderay (~> 1.1)
|
@@ -98,6 +98,7 @@ module AppManager
|
|
98
98
|
charge['shop_domain'] = params[:shop]
|
99
99
|
charge['interval'] = plan_data['interval']['value']
|
100
100
|
|
101
|
+
['api_client_id', 'return_url', 'decorated_return_url','id','id','currency'].each { |k| charge.delete k }
|
101
102
|
# new_plan_obj = AppManager::Client.new
|
102
103
|
# if !@plan_field.nil?
|
103
104
|
# begin
|
@@ -84,7 +84,8 @@ module AppManager
|
|
84
84
|
public_val = plan['public'] ? 1 : 0
|
85
85
|
store_base_plan = plan['store_base_plan'] ? 1 : 0
|
86
86
|
choose_later_plan = plan['choose_later_plan'] ? 1 : 0
|
87
|
-
|
87
|
+
is_external_charge = plan['is_external_charge'] ? 1 : 0
|
88
|
+
plan_data << AppManager::Plan.new(plan_id: plan["id"], type: plan["type"], name: plan["name"], price: plan["price"], offer_text: plan["offer_text"], description: plan["description"], interval: interval, shopify_plans: shopify_plans, trial_days: plan["trial_days"], test: plan_test, on_install: plan["on_install"], is_custom: is_custom, app_id: plan["app_id"], base_plan: plan["base_plan"], created_at: plan["created_at"], updated_at: plan["updated_at"], public: public_val, discount: plan["discount"], cycle_count: plan["cycle_count"], store_base_plan: store_base_plan, choose_later_plan: choose_later_plan, discount_type: plan["discount_type"], affiliate: affiliate, features: features, deleted_at: plan["deleted_at"],is_external_charge: plan["is_external_charge"],external_charge_limit: plan["external_charge_limit"],terms: plan["terms"])
|
88
89
|
end
|
89
90
|
AppManager::Plan.bulk_import plan_data
|
90
91
|
end
|
@@ -102,7 +103,7 @@ module AppManager
|
|
102
103
|
charge_data = []
|
103
104
|
charges.each do |charge|
|
104
105
|
charge_test = charge['test'] ? true : false
|
105
|
-
charge_data << AppManager::Charge.new(charge_id: charge["charge_id"], test: charge_test, status: charge["status"], name: charge["name"], type: charge["type"], price: charge["price"], interval: charge["interval"], trial_days: charge["trial_days"], billing_on: charge["billing_on"], activated_on: charge["activated_on"], trial_ends_on: charge["trial_ends_on"], cancelled_on: charge["cancelled_on"], expires_on: charge["expires_on"], plan_id: charge["plan_id"], description: charge["description"], shop_domain: charge["shop_domain"], created_at: charge["created_at"], updated_at: charge["updated_at"], app_id: charge["app_id"], sync: true)
|
106
|
+
charge_data << AppManager::Charge.new(c_id: charge["id"],charge_id: charge["charge_id"], test: charge_test, status: charge["status"], name: charge["name"], type: charge["type"], price: charge["price"], interval: charge["interval"], trial_days: charge["trial_days"], billing_on: charge["billing_on"], activated_on: charge["activated_on"], trial_ends_on: charge["trial_ends_on"], cancelled_on: charge["cancelled_on"], expires_on: charge["expires_on"], plan_id: charge["plan_id"], description: charge["description"], shop_domain: charge["shop_domain"], created_at: charge["created_at"], updated_at: charge["updated_at"], app_id: charge["app_id"], sync: true)
|
106
107
|
end
|
107
108
|
AppManager::Charge.bulk_import charge_data
|
108
109
|
end
|
@@ -120,7 +121,7 @@ module AppManager
|
|
120
121
|
apps_data = []
|
121
122
|
apps.each do |app|
|
122
123
|
# apps_data << AppManager::App.new(id: app['id'], name: app['name'], slug: app['slug'], url: app['url'], image: app['image'], api_token: app['api_token'], slack: app['slack'], created_at: app['created_at'], updated_at: app['updated_at'])
|
123
|
-
apps_data << AppManager::App.new(name: app['name'], slug: app['slug'], url: app['url'], image: app['image'], api_token: app['api_token'], slack: app['slack'], created_at: app['created_at'], updated_at: app['updated_at'])
|
124
|
+
apps_data << AppManager::App.new(app_id: app['id'],name: app['name'], slug: app['slug'], url: app['url'], image: app['image'], api_token: app['api_token'], slack: app['slack'], created_at: app['created_at'], updated_at: app['updated_at'])
|
124
125
|
end
|
125
126
|
AppManager::Charge.bulk_import apps_data
|
126
127
|
end
|
@@ -147,7 +148,7 @@ module AppManager
|
|
147
148
|
if discount_plans.any?
|
148
149
|
discount_plans_data = []
|
149
150
|
discount_plans.each do |discount_plan|
|
150
|
-
discount_plans_data << AppManager::DiscountPlan.new(discount: discount_plan['discount'], shop_domain: discount_plan['shop_domain'], cycle_count: discount_plan['cycle_count'], plan_id: discount_plan['plan_id'], created_by: discount_plan['created_by'], created_at: discount_plan['created_at'], updated_at: discount_plan['updated_at'], app_id: discount_plan['app_id'], discount_type: discount_plan['discount_type'])
|
151
|
+
discount_plans_data << AppManager::DiscountPlan.new(discount_plan_id: discount_plan['id'],discount: discount_plan['discount'], shop_domain: discount_plan['shop_domain'], cycle_count: discount_plan['cycle_count'], plan_id: discount_plan['plan_id'], created_by: discount_plan['created_by'], created_at: discount_plan['created_at'], updated_at: discount_plan['updated_at'], app_id: discount_plan['app_id'], discount_type: discount_plan['discount_type'])
|
151
152
|
# discount_plans_data << AppManager::DiscountPlan.new(id: discount_plan['id'], discount: discount_plan['discount'], shop_domain: discount_plan['shop_domain'], cycle_count: discount_plan['cycle_count'], plan_id: discount_plan['plan_id'], created_by: discount_plan['created_by'], created_at: discount_plan['created_at'], updated_at: discount_plan['updated_at'], app_id: discount_plan['app_id'], discount_type: discount_plan['discount_type'])
|
152
153
|
end
|
153
154
|
AppManager::DiscountPlan.bulk_import discount_plans_data
|
@@ -164,7 +165,7 @@ module AppManager
|
|
164
165
|
if extend_trials.any?
|
165
166
|
extend_trials_data = []
|
166
167
|
extend_trials.each do |extend_trial|
|
167
|
-
extend_trials_data << AppManager::ExtendTrial.new(shop_domain: extend_trial['shop_domain'], plan_id: extend_trial['plan_id'], app_id: extend_trial['app_id'], days: extend_trial['days'], created_by: extend_trial['created_by'], created_at: extend_trial['created_at'], updated_at: extend_trial['updated_at'], extend_trial_start_at: extend_trial['extend_trial_start_at'])
|
168
|
+
extend_trials_data << AppManager::ExtendTrial.new(extend_trial_id: extend_trial['id'],shop_domain: extend_trial['shop_domain'], plan_id: extend_trial['plan_id'], app_id: extend_trial['app_id'], days: extend_trial['days'], created_by: extend_trial['created_by'], created_at: extend_trial['created_at'], updated_at: extend_trial['updated_at'], extend_trial_start_at: extend_trial['extend_trial_start_at'])
|
168
169
|
# extend_trials_data << AppManager::ExtendTrial.new(id: extend_trial['id'], shop_domain: extend_trial['shop_domain'], plan_id: extend_trial['plan_id'], app_id: extend_trial['app_id'], days: extend_trial['days'], created_by: extend_trial['created_by'], created_at: extend_trial['created_at'], updated_at: extend_trial['updated_at'], extend_trial_start_at: extend_trial['extend_trial_start_at'])
|
169
170
|
end
|
170
171
|
AppManager::ExtendTrial.bulk_import extend_trials_data
|
@@ -181,7 +182,7 @@ module AppManager
|
|
181
182
|
if plan_users.any?
|
182
183
|
extend_plan_users = []
|
183
184
|
plan_users.each do |plan_user|
|
184
|
-
extend_plan_users << AppManager::PlanUser.new(shop_domain: plan_user['shop_domain'], plan_id: plan_user['plan_id'], created_by: plan_user['created_by'], created_at: plan_user['created_at'], updated_at: plan_user['updated_at'])
|
185
|
+
extend_plan_users << AppManager::PlanUser.new(plan_user_id: plan_user['id'],shop_domain: plan_user['shop_domain'], plan_id: plan_user['plan_id'], created_by: plan_user['created_by'], created_at: plan_user['created_at'], updated_at: plan_user['updated_at'])
|
185
186
|
# extend_plan_users << AppManager::PlanUser.new(id: plan_user['id'], shop_domain: plan_user['shop_domain'], plan_id: plan_user['plan_id'], created_by: plan_user['created_by'], created_at: plan_user['created_at'], updated_at: plan_user['updated_at'])
|
186
187
|
end
|
187
188
|
AppManager::ExtendTrial.bulk_import extend_plan_users
|
@@ -210,7 +211,7 @@ module AppManager
|
|
210
211
|
active_charge_price = charges.first['price']
|
211
212
|
elsif params['active_plan_id'].present? && !params['active_plan_id'].nil?
|
212
213
|
active_plan_id = params['active_plan_id']
|
213
|
-
plan_data = AppManager::Plan.where(
|
214
|
+
plan_data = AppManager::Plan.where(plan_id: active_plan_id)
|
214
215
|
active_charge_price = plan_data.first['price'] if plan_data.present?
|
215
216
|
end
|
216
217
|
|
@@ -219,7 +220,7 @@ module AppManager
|
|
219
220
|
custom_plan_ids = plan_users.pluck(:plan_id) if plan_users.present?
|
220
221
|
|
221
222
|
custom_plan_base_ids = []
|
222
|
-
plan_data = AppManager::Plan.where(
|
223
|
+
plan_data = AppManager::Plan.where(plan_id: custom_plan_ids).where.not(base_plan: nil)
|
223
224
|
custom_plan_base_ids = plan_data.pluck(:base_plan) if plan_data.present?
|
224
225
|
|
225
226
|
if active_plan_id && custom_plan_base_ids.include?(active_plan_id)
|
@@ -228,13 +229,13 @@ module AppManager
|
|
228
229
|
|
229
230
|
if custom_plan_base_ids.any?
|
230
231
|
if custom_plan_ids.present?
|
231
|
-
plans = AppManager::Plan.where("public = ? OR
|
232
|
+
plans = AppManager::Plan.where("public = ? OR plan_id IN (?)",true,custom_plan_ids).where.not(plan_id: custom_plan_base_ids)
|
232
233
|
else
|
233
|
-
plans = AppManager::Plan.where(public: true).where.not(
|
234
|
+
plans = AppManager::Plan.where(public: true).where.not(plan_id: custom_plan_base_ids)
|
234
235
|
end
|
235
236
|
else
|
236
237
|
if custom_plan_ids.present?
|
237
|
-
plans = AppManager::Plan.where("public = ? OR
|
238
|
+
plans = AppManager::Plan.where("public = ? OR plan_id IN (?)",true,custom_plan_ids)
|
238
239
|
else
|
239
240
|
plans = AppManager::Plan.where(public: true)
|
240
241
|
end
|
@@ -336,7 +337,7 @@ module AppManager
|
|
336
337
|
plan_data = {}
|
337
338
|
if params.any?
|
338
339
|
if params["plan_id"].present? && !params["plan_id"].nil?
|
339
|
-
plans = AppManager::Plan.where(
|
340
|
+
plans = AppManager::Plan.where(plan_id: params["plan_id"])
|
340
341
|
plans.each do |plan|
|
341
342
|
new_plan = {}
|
342
343
|
plan.as_json.each_with_index do |(key, value), index|
|
@@ -388,7 +389,7 @@ module AppManager
|
|
388
389
|
if params && params['trial_activated_at'].present? && !params['trial_activated_at'].nil? && params['shop_domain'].present? && params['plan_id'].present? && !params['plan_id'].nil?
|
389
390
|
@trial_activated_at = params['trial_activated_at']
|
390
391
|
@plan_id = params['plan_id']
|
391
|
-
plan_data = AppManager::Plan.where(
|
392
|
+
plan_data = AppManager::Plan.where(plan_id: @plan_id)
|
392
393
|
if plan_data.any?
|
393
394
|
trial_days = plan_data.first['trial_days']
|
394
395
|
trial_start_date = Date.parse(@trial_activated_at)
|
@@ -90,6 +90,28 @@ module AppManager
|
|
90
90
|
}
|
91
91
|
price_details.merge! plan_discount if plan_discount.any?
|
92
92
|
|
93
|
+
plan_var = {
|
94
|
+
"appRecurringPricingDetails": price_details,
|
95
|
+
}
|
96
|
+
|
97
|
+
line_items_data = [{
|
98
|
+
"plan": plan_var
|
99
|
+
}]
|
100
|
+
|
101
|
+
if plan['interval']['value'] == 'EVERY_30_DAYS' && plan['is_external_charge'].present? && plan['is_external_charge'] == true && plan['external_charge_limit'] != ''
|
102
|
+
plan_var_usage = {
|
103
|
+
"plan": {
|
104
|
+
"appUsagePricingDetails": {
|
105
|
+
"cappedAmount": {
|
106
|
+
"amount": plan['external_charge_limit'],
|
107
|
+
"currencyCode": "USD"
|
108
|
+
},
|
109
|
+
"terms": plan['terms']
|
110
|
+
}
|
111
|
+
}
|
112
|
+
}
|
113
|
+
line_items_data.push(plan_var_usage)
|
114
|
+
end
|
93
115
|
|
94
116
|
query = 'mutation(
|
95
117
|
$name: String!,
|
@@ -121,14 +143,10 @@ module AppManager
|
|
121
143
|
"returnUrl": return_url,
|
122
144
|
"trialDays": trial_days,
|
123
145
|
"test": plan_test,
|
124
|
-
"lineItems":
|
125
|
-
"plan": {
|
126
|
-
"appRecurringPricingDetails": price_details
|
127
|
-
}
|
128
|
-
}]
|
146
|
+
"lineItems": line_items_data
|
129
147
|
}
|
130
148
|
|
131
|
-
|
149
|
+
data = run_graph_api(query,variables)
|
132
150
|
return data
|
133
151
|
end
|
134
152
|
|
data/lib/app_manager/version.rb
CHANGED
@@ -31,6 +31,14 @@ module AppManager
|
|
31
31
|
end
|
32
32
|
end
|
33
33
|
|
34
|
+
def create_external_charge_field
|
35
|
+
if self.class.migration_exists?("db/app_manager", "add_external_charge_field")
|
36
|
+
say_status("skipped", "Migration add_external_charge_field.rb already exists")
|
37
|
+
else
|
38
|
+
migration_template("add_external_charge_field.erb", "db/app_manager/add_external_charge_field.rb")
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
34
42
|
|
35
43
|
private
|
36
44
|
|
@@ -0,0 +1,15 @@
|
|
1
|
+
class AddExternalChargeFields < ActiveRecord::Migration[<%= rails_migration_version %>]
|
2
|
+
def change
|
3
|
+
add_column :plans, :is_external_charge, :boolean unless column_exists? :plans, :is_external_charge, default: false
|
4
|
+
add_column :plans, :external_charge_limit, :bigint unless column_exists? :plans, :external_charge_limit
|
5
|
+
add_column :plans, :terms, :string unless column_exists? :plans, :terms
|
6
|
+
|
7
|
+
add_column :plans, :plan_id, :bigint unless column_exists? :plans, :plan_id
|
8
|
+
add_column :charges, :c_id, :bigint unless column_exists? :charges, :c_id
|
9
|
+
add_column :apps, :app_id, :bigint unless column_exists? :apps, :app_id
|
10
|
+
add_column :discount_plans, :discount_plan_id, :bigint unless column_exists? :discount_plans, :discount_plan_id
|
11
|
+
add_column :extend_trials, :extend_trial_id, :bigint unless column_exists? :extend_trials, :extend_trial_id
|
12
|
+
add_column :plan_users, :plan_user_id, :bigint unless column_exists? :plan_users, :plan_user_id
|
13
|
+
|
14
|
+
end
|
15
|
+
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.
|
4
|
+
version: 1.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Hulkapps
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-
|
11
|
+
date: 2023-02-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: httparty
|
@@ -118,6 +118,7 @@ files:
|
|
118
118
|
- lib/app_manager/tasks/sync/local_app_manager.rake
|
119
119
|
- lib/app_manager/version.rb
|
120
120
|
- lib/generators/app_manager/install/install_generator.rb
|
121
|
+
- lib/generators/app_manager/install/templates/add_external_charge_field.erb
|
121
122
|
- lib/generators/app_manager/install/templates/add_plan_trial_grandfathered_to_shops.erb
|
122
123
|
- lib/generators/app_manager/install/templates/app_manager.rb.tt
|
123
124
|
- lib/generators/app_manager/install/templates/failsafe_tables.erb
|