Files
nlcc-itinerary/server/api/profile/delete.delete.ts

34 lines
895 B
TypeScript

import { getDb } from '~/server/utils/database'
import { requireAuth } from '~/server/utils/auth'
export default defineEventHandler(async (event) => {
const user = await requireAuth(event)
const db = getDb()
try {
// Delete user's notes first (foreign key constraint)
db.prepare('DELETE FROM notes WHERE user_id = ?').run(user.id)
// Delete user's sessions
db.prepare('DELETE FROM sessions WHERE username = ?').run(user.username)
// Delete the user
db.prepare('DELETE FROM users WHERE id = ?').run(user.id)
// Clear the auth cookie
deleteCookie(event, 'session_token')
return {
success: true,
message: 'Profile deleted successfully'
}
} catch (error) {
console.error('Error deleting profile:', error)
throw createError({
statusCode: 500,
message: 'Failed to delete profile'
})
}
})