diff --git a/app/controllers/admin/plans_controller.rb b/app/controllers/admin/plans_controller.rb
index 7387821..0f56505 100644
--- a/app/controllers/admin/plans_controller.rb
+++ b/app/controllers/admin/plans_controller.rb
@@ -6,6 +6,11 @@ module DiscoursePatrons
before_action :set_api_key
+ def index
+ plans = ::Stripe::Plan.list
+ render json: plans.data
+ end
+
def create
plan = ::Stripe::Plan.create(
amount: params[:amount],
@@ -17,7 +22,7 @@ module DiscoursePatrons
id: 'gold-special',
)
- plan.to_json
+ render json: plan
end
end
end
diff --git a/app/controllers/concerns/stripe.rb b/app/controllers/concerns/stripe.rb
index a7cefdf..ce5d638 100644
--- a/app/controllers/concerns/stripe.rb
+++ b/app/controllers/concerns/stripe.rb
@@ -5,7 +5,7 @@ module DiscoursePatrons
extend ActiveSupport::Concern
def set_api_key
- ::Stripe.api_key = 'SiteSetting.discourse_patrons_secret_key'
+ ::Stripe.api_key = SiteSetting.discourse_patrons_secret_key
end
end
end
diff --git a/assets/javascripts/discourse/controllers/admin-plugins-discourse-patrons-plans-index.js.es6 b/assets/javascripts/discourse/controllers/admin-plugins-discourse-patrons-plans-index.js.es6
new file mode 100644
index 0000000..9fcc419
--- /dev/null
+++ b/assets/javascripts/discourse/controllers/admin-plugins-discourse-patrons-plans-index.js.es6
@@ -0,0 +1,5 @@
+export default Ember.Controller.extend({
+ actions: {
+ deletePlan(plan) {}
+ }
+});
diff --git a/assets/javascripts/discourse/routes/admin-plugins-discourse-patrons-plans-index.js.es6 b/assets/javascripts/discourse/routes/admin-plugins-discourse-patrons-plans-index.js.es6
new file mode 100644
index 0000000..9809f55
--- /dev/null
+++ b/assets/javascripts/discourse/routes/admin-plugins-discourse-patrons-plans-index.js.es6
@@ -0,0 +1,7 @@
+import { ajax } from "discourse/lib/ajax";
+
+export default Discourse.Route.extend({
+ model() {
+ return ajax("/patrons/admin/plans", { method: "get" });
+ }
+});
diff --git a/assets/javascripts/discourse/routes/admin-plugins-discourse-patrons-plans.js.es6 b/assets/javascripts/discourse/routes/admin-plugins-discourse-patrons-plans.js.es6
index 55af882..6408cd8 100644
--- a/assets/javascripts/discourse/routes/admin-plugins-discourse-patrons-plans.js.es6
+++ b/assets/javascripts/discourse/routes/admin-plugins-discourse-patrons-plans.js.es6
@@ -1 +1,2 @@
+
export default Discourse.Route.extend({});
diff --git a/assets/javascripts/discourse/routes/admin-plugins-discourse-patrons-subscriptions.js.es6 b/assets/javascripts/discourse/routes/admin-plugins-discourse-patrons-subscriptions.js.es6
index ed31033..268dd39 100644
--- a/assets/javascripts/discourse/routes/admin-plugins-discourse-patrons-subscriptions.js.es6
+++ b/assets/javascripts/discourse/routes/admin-plugins-discourse-patrons-subscriptions.js.es6
@@ -1,13 +1,7 @@
import { ajax } from "discourse/lib/ajax";
export default Discourse.Route.extend({
- // model(params) {
- // return ajax("/patrons/admin/subscriptions", {
- // method: "get",
- // data: {
- // order: params.order,
- // descending: params.descending
- // }
- // }).then(results => results);
- // }
+ model(params) {
+ return ajax("/patrons/admin/subscriptions", { method: "get" });
+ }
});
diff --git a/assets/javascripts/discourse/templates/admin/plugins-discourse-patrons-plans-index.hbs b/assets/javascripts/discourse/templates/admin/plugins-discourse-patrons-plans-index.hbs
new file mode 100644
index 0000000..0381917
--- /dev/null
+++ b/assets/javascripts/discourse/templates/admin/plugins-discourse-patrons-plans-index.hbs
@@ -0,0 +1,22 @@
+
+
{{i18n 'discourse_patrons.admin.plans.title'}}
+
+
+
+ | {{i18n 'discourse_patrons.admin.plans.plan.plan_id'}} |
+ {{i18n 'discourse_patrons.admin.plans.plan.nickname'}} |
+ {{i18n 'discourse_patrons.admin.plans.plan.interval'}} |
+ {{i18n 'discourse_patrons.admin.plans.plan.amount'}} |
+
+ {{#each model.plans as |plan|}}
+
+ | {{plan.id}} |
+ {{plan.nickname}} |
+ {{plan.interval}} |
+ {{plan.amount}} |
+
+ {{d-button action=(action "deletePlan" plan) icon="trash" class="btn-danger btn no-text btn-icon"}}
+ |
+
+ {{/each}}
+
diff --git a/assets/javascripts/discourse/templates/admin/plugins-discourse-patrons-plans.hbs b/assets/javascripts/discourse/templates/admin/plugins-discourse-patrons-plans.hbs
index fc522ff..98c210a 100644
--- a/assets/javascripts/discourse/templates/admin/plugins-discourse-patrons-plans.hbs
+++ b/assets/javascripts/discourse/templates/admin/plugins-discourse-patrons-plans.hbs
@@ -1,5 +1,4 @@
-
{{i18n 'discourse_patrons.admin.plans.title'}}
{{#link-to 'adminPlugins.discourse-patrons.plans.show' 'new' class="btn btn-primary"}}
diff --git a/assets/javascripts/discourse/templates/admin/plugins-discourse-patrons-subscriptions.hbs b/assets/javascripts/discourse/templates/admin/plugins-discourse-patrons-subscriptions.hbs
index 3a1afde..b410359 100644
--- a/assets/javascripts/discourse/templates/admin/plugins-discourse-patrons-subscriptions.hbs
+++ b/assets/javascripts/discourse/templates/admin/plugins-discourse-patrons-subscriptions.hbs
@@ -1,5 +1,5 @@
-Subscription Plans
+{{i18n 'discourse_patrons.admin.plans'}}
@@ -10,7 +10,7 @@
| Amount |
- {{#each model as |plan|}}
+ {{#each model as |subscription|}}
diff --git a/config/locales/client.en.yml b/config/locales/client.en.yml
index 235a7c5..c0e6866 100644
--- a/config/locales/client.en.yml
+++ b/config/locales/client.en.yml
@@ -54,8 +54,10 @@ en:
name: Name
amount: Amount
interval: Interval
- table:
- head:
- plan: Plan
+ plan:
+ plan_id: Plan ID
+ nickname: Nickname
+ interval: Interval
+ amount: Amount
subscriptions:
title: Subscriptions
diff --git a/config/routes.rb b/config/routes.rb
index 525ee82..94508b6 100644
--- a/config/routes.rb
+++ b/config/routes.rb
@@ -3,6 +3,7 @@
DiscoursePatrons::Engine.routes.draw do
get '/admin' => 'admin#index'
get '/admin/subscriptions' => 'subscriptions#index'
+ get '/admin/plans' => 'plans#index'
get '/admin/plans/:plan_id' => 'plans#show'
post '/admin/plans' => 'plans#create'
get '/' => 'patrons#index'
diff --git a/spec/requests/plans_controller_spec.rb b/spec/requests/plans_controller_spec.rb
index 8ebb411..480db3e 100644
--- a/spec/requests/plans_controller_spec.rb
+++ b/spec/requests/plans_controller_spec.rb
@@ -12,20 +12,29 @@ module DiscoursePatrons
expect(DiscoursePatrons::PlansController < Admin::AdminController).to eq(true)
end
- it "creates a plan with a currency" do
- SiteSetting.stubs(:discourse_patrons_currency).returns('aud')
- ::Stripe::Plan.expects(:create).with(has_entry(:currency, 'aud'))
- post "/patrons/admin/plans.json", params: {}
+ describe "index" do
+ it "is ok" do
+ ::Stripe::Plan.expects(:list)
+ get "/patrons/admin/plans.json"
+ end
end
- it "creates a plan with an interval" do
- ::Stripe::Plan.expects(:create).with(has_entry(:interval, 'week'))
- post "/patrons/admin/plans.json", params: { interval: 'week' }
- end
+ describe "create" do
+ it "creates a plan with a currency" do
+ SiteSetting.stubs(:discourse_patrons_currency).returns('aud')
+ ::Stripe::Plan.expects(:create).with(has_entry(:currency, 'aud'))
+ post "/patrons/admin/plans.json", params: {}
+ end
- it "creates a plan with an amount" do
- ::Stripe::Plan.expects(:create).with(has_entry(:amount, '102'))
- post "/patrons/admin/plans.json", params: { amount: '102' }
+ it "creates a plan with an interval" do
+ ::Stripe::Plan.expects(:create).with(has_entry(:interval, 'week'))
+ post "/patrons/admin/plans.json", params: { interval: 'week' }
+ end
+
+ it "creates a plan with an amount" do
+ ::Stripe::Plan.expects(:create).with(has_entry(:amount, '102'))
+ post "/patrons/admin/plans.json", params: { amount: '102' }
+ end
end
end
end