mirror of
https://github.com/discourse/discourse-subscriptions.git
synced 2025-07-10 08:03:27 +00:00
delete subscription
This commit is contained in:
parent
2a985ae554
commit
ee0901aeca
@ -11,7 +11,7 @@ module DiscoursePatrons
|
|||||||
customer = DiscoursePatrons::Customer.find_user(current_user)
|
customer = DiscoursePatrons::Customer.find_user(current_user)
|
||||||
|
|
||||||
if customer.present?
|
if customer.present?
|
||||||
subscriptions = ::Stripe::Subscription.list(customer: customer.customer_id)
|
subscriptions = ::Stripe::Subscription.list(customer: customer.customer_id).data
|
||||||
else
|
else
|
||||||
subscriptions = []
|
subscriptions = []
|
||||||
end
|
end
|
||||||
@ -49,6 +49,17 @@ module DiscoursePatrons
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def destroy
|
||||||
|
begin
|
||||||
|
subscription = ::Stripe::Subscription.delete(params[:id])
|
||||||
|
|
||||||
|
render_json_dump subscription
|
||||||
|
|
||||||
|
rescue ::Stripe::InvalidRequestError => e
|
||||||
|
return render_json_error e.message
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
private
|
private
|
||||||
|
|
||||||
def plan_group(plan)
|
def plan_group(plan)
|
||||||
|
@ -14,7 +14,11 @@ const Subscription = Discourse.Model.extend({
|
|||||||
};
|
};
|
||||||
|
|
||||||
return ajax("/patrons/subscriptions", { method: "post", data });
|
return ajax("/patrons/subscriptions", { method: "post", data });
|
||||||
}
|
},
|
||||||
|
|
||||||
|
destroy() {
|
||||||
|
return ajax(`/patrons/subscriptions/${this.id}`, { method: "delete" });
|
||||||
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
Subscription.reopenClass({
|
Subscription.reopenClass({
|
||||||
|
@ -17,7 +17,7 @@ DiscoursePatrons::Engine.routes.draw do
|
|||||||
resources :patrons, only: [:index, :create]
|
resources :patrons, only: [:index, :create]
|
||||||
resources :plans, only: [:index]
|
resources :plans, only: [:index]
|
||||||
resources :products, only: [:index]
|
resources :products, only: [:index]
|
||||||
resources :subscriptions, only: [:index, :create]
|
resources :subscriptions, only: [:index, :create, :destroy]
|
||||||
|
|
||||||
get '/' => 'patrons#index'
|
get '/' => 'patrons#index'
|
||||||
get '/subscribe' => 'patrons#index'
|
get '/subscribe' => 'patrons#index'
|
||||||
|
@ -10,6 +10,11 @@ module DiscoursePatrons
|
|||||||
::Stripe::Subscription.expects(:create).never
|
::Stripe::Subscription.expects(:create).never
|
||||||
post "/patrons/subscriptions.json", params: { plan: 'plan_1234', customer: 'cus_1234' }
|
post "/patrons/subscriptions.json", params: { plan: 'plan_1234', customer: 'cus_1234' }
|
||||||
end
|
end
|
||||||
|
|
||||||
|
it "does not destroy a subscription" do
|
||||||
|
::Stripe::Subscription.expects(:delete).never
|
||||||
|
patch "/patrons/subscriptions/sub_12345.json"
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
context "authenticated" do
|
context "authenticated" do
|
||||||
@ -120,6 +125,13 @@ module DiscoursePatrons
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
describe "delete" do
|
||||||
|
it "deletes a subscription" do
|
||||||
|
::Stripe::Subscription.expects(:delete).with('sub_12345')
|
||||||
|
delete "/patrons/subscription/sub_12345.json"
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
Loading…
x
Reference in New Issue
Block a user