Fix Kondisi Verify Otp Registrasi dan Login
Next mau fix eror saat user sudah terdaftar tetapi di redirect ke login, seharusnya redirect sesuai roleIdnya
This commit is contained in:
@@ -1,12 +1,12 @@
|
||||
// /api/user/delete.ts
|
||||
// /api/user/delUser.ts
|
||||
import prisma from '@/lib/prisma';
|
||||
import { Context } from 'elysia';
|
||||
|
||||
export default async function userDelete(context: Context) {
|
||||
export default async function userDeleteAccount(context: Context) {
|
||||
const { id } = context.params as { id: string };
|
||||
|
||||
try {
|
||||
// Cek user dulu
|
||||
// 1. Cek user dulu
|
||||
const existingUser = await prisma.user.findUnique({
|
||||
where: { id },
|
||||
});
|
||||
@@ -18,15 +18,39 @@ export default async function userDelete(context: Context) {
|
||||
};
|
||||
}
|
||||
|
||||
// Hard delete (hapus permanen)
|
||||
const deletedUser = await prisma.user.delete({
|
||||
where: { id },
|
||||
// ✅ 2. Hapus SEMUA relasi dalam TRANSACTION
|
||||
const result = await prisma.$transaction(async (tx) => {
|
||||
// Hapus UserSession
|
||||
const deletedSessions = await tx.userSession.deleteMany({
|
||||
where: { userId: id },
|
||||
});
|
||||
|
||||
// ✅ Hapus UserMenuAccess
|
||||
const deletedMenuAccess = await tx.userMenuAccess.deleteMany({
|
||||
where: { userId: id },
|
||||
});
|
||||
|
||||
// ✅ Tambahkan relasi lain jika ada (contoh):
|
||||
// await tx.userLog.deleteMany({ where: { userId: id } });
|
||||
// await tx.userNotification.deleteMany({ where: { userId: id } });
|
||||
// await tx.userToken.deleteMany({ where: { userId: id } });
|
||||
|
||||
// Hapus user
|
||||
const deletedUser = await tx.user.delete({
|
||||
where: { id },
|
||||
});
|
||||
|
||||
return {
|
||||
user: deletedUser,
|
||||
sessionsDeleted: deletedSessions.count,
|
||||
menuAccessDeleted: deletedMenuAccess.count,
|
||||
};
|
||||
});
|
||||
|
||||
return {
|
||||
success: true,
|
||||
message: 'User berhasil dihapus permanen',
|
||||
data: deletedUser,
|
||||
message: `User berhasil dihapus permanen (${result.sessionsDeleted} session, ${result.menuAccessDeleted} menu access)`,
|
||||
data: result,
|
||||
};
|
||||
} catch (error) {
|
||||
console.error('Error delete user:', error);
|
||||
@@ -35,4 +59,4 @@ export default async function userDelete(context: Context) {
|
||||
message: 'Terjadi kesalahan saat menghapus user',
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user