mirror of
https://github.com/toeverything/AFFiNE.git
synced 2026-02-12 04:18:54 +00:00
fix(server): selfhost subscription customer portal creation (#10149)
This commit is contained in:
@@ -222,11 +222,8 @@ export class LicenseService implements OnModuleInit {
|
||||
await this.fetchAffinePro(`/api/team/licenses/${license.key}/seats`, {
|
||||
method: 'POST',
|
||||
body: JSON.stringify({
|
||||
quantity: count,
|
||||
seats: count,
|
||||
}),
|
||||
headers: {
|
||||
'Content-Type': 'application/json',
|
||||
},
|
||||
});
|
||||
|
||||
// stripe payment is async, we can't directly the charge result in update calling
|
||||
|
||||
@@ -228,24 +228,24 @@ export class LicenseController {
|
||||
|
||||
@Post('/:license/create-customer-portal')
|
||||
async createCustomerPortal(@Param('license') key: string) {
|
||||
const invoice = await this.db.invoice.findFirst({
|
||||
const subscription = await this.db.subscription.findFirst({
|
||||
where: {
|
||||
targetId: key,
|
||||
},
|
||||
});
|
||||
|
||||
if (!invoice) {
|
||||
if (!subscription || !subscription.stripeSubscriptionId) {
|
||||
throw new LicenseNotFound();
|
||||
}
|
||||
|
||||
const invoiceData = await this.stripe.invoices.retrieve(
|
||||
invoice.stripeInvoiceId,
|
||||
const subscriptionData = await this.stripe.subscriptions.retrieve(
|
||||
subscription.stripeSubscriptionId,
|
||||
{
|
||||
expand: ['customer'],
|
||||
}
|
||||
);
|
||||
|
||||
const customer = invoiceData.customer as Stripe.Customer;
|
||||
const customer = subscriptionData.customer as Stripe.Customer;
|
||||
try {
|
||||
const portal = await this.stripe.billingPortal.sessions.create({
|
||||
customer: customer.id,
|
||||
|
||||
Reference in New Issue
Block a user