From 0d82bcf37e545f94fc22aeb3fd32973fcfdbd970 Mon Sep 17 00:00:00 2001 From: Rimian Perkins Date: Tue, 24 Sep 2019 16:04:42 +1000 Subject: [PATCH] Plans, subscriptions * Plans controller * Subscription controller * Clean admin controller * Ember Plans route * Index page * New Plans * Translations --- app/controllers/admin/plans_controller.rb | 13 +++++++++++++ app/controllers/admin/subscriptions_controller.rb | 6 +++++- app/controllers/admin_controller.rb | 4 ---- ...dmin-plugins-discourse-patrons-plans-show.js.es6 | 1 + .../admin-plugins-discourse-patrons-plans.js.es6 | 0 .../admin/plugins-discourse-patrons-index.hbs | 11 ++++++----- .../admin/plugins-discourse-patrons-plans.hbs | 7 +++---- .../plugins-discourse-patrons-subscriptions.hbs | 2 +- .../templates/admin/plugins-discourse-patrons.hbs | 6 +++--- config/locales/client.en.yml | 11 ++++++++++- config/routes.rb | 1 + plugin.rb | 1 + spec/requests/plans_controller_spec.rb | 0 spec/requests/subscriptions_controller_spec.rb | 5 +++-- 14 files changed, 47 insertions(+), 21 deletions(-) create mode 100644 app/controllers/admin/plans_controller.rb create mode 100644 assets/javascripts/discourse/routes/admin-plugins-discourse-patrons-plans-show.js.es6 create mode 100644 assets/javascripts/discourse/routes/admin-plugins-discourse-patrons-plans.js.es6 create mode 100644 spec/requests/plans_controller_spec.rb diff --git a/app/controllers/admin/plans_controller.rb b/app/controllers/admin/plans_controller.rb new file mode 100644 index 0000000..f6c479a --- /dev/null +++ b/app/controllers/admin/plans_controller.rb @@ -0,0 +1,13 @@ +# frozen_string_literal: true + +module DiscoursePatrons + class PlansController < ::Admin::AdminController + def index + head 204 + end + + def show + head 204 + end + end +end diff --git a/app/controllers/admin/subscriptions_controller.rb b/app/controllers/admin/subscriptions_controller.rb index b8a40ba..4b19b4b 100644 --- a/app/controllers/admin/subscriptions_controller.rb +++ b/app/controllers/admin/subscriptions_controller.rb @@ -3,7 +3,11 @@ module DiscoursePatrons class SubscriptionsController < ::Admin::AdminController def index - head 200 + ::Stripe.api_key = SiteSetting.discourse_patrons_secret_key + + subscriptions = ::Stripe::Subscription.list + + subscriptions.to_json end end end diff --git a/app/controllers/admin_controller.rb b/app/controllers/admin_controller.rb index 0025b5f..2c1c46a 100644 --- a/app/controllers/admin_controller.rb +++ b/app/controllers/admin_controller.rb @@ -8,10 +8,6 @@ module DiscoursePatrons render_serialized(payments, PaymentSerializer) end - def subscriptions - head 200 - end - private def payments_order diff --git a/assets/javascripts/discourse/routes/admin-plugins-discourse-patrons-plans-show.js.es6 b/assets/javascripts/discourse/routes/admin-plugins-discourse-patrons-plans-show.js.es6 new file mode 100644 index 0000000..55af882 --- /dev/null +++ b/assets/javascripts/discourse/routes/admin-plugins-discourse-patrons-plans-show.js.es6 @@ -0,0 +1 @@ +export default Discourse.Route.extend({}); 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 new file mode 100644 index 0000000..e69de29 diff --git a/assets/javascripts/discourse/templates/admin/plugins-discourse-patrons-index.hbs b/assets/javascripts/discourse/templates/admin/plugins-discourse-patrons-index.hbs index 2e7dd22..cda4b3b 100644 --- a/assets/javascripts/discourse/templates/admin/plugins-discourse-patrons-index.hbs +++ b/assets/javascripts/discourse/templates/admin/plugins-discourse-patrons-index.hbs @@ -1,15 +1,16 @@ -

Payments

+ +

{{i18n 'discourse_patrons.admin.dashboard.title'}}

{{#load-more selector=".discourse-patrons-admin tr" action=(action "loadMore")}} {{#if model}} - - - + + + - + {{#each model as |payment|}} 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 97faab3..6f9fdbb 100644 --- a/assets/javascripts/discourse/templates/admin/plugins-discourse-patrons-plans.hbs +++ b/assets/javascripts/discourse/templates/admin/plugins-discourse-patrons-plans.hbs @@ -1,8 +1,7 @@ -

Plans.

+

{{i18n 'discourse_patrons.admin.plans.title'}}

{{#link-to 'adminPlugins.discourse-patrons.plans.show' 'new' class="btn btn-primary"}} - New + {{d-icon "plus"}} + {{i18n 'discourse_patrons.admin.plans.new'}} {{/link-to}} - -{{outlet}} 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 8092c04..3a1afde 100644 --- a/assets/javascripts/discourse/templates/admin/plugins-discourse-patrons-subscriptions.hbs +++ b/assets/javascripts/discourse/templates/admin/plugins-discourse-patrons-subscriptions.hbs @@ -10,7 +10,7 @@ - {{#each model as |payment|}} + {{#each model as |plan|}} diff --git a/assets/javascripts/discourse/templates/admin/plugins-discourse-patrons.hbs b/assets/javascripts/discourse/templates/admin/plugins-discourse-patrons.hbs index 9ac962a..463ac54 100644 --- a/assets/javascripts/discourse/templates/admin/plugins-discourse-patrons.hbs +++ b/assets/javascripts/discourse/templates/admin/plugins-discourse-patrons.hbs @@ -4,17 +4,17 @@ diff --git a/config/locales/client.en.yml b/config/locales/client.en.yml index f1b9314..5674dd9 100644 --- a/config/locales/client.en.yml +++ b/config/locales/client.en.yml @@ -38,10 +38,19 @@ en: confirm_payment: Confirm payment success: Go back admin: - payment_history: + dashboard: + title: Dashboard table: head: user: User payment_intent: Payment ID receipt_email: Receipt Email amount: Amount + plans: + title: Plans + new: New + table: + head: + plan: Plan + subscriptions: + title: Subscriptions diff --git a/config/routes.rb b/config/routes.rb index 0fd00ac..bb414b4 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/:plan_id' => 'plans#show' get '/' => 'patrons#index' get '/:pid' => 'patrons#show' resources :patrons, only: [:index, :create] diff --git a/plugin.rb b/plugin.rb index 89686a1..54fa5df 100644 --- a/plugin.rb +++ b/plugin.rb @@ -38,6 +38,7 @@ after_initialize do "../lib/discourse_patrons/engine", "../config/routes", "../app/controllers/admin_controller", + "../app/controllers/admin/plans_controller", "../app/controllers/admin/subscriptions_controller", "../app/controllers/patrons_controller", "../app/models/payment", diff --git a/spec/requests/plans_controller_spec.rb b/spec/requests/plans_controller_spec.rb new file mode 100644 index 0000000..e69de29 diff --git a/spec/requests/subscriptions_controller_spec.rb b/spec/requests/subscriptions_controller_spec.rb index be0dea8..ee20515 100644 --- a/spec/requests/subscriptions_controller_spec.rb +++ b/spec/requests/subscriptions_controller_spec.rb @@ -13,9 +13,10 @@ module DiscoursePatrons expect(DiscoursePatrons::SubscriptionsController < Admin::AdminController).to eq(true) end - it "is ok" do + it "gets the empty subscriptions" do + ::Stripe::Subscription.expects(:list) get "/patrons/admin/subscriptions.json" - expect(response.status).to eq(200) + expect(response.status).to eq(204) end end end
{{i18n 'discourse_patrons.admin.payment_history.table.head.user'}}{{i18n 'discourse_patrons.admin.payment_history.table.head.payment_intent'}}{{i18n 'discourse_patrons.admin.payment_history.table.head.receipt_email'}}{{i18n 'discourse_patrons.admin.dashboard.table.head.user'}}{{i18n 'discourse_patrons.admin.dashboard.table.head.payment_intent'}}{{i18n 'discourse_patrons.admin.dashboard.table.head.receipt_email'}} {{i18n 'created'}}{{i18n 'discourse_patrons.admin.payment_history.table.head.amount'}}{{i18n 'discourse_patrons.admin.dashboard.table.head.amount'}}
Amount