mirror of
https://github.com/discourse/discourse-subscriptions.git
synced 2025-02-19 01:44:52 +00:00
* REFACTOR: Use api to add subscribe link * FIX: I18n subscribe link * REFACTOR: Use models to store some data This enables the plugin to show only subscription information which was generated on Discourse. Subscription data storage is limited to the external identifiers Stripe generates so we can interact with the API. * DEV: Test/linting fixes/rake task
79 lines
3.0 KiB
Ruby
79 lines
3.0 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
# name: discourse-subscriptions
|
|
# about: Integrates Stripe into Discourse to allow visitors to subscribe
|
|
# version: 2.8.1
|
|
# url: https://github.com/discourse/discourse-subscriptions
|
|
# authors: Rimian Perkins, Justin DiRose
|
|
|
|
enabled_site_setting :discourse_subscriptions_enabled
|
|
|
|
gem 'stripe', '5.19.0'
|
|
|
|
register_asset "stylesheets/common/main.scss"
|
|
register_asset "stylesheets/common/layout.scss"
|
|
register_asset "stylesheets/common/subscribe.scss"
|
|
register_asset "stylesheets/mobile/main.scss"
|
|
register_svg_icon "credit-card" if respond_to?(:register_svg_icon)
|
|
|
|
register_html_builder('server:before-head-close') do
|
|
"<script src='https://js.stripe.com/v3/'></script>"
|
|
end
|
|
|
|
extend_content_security_policy(
|
|
script_src: ['https://js.stripe.com/v3/']
|
|
)
|
|
|
|
add_admin_route 'discourse_subscriptions.admin_navigation', 'discourse-subscriptions.products'
|
|
|
|
Discourse::Application.routes.append do
|
|
get '/admin/plugins/discourse-subscriptions' => 'admin/plugins#index'
|
|
get '/admin/plugins/discourse-subscriptions/products' => 'admin/plugins#index'
|
|
get '/admin/plugins/discourse-subscriptions/products/:product_id' => 'admin/plugins#index'
|
|
get '/admin/plugins/discourse-subscriptions/products/:product_id/plans' => 'admin/plugins#index'
|
|
get '/admin/plugins/discourse-subscriptions/products/:product_id/plans/:plan_id' => 'admin/plugins#index'
|
|
get '/admin/plugins/discourse-subscriptions/subscriptions' => 'admin/plugins#index'
|
|
get '/admin/plugins/discourse-subscriptions/plans' => 'admin/plugins#index'
|
|
get '/admin/plugins/discourse-subscriptions/plans/:plan_id' => 'admin/plugins#index'
|
|
get 'u/:username/billing' => 'users#show', constraints: { username: USERNAME_ROUTE_FORMAT }
|
|
get 'u/:username/billing/:id' => 'users#show', constraints: { username: USERNAME_ROUTE_FORMAT }
|
|
end
|
|
|
|
after_initialize do
|
|
::Stripe.api_version = "2019-12-03"
|
|
|
|
::Stripe.set_app_info(
|
|
'Discourse Subscriptions',
|
|
version: '2.8.1',
|
|
url: 'https://github.com/discourse/discourse-subscriptions'
|
|
)
|
|
|
|
[
|
|
"../lib/discourse_subscriptions/engine",
|
|
"../config/routes",
|
|
"../app/controllers/concerns/group",
|
|
"../app/controllers/concerns/stripe",
|
|
"../app/controllers/admin_controller",
|
|
"../app/controllers/admin/plans_controller",
|
|
"../app/controllers/admin/products_controller",
|
|
"../app/controllers/admin/subscriptions_controller",
|
|
"../app/controllers/user/payments_controller",
|
|
"../app/controllers/user/subscriptions_controller",
|
|
"../app/controllers/customers_controller",
|
|
"../app/controllers/hooks_controller",
|
|
"../app/controllers/invoices_controller",
|
|
"../app/controllers/plans_controller",
|
|
"../app/controllers/payments_controller",
|
|
"../app/controllers/products_controller",
|
|
"../app/controllers/subscriptions_controller",
|
|
"../app/models/customer",
|
|
"../app/models/product",
|
|
"../app/models/subscription",
|
|
"../app/serializers/payment_serializer",
|
|
].each { |path| require File.expand_path(path, __FILE__) }
|
|
|
|
Discourse::Application.routes.append do
|
|
mount ::DiscourseSubscriptions::Engine, at: 's'
|
|
end
|
|
end
|