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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 12f885e36cfc5b5d0884b2728fb4d3bb6eb413a3f8fc582f3c9d14987da29710
4
- data.tar.gz: bc2e8f8640351cb0e77627a62973157f4881c5f9f95037f77097c16b48da1e25
3
+ metadata.gz: '08247cd6b523b162de81de3d88cef576612ff41a2b2438b1182613c78e8d8afd'
4
+ data.tar.gz: 427cdb3d5feb431764fc99b85d64d208762f5994db53791e82a74cc3c1e248f5
5
5
  SHA512:
6
- metadata.gz: 3598cd82cace65cb43350d12342cd1f5803febf7448ebacd5baf4ac9ad53eccf15b2efcf1a5b5f6b39c1ccfa181dd7d84bc5e434f8b9efa350262202871779ce
7
- data.tar.gz: 75c8b0cbd26af4c9978c19914bc40bb30bb7427da667dc64cd1fc4d0b9e786472457892b96ed4bb75f887fcff2dbbe724d5e92d069620dcbe17e5dff94eb9cd9
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.4)
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
- plan_data << AppManager::Plan.new(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"])
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(id: active_plan_id)
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(id: custom_plan_ids).where.not(base_plan: nil)
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 id IN (?)",true,custom_plan_ids).where.not(id: custom_plan_base_ids)
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(id: custom_plan_base_ids)
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 id IN (?)",true,custom_plan_ids)
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(id: params["plan_id"])
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(id: @plan_id)
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
- data = run_graph_api(query,variables)
149
+ data = run_graph_api(query,variables)
132
150
  return data
133
151
  end
134
152
 
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module AppManager
4
- VERSION = "1.4.4"
4
+ VERSION = "1.5.0"
5
5
  end
@@ -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.4
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-01-12 00:00:00.000000000 Z
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