75 lines
2.9 KiB
Ruby
Raw Normal View History

2019-09-11 19:55:35 +10:00
# frozen_string_literal: true
2019-09-11 19:27:24 +10:00
2019-12-02 18:58:14 +11:00
# name: discourse-subscriptions
# about: Integrates Stripe into Discourse to allow visitors to subscribe
# version: 2.4.0
# url: https://github.com/rimian/discourse-subscriptions
2019-09-11 19:11:02 +10:00
# authors: Rimian Perkins
2017-01-31 13:28:41 +11:00
enabled_site_setting :discourse_patrons_enabled
2019-11-27 10:50:06 +11:00
gem 'stripe', '5.11.0'
2019-09-11 19:18:30 +10:00
2019-09-11 21:14:48 +10:00
register_asset "stylesheets/common/discourse-patrons.scss"
2019-10-28 14:05:58 +11:00
register_asset "stylesheets/common/discourse-patrons-layout.scss"
2019-11-29 15:08:51 +11:00
register_asset "stylesheets/common/stripe.scss"
2019-09-11 21:14:48 +10:00
register_asset "stylesheets/mobile/discourse-patrons.scss"
2019-10-25 13:23:32 +11:00
register_svg_icon "credit-card" if respond_to?(:register_svg_icon)
2019-09-11 21:14:48 +10:00
2019-09-11 19:18:30 +10:00
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_patrons.admin_navigation', 'discourse-subscriptions.products'
2019-09-14 12:56:28 +10:00
Discourse::Application.routes.append do
2019-12-02 18:58:14 +11:00
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'
2019-10-25 14:00:59 +11:00
get 'u/:username/billing' => 'users#show', constraints: { username: USERNAME_ROUTE_FORMAT }
2019-10-29 11:43:32 +11:00
get 'u/:username/subscriptions' => 'users#show', constraints: { username: USERNAME_ROUTE_FORMAT }
2019-09-14 12:56:28 +10:00
end
2019-09-11 17:13:12 +10:00
after_initialize do
2019-11-06 20:46:35 +11:00
::Stripe.api_version = "2019-11-05"
2019-12-02 18:58:14 +11:00
::Stripe.set_app_info(
'Discourse Subscriptions',
version: '2.4.0',
url: 'https://github.com/rimian/discourse-subscriptions'
)
2019-09-11 21:14:48 +10:00
2019-09-13 13:52:41 +10:00
[
"../lib/discourse_patrons/engine",
"../config/routes",
2019-11-29 09:01:56 +11:00
"../app/controllers/concerns/group",
2019-09-24 20:44:51 +10:00
"../app/controllers/concerns/stripe",
2019-09-14 12:56:28 +10:00
"../app/controllers/admin_controller",
"../app/controllers/admin/plans_controller",
2019-10-15 13:18:25 +11:00
"../app/controllers/admin/products_controller",
2019-09-23 17:53:05 +10:00
"../app/controllers/admin/subscriptions_controller",
2019-11-01 13:43:09 +11:00
"../app/controllers/user/subscriptions_controller",
"../app/controllers/customers_controller",
2019-10-28 14:05:58 +11:00
"../app/controllers/invoices_controller",
2019-09-13 13:52:41 +10:00
"../app/controllers/patrons_controller",
2019-10-10 13:52:55 +11:00
"../app/controllers/plans_controller",
2019-10-25 08:18:16 +11:00
"../app/controllers/products_controller",
2019-10-14 09:52:43 +11:00
"../app/controllers/subscriptions_controller",
2019-10-26 11:31:19 +11:00
"../app/models/customer",
2019-09-14 12:56:28 +10:00
"../app/serializers/payment_serializer",
2019-09-13 13:52:41 +10:00
].each { |path| require File.expand_path(path, __FILE__) }
2019-09-11 18:32:09 +10:00
Discourse::Application.routes.append do
mount ::DiscoursePatrons::Engine, at: 's'
2019-09-11 18:32:09 +10:00
end
end