Merge pull request #831 from linkwarden/dev

bug fix
This commit is contained in:
Daniel 2024-11-12 16:18:15 -05:00 committed by GitHub
commit 5f60e9833e
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 30 additions and 21 deletions

View File

@ -184,27 +184,20 @@ export default async function deleteUserById(
try {
if (user.subscriptions?.id) {
const listByEmail = await stripe.customers.list({
email: user.email?.toLowerCase(),
expand: ["data.subscriptions"],
});
const deleted = await stripe.subscriptions.cancel(
user.subscriptions.stripeSubscriptionId,
{
cancellation_details: {
comment: body.cancellation_details?.comment,
feedback: body.cancellation_details?.feedback,
},
}
);
if (listByEmail.data[0].subscriptions?.data[0].id) {
const deleted = await stripe.subscriptions.cancel(
listByEmail.data[0].subscriptions?.data[0].id,
{
cancellation_details: {
comment: body.cancellation_details?.comment,
feedback: body.cancellation_details?.feedback,
},
}
);
return {
response: deleted,
status: 200,
};
}
return {
response: deleted,
status: 200,
};
} else if (user.parentSubscription?.id && user && user.emailVerified) {
await updateSeats(
user.parentSubscription.stripeSubscriptionId,

View File

@ -7,6 +7,11 @@ type Data = {
quantity: number;
periodStart: number;
periodEnd: number;
action:
| "customer.subscription.created"
| "customer.subscription.updated"
| "customer.subscription.deleted"
| "customer.subscription.cancelled";
};
export default async function handleSubscription({
@ -15,6 +20,7 @@ export default async function handleSubscription({
quantity,
periodStart,
periodEnd,
action,
}: Data) {
const subscription = await prisma.subscription.findUnique({
where: {
@ -57,7 +63,13 @@ export default async function handleSubscription({
},
});
if (!user) throw new Error("User not found");
if (!user) {
if (action === "customer.subscription.deleted") {
return "User not found or deleted";
} else {
throw new Error("User not found");
}
}
const userId = user.id;

View File

@ -72,6 +72,7 @@ export default async function webhook(
quantity: data?.quantity ?? 1,
periodStart: data.current_period_start,
periodEnd: data.current_period_end,
action: "customer.subscription.created",
});
break;
@ -82,6 +83,7 @@ export default async function webhook(
quantity: data?.quantity ?? 1,
periodStart: data.current_period_start,
periodEnd: data.current_period_end,
action: "customer.subscription.updated",
});
break;
@ -92,6 +94,7 @@ export default async function webhook(
quantity: data?.lines?.data[0]?.quantity ?? 1,
periodStart: data.current_period_start,
periodEnd: data.current_period_end,
action: "customer.subscription.deleted",
});
break;
@ -102,6 +105,7 @@ export default async function webhook(
quantity: data?.lines?.data[0]?.quantity ?? 1,
periodStart: data.current_period_start,
periodEnd: data.current_period_end,
action: "customer.subscription.cancelled",
});
break;