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: 'Abmeldetoken fehlt' }) } const subscribers = await readSubscribers() const subscriber = subscribers.find(s => s.unsubscribeToken === token) if (!subscriber) { throw createError({ statusCode: 404, statusMessage: 'Ungültiger Abmeldetoken' }) } if (subscriber.unsubscribedAt) { // Bereits abgemeldet return sendRedirect(event, '/newsletter/unsubscribed?already=true') } // Abmeldung durchführen subscriber.unsubscribedAt = new Date().toISOString() subscriber.confirmed = false // Stelle sicher, dass groupIds existiert (für Rückwärtskompatibilität) if (!subscriber.groupIds) { subscriber.groupIds = [] } // Leere groupIds, um von allen Gruppen abzumelden subscriber.groupIds = [] await writeSubscribers(subscribers) // Weiterleitung zur Abmelde-Bestätigungsseite return sendRedirect(event, '/newsletter/unsubscribed') } catch (error) { console.error('Fehler bei Newsletter-Abmeldung:', error) if (error.statusCode) { throw error } throw createError({ statusCode: 500, statusMessage: 'Fehler bei der Newsletter-Abmeldung' }) } })