🪻 distributed transcription service thistle.dunkirk.sh

feat: cancel user subscription on account delete

dunkirk.sh 023b2d00 f2a3c537

verified
Changed files
+9 -6
src
components
lib
+1 -1
src/components/user-settings.ts
···
async handleDeleteAccount() {
try {
-
const response = await fetch("/api/auth/delete-account", {
+
const response = await fetch("/api/user", {
method: "DELETE",
});
+8 -5
src/lib/auth.ts
···
)
.get(userId);
-
// Revoke subscription if it exists
+
// Cancel subscription if it exists (soft cancel - keeps access until period end)
if (subscription) {
try {
const { polar } = await import("./polar");
-
await polar.subscriptions.revoke({ id: subscription.id });
+
await polar.subscriptions.update({
+
id: subscription.id,
+
subscriptionUpdate: { cancelAtPeriodEnd: true },
+
});
console.log(
-
`[User Delete] Revoked subscription ${subscription.id} for user ${userId}`,
+
`[User Delete] Canceled subscription ${subscription.id} for user ${userId}`,
);
} catch (error) {
console.error(
-
`[User Delete] Failed to revoke subscription ${subscription.id}:`,
+
`[User Delete] Failed to cancel subscription ${subscription.id}:`,
error,
);
-
// Continue with user deletion even if subscription revocation fails
+
// Continue with user deletion even if subscription cancellation fails
}
}