bug fix
This commit is contained in:
parent
a4c83dc82f
commit
ceed23ff51
|
@ -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,
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
Ŝarĝante…
Reference in New Issue