mirror of
https://github.com/discourse/discourse-subscriptions.git
synced 2025-02-24 12:27:14 +00:00
Create Plans
* rescue and respond to error from stripe * save plan name and id
This commit is contained in:
parent
99abd87c73
commit
6f9195a7d4
@ -12,22 +12,32 @@ module DiscoursePatrons
|
||||
end
|
||||
|
||||
def create
|
||||
plan = ::Stripe::Plan.create(
|
||||
amount: params[:amount],
|
||||
interval: params[:interval],
|
||||
product: {
|
||||
name: 'Gold special',
|
||||
},
|
||||
currency: SiteSetting.discourse_patrons_currency,
|
||||
id: 'gold-special',
|
||||
)
|
||||
begin
|
||||
|
||||
render json: plan
|
||||
plan = ::Stripe::Plan.create(
|
||||
amount: params[:amount],
|
||||
interval: params[:interval],
|
||||
product: { name: params[:name] },
|
||||
currency: SiteSetting.discourse_patrons_currency,
|
||||
id: plan_id,
|
||||
)
|
||||
|
||||
render_json_dump plan
|
||||
|
||||
rescue ::Stripe::InvalidRequestError => e
|
||||
return render_json_error e.message
|
||||
end
|
||||
end
|
||||
|
||||
def destroy
|
||||
plan = ::Stripe::Plan.delete(params[:id])
|
||||
render json: plan
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def plan_id
|
||||
params[:name].parameterize.dasherize if params[:name]
|
||||
end
|
||||
end
|
||||
end
|
||||
|
@ -1,5 +1,6 @@
|
||||
import { ajax } from "discourse/lib/ajax";
|
||||
import computed from "ember-addons/ember-computed-decorators";
|
||||
import DiscourseURL from "discourse/lib/url";
|
||||
|
||||
export default Ember.Controller.extend({
|
||||
@computed("model.plans")
|
||||
|
@ -1,3 +1,5 @@
|
||||
import { popupAjaxError } from "discourse/lib/ajax-error";
|
||||
|
||||
export default Ember.Controller.extend({
|
||||
actions: {
|
||||
createPlan() {
|
||||
@ -5,7 +7,8 @@ export default Ember.Controller.extend({
|
||||
.save()
|
||||
.then(() => {
|
||||
this.transitionToRoute("adminPlugins.discourse-patrons.plans");
|
||||
});
|
||||
})
|
||||
.catch(popupAjaxError);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
@ -35,6 +35,16 @@ module DiscoursePatrons
|
||||
::Stripe::Plan.expects(:create).with(has_entry(:amount, '102'))
|
||||
post "/patrons/admin/plans.json", params: { amount: '102' }
|
||||
end
|
||||
|
||||
it "creates a plan with a title" do
|
||||
::Stripe::Plan.expects(:create).with(has_entry(:product, name: 'Rick Astley'))
|
||||
post "/patrons/admin/plans.json", params: { name: 'Rick Astley' }
|
||||
end
|
||||
|
||||
it "creates a plan with an id" do
|
||||
::Stripe::Plan.expects(:create).with(has_entry(id: 'rick-astley'))
|
||||
post "/patrons/admin/plans.json", params: { name: 'Rick Astley' }
|
||||
end
|
||||
end
|
||||
|
||||
describe "delete" do
|
||||
|
Loading…
x
Reference in New Issue
Block a user