Just adding the switch part becuase of character count
switch (event.type) {
case 'checkout.session.completed':
const session = event.data.object;
console.log('Checkout session completedddddddddddddddddddd:', session);
// Extract Clerk user ID and Stripe customer ID from the metadata
const clerkUserId = session.metadata?.clerkUserId;
const stripeCustomerId = session.customer;
console.log('Clerk user ID:', clerkUserId, 'Stripe Customer ID:', stripeCustomerId);
if (clerkUserId && stripeCustomerId) {
try {
// Fetch the current user's metadata
const user = await clerkClient.users.getUser(clerkUserId);
const currentMetadata = user.publicMetadata || {};
// Merge the current metadata with the new metadata
const updatedMetadata = {
...currentMetadata,
subscription: "active",
stripeCustomerId: stripeCustomerId
};
// Update the user's metadata with the merged metadata
await clerkClient.users.updateUserMetadata(clerkUserId, {
publicMetadata: updatedMetadata
});
console.log('User metadata updated successfully');
} catch (clerkError) {
console.error("Error updating Clerk user metadata:", clerkError);
}
}
break;
// ... handle other event types
default:
console.log(`Unhandled event type ${event.type}`);
}```