delete customer record

This commit is contained in:
Rimian Perkins 2019-11-28 20:44:38 +11:00
parent e5753095d8
commit 298e70b32a
3 changed files with 27 additions and 3 deletions

View File

@ -21,6 +21,13 @@ module DiscoursePatrons
begin
subscription = ::Stripe::Subscription.delete(params[:id])
customer = DiscoursePatrons::Customer.find_by(
product_id: subscription[:plan][:product][:id],
customer_id: subscription[:customer]
)
customer.delete if customer
render_json_dump subscription
rescue ::Stripe::InvalidRequestError => e

View File

@ -3,6 +3,7 @@
<thead>
<tr>
<th>{{i18n 'discourse_patrons.admin.subscriptions.subscription.user'}}</th>
<th>{{i18n 'discourse_patrons.admin.subscriptions.subscription.subscription_id'}}</th>
<th>{{i18n 'discourse_patrons.admin.subscriptions.subscription.customer'}}</th>
<th>{{i18n 'discourse_patrons.admin.subscriptions.subscription.product'}}</th>
<th>{{i18n 'discourse_patrons.admin.subscriptions.subscription.plan'}}</th>
@ -20,6 +21,7 @@
</a>
{{/if}}
</td>
<td>{{subscription.id}}</td>
<td>{{subscription.customer}}</td>
<td>{{subscription.plan.product.name}}</td>
<td>{{subscription.plan.nickname}}</td>

View File

@ -22,6 +22,7 @@ module DiscoursePatrons
end
context 'authenticated' do
let(:user) { Fabricate(:user) }
let(:admin) { Fabricate(:admin) }
before { sign_in(admin) }
@ -35,9 +36,23 @@ module DiscoursePatrons
end
describe "destroy" do
it "deletes a subscription" do
::Stripe::Subscription.expects(:delete).with('sub_12345')
delete "/patrons/admin/subscriptions/sub_12345.json"
before do
DiscoursePatrons::Customer.create(
user_id: user.id,
customer_id: 'c_123',
product_id: 'pr_34578'
)
end
it "deletes a customer" do
::Stripe::Subscription
.expects(:delete)
.with('sub_12345')
.returns(customer: 'c_123', plan: { product: { id: 'pr_34578' } })
expect {
delete "/patrons/admin/subscriptions/sub_12345.json"
}.to change { DiscoursePatrons::Customer.count }.by(-1)
end
end
end