37 lines
1.2 KiB
TypeScript
37 lines
1.2 KiB
TypeScript
import { serverSupabaseServiceRole } from "../../utils/useSupabase";
|
|
import { deleteUserUrgeLogs } from "../../db/urge";
|
|
import { deleteUserSosSessions } from "../../db/sosSession";
|
|
import { deleteUserStreaks } from "../../db/streak";
|
|
import { deleteUserPosts } from "../../db/community";
|
|
import { deleteAllUserCustomDomains } from "../../db/domains";
|
|
import {
|
|
deleteUserTrustedContacts,
|
|
deleteUserCoachSessions,
|
|
} from "../../db/user";
|
|
import { deleteProfile } from "../../db/profile";
|
|
|
|
export default defineEventHandler(async (event) => {
|
|
const user = await requireUser(event);
|
|
const supabase = serverSupabaseServiceRole(event);
|
|
const userId = user.id;
|
|
|
|
// Delete all user data (DSGVO Art. 17)
|
|
await Promise.all([
|
|
deleteUserUrgeLogs(userId),
|
|
deleteUserSosSessions(userId),
|
|
deleteUserStreaks(userId),
|
|
deleteUserPosts(userId),
|
|
deleteAllUserCustomDomains(userId),
|
|
deleteUserTrustedContacts(userId),
|
|
deleteUserCoachSessions(userId),
|
|
]);
|
|
|
|
// Profil zuletzt löschen (FK-Abhängigkeiten sind bereits entfernt)
|
|
await deleteProfile(userId).catch(() => {});
|
|
|
|
// Auth-User löschen (bleibt Supabase)
|
|
await supabase.auth.admin.deleteUser(userId);
|
|
|
|
return { success: true };
|
|
});
|