Files
nlcc-itinerary/server/api/profile/delete.delete.ts
2025-10-12 13:14:04 -04:00

47 lines
1.2 KiB
TypeScript

import { getUserByUsername } from '~/server/utils/database'
import { getAuthUser, clearAuthCookie } from '~/server/utils/auth'
export default defineEventHandler(async (event) => {
const authUser = await getAuthUser(event)
if (!authUser) {
throw createError({
statusCode: 401,
message: 'Unauthorized'
})
}
const db = (await import('~/server/utils/database')).getDatabase()
// Get current user data
const currentUser = getUserByUsername(authUser.username)
if (!currentUser) {
throw createError({
statusCode: 404,
message: 'User not found'
})
}
try {
// Delete user's sessions
db.prepare('DELETE FROM sessions WHERE username = ?').run(currentUser.username)
// Delete the user (sermon_notes will be automatically deleted via CASCADE)
db.prepare('DELETE FROM users WHERE id = ?').run(currentUser.id)
// Clear the auth cookie
clearAuthCookie(event)
return {
success: true,
message: 'Profile deleted successfully'
}
} catch (error) {
console.error('Error deleting profile:', error)
throw createError({
statusCode: 500,
message: 'Failed to delete profile'
})
}
})