import { readSubscribers, writeSubscribers } from '../../utils/newsletter.js' export default defineEventHandler(async (event) => { try { const query = getQuery(event) const token = query.token if (!token) { throw createError({ statusCode: 400, statusMessage: 'Bestätigungstoken fehlt' }) } const subscribers = await readSubscribers() const subscriber = subscribers.find(s => s.confirmationToken === token) if (!subscriber) { throw createError({ statusCode: 404, statusMessage: 'Ungültiger Bestätigungstoken' }) } if (subscriber.confirmed) { // Bereits bestätigt return { success: true, alreadyConfirmed: true, message: 'Newsletter-Anmeldung wurde bereits bestätigt' } } // Bestätigung durchführen subscriber.confirmed = true subscriber.confirmedAt = new Date().toISOString() subscriber.confirmationToken = null // Stelle sicher, dass groupIds existiert (für Rückwärtskompatibilität) if (!subscriber.groupIds) { subscriber.groupIds = [] } await writeSubscribers(subscribers) return { success: true, alreadyConfirmed: false, message: 'Newsletter-Anmeldung erfolgreich bestätigt' } } catch (error) { console.error('Fehler bei Newsletter-Bestätigung:', error) if (error.statusCode) { throw error } throw createError({ statusCode: 500, statusMessage: 'Fehler bei der Newsletter-Bestätigung' }) } })