discourse-subscriptions/app/controllers/subscriptions_controller.rb

38 lines
841 B
Ruby
Raw Normal View History

2019-10-13 18:52:43 -04:00
# frozen_string_literal: true
module DiscoursePatrons
class SubscriptionsController < ::ApplicationController
include DiscoursePatrons::Stripe
before_action :set_api_key
def create
2019-10-16 21:07:06 -04:00
begin
subscription = ::Stripe::Subscription.create(
customer: params[:customer],
items: [
{ plan: params[:plan] },
]
)
if subscription_ok(subscription)
# TODO: check group credentials
group = Group.find_by_name('group-123')
group.add(current_user)
end
render_json_dump subscription
rescue ::Stripe::InvalidRequestError => e
return render_json_error e.message
end
end
private
def subscription_ok(subscription)
2019-10-21 00:28:45 -04:00
['active', 'trialing'].include?(subscription[:status])
2019-10-13 18:52:43 -04:00
end
end
end