From c6bf9ca4d373a05994b7797c2668e24908bc95c2 Mon Sep 17 00:00:00 2001
From: Rimian Perkins
Date: Wed, 23 Oct 2019 10:16:17 +1100
Subject: [PATCH] fix trial period
---
app/controllers/admin/plans_controller.rb | 3 ++-
...-discourse-patrons-products-show-plans-show.js.es6 | 2 +-
.../discourse/discourse-patrons-route-map.js.es6 | 11 -----------
assets/javascripts/discourse/models/admin-plan.js.es6 | 3 ++-
...-discourse-patrons-products-show-plans-show.js.es6 | 2 +-
...min-plugins-discourse-patrons-products-show.js.es6 | 2 --
...ins-discourse-patrons-products-show-plans-show.hbs | 8 ++++----
spec/requests/admin/plans_controller_spec.rb | 7 ++++++-
8 files changed, 16 insertions(+), 22 deletions(-)
diff --git a/app/controllers/admin/plans_controller.rb b/app/controllers/admin/plans_controller.rb
index 7e4f2e0..d8181c3 100644
--- a/app/controllers/admin/plans_controller.rb
+++ b/app/controllers/admin/plans_controller.rb
@@ -24,7 +24,8 @@ module DiscoursePatrons
nickname: params[:nickname],
amount: params[:amount],
interval: params[:interval],
- product: params[:product_id],
+ product: params[:product],
+ trial_period_days: params[:trial_period_days],
currency: SiteSetting.discourse_patrons_currency,
)
diff --git a/assets/javascripts/discourse/controllers/admin-plugins-discourse-patrons-products-show-plans-show.js.es6 b/assets/javascripts/discourse/controllers/admin-plugins-discourse-patrons-products-show-plans-show.js.es6
index 754a85a..25ac63e 100644
--- a/assets/javascripts/discourse/controllers/admin-plugins-discourse-patrons-products-show-plans-show.js.es6
+++ b/assets/javascripts/discourse/controllers/admin-plugins-discourse-patrons-products-show-plans-show.js.es6
@@ -11,7 +11,7 @@ export default Ember.Controller.extend({
},
createPlan() {
- const product_id = this.get('model.plan.product_id');
+ const product_id = this.get('model.plan.product');
this.get('model.plan').save().then(result => this.redirect(product_id));
}
}
diff --git a/assets/javascripts/discourse/discourse-patrons-route-map.js.es6 b/assets/javascripts/discourse/discourse-patrons-route-map.js.es6
index 921bfb5..b700afd 100644
--- a/assets/javascripts/discourse/discourse-patrons-route-map.js.es6
+++ b/assets/javascripts/discourse/discourse-patrons-route-map.js.es6
@@ -6,13 +6,6 @@ export default {
this.route("discourse-patrons", function() {
this.route("dashboard");
- // this.route("products", function() {
- // this.route("plans", { path: "/:product-id/plans" }, function() {
- // this.route("show", { path: ":plan-id" });
- // });
- // this.route("show", { path: "/:product-id" });
- // });
-
this.route("products", function() {
this.route("show", { path: "/:product-id" }, function() {
this.route("plans", function() {
@@ -21,10 +14,6 @@ export default {
});
});
- // this.route("plans", function() {
- // this.route("show", { path: "/:plan-id" });
- // });
-
this.route("subscriptions");
});
}
diff --git a/assets/javascripts/discourse/models/admin-plan.js.es6 b/assets/javascripts/discourse/models/admin-plan.js.es6
index 1618657..473a1df 100644
--- a/assets/javascripts/discourse/models/admin-plan.js.es6
+++ b/assets/javascripts/discourse/models/admin-plan.js.es6
@@ -21,7 +21,8 @@ const AdminPlan = Discourse.Model.extend({
nickname: this.nickname,
interval: this.interval,
amount: this.amount,
- product_id: this.product_id
+ trial_period_days: this.trial_period_days,
+ product: this.product
};
return ajax("/patrons/admin/plans", { method: "post", data });
diff --git a/assets/javascripts/discourse/routes/admin-plugins-discourse-patrons-products-show-plans-show.js.es6 b/assets/javascripts/discourse/routes/admin-plugins-discourse-patrons-products-show-plans-show.js.es6
index 7cd6fce..c91afbd 100644
--- a/assets/javascripts/discourse/routes/admin-plugins-discourse-patrons-products-show-plans-show.js.es6
+++ b/assets/javascripts/discourse/routes/admin-plugins-discourse-patrons-products-show-plans-show.js.es6
@@ -8,7 +8,7 @@ export default Discourse.Route.extend({
let plan;
if(id === 'new') {
- plan = AdminPlan.create({ product_id: product.get('id') });
+ plan = AdminPlan.create({ product: product.get('id') });
}
else {
plan = AdminPlan.find(id);
diff --git a/assets/javascripts/discourse/routes/admin-plugins-discourse-patrons-products-show.js.es6 b/assets/javascripts/discourse/routes/admin-plugins-discourse-patrons-products-show.js.es6
index 176ad8c..08ca81b 100644
--- a/assets/javascripts/discourse/routes/admin-plugins-discourse-patrons-products-show.js.es6
+++ b/assets/javascripts/discourse/routes/admin-plugins-discourse-patrons-products-show.js.es6
@@ -4,8 +4,6 @@ import Group from "discourse/models/group";
export default Discourse.Route.extend({
model(params) {
- console.log('products show', params);
-
const product_id = params['product-id'];
let product;
let plans = [];
diff --git a/assets/javascripts/discourse/templates/admin/plugins-discourse-patrons-products-show-plans-show.hbs b/assets/javascripts/discourse/templates/admin/plugins-discourse-patrons-products-show-plans-show.hbs
index 42eb525..1f000b4 100644
--- a/assets/javascripts/discourse/templates/admin/plugins-discourse-patrons-products-show-plans-show.hbs
+++ b/assets/javascripts/discourse/templates/admin/plugins-discourse-patrons-products-show-plans-show.hbs
@@ -22,7 +22,7 @@
{{i18n 'discourse_patrons.admin.plans.plan.trial'}}
({{i18n 'discourse_patrons.optional'}})
- {{input type="text" name="trial" value=model.plan.trial}}
+ {{input type="text" name="trial" value=model.plan.trial_period_days}}
{{i18n 'discourse_patrons.admin.plans.plan.trial_help'}}
@@ -38,12 +38,12 @@
-
+
{{i18n 'discourse_patrons.admin.plans.operations.create_help'}}
-
+
- {{d-button label="cancel" action=(action "cancelPlan" model.plan.product_id) icon="times"}}
+ {{d-button label="cancel" action=(action "cancelPlan" model.plan.product) icon="times"}}
{{d-button label="discourse_patrons.admin.plans.operations.create" action="createPlan" icon="plus" class="btn btn-primary"}}
diff --git a/spec/requests/admin/plans_controller_spec.rb b/spec/requests/admin/plans_controller_spec.rb
index 8561793..8bd0ce0 100644
--- a/spec/requests/admin/plans_controller_spec.rb
+++ b/spec/requests/admin/plans_controller_spec.rb
@@ -98,9 +98,14 @@ module DiscoursePatrons
post "/patrons/admin/plans.json", params: { amount: '102' }
end
+ it "creates a plan with a trial period" do
+ ::Stripe::Plan.expects(:create).with(has_entry(:trial_period_days, '14'))
+ post "/patrons/admin/plans.json", params: { trial_period_days: '14' }
+ end
+
it "creates a plan with a product" do
::Stripe::Plan.expects(:create).with(has_entry(product: 'prod_walterwhite'))
- post "/patrons/admin/plans.json", params: { product_id: 'prod_walterwhite' }
+ post "/patrons/admin/plans.json", params: { product: 'prod_walterwhite' }
end
end