import { getUserFromToken, hasRole } from '../../../utils/auth.js' import { androidPushTokenCountForUser, sendTestPushToUser } from '../../../utils/push-notifications.js' export default defineEventHandler(async (event) => { const token = getCookie(event, 'auth_token') || getHeader(event, 'authorization')?.replace(/^Bearer\s+/i, '') const user = token ? await getUserFromToken(token) : null if (!user) throw createError({ statusCode: 401, statusMessage: 'Nicht authentifiziert' }) if (!hasRole(user, 'admin')) throw createError({ statusCode: 403, statusMessage: 'Nur Administratoren dürfen einen Push-Test auslösen.' }) const registeredTokenCount = await androidPushTokenCountForUser(user.id) try { const result = await sendTestPushToUser(user.id) return { success: true, registeredTokenCount, ...result } } catch (error) { console.error('FCM Test-Push konnte nicht vorbereitet werden:', error) return { success: false, registeredTokenCount, deliveryError: 'Die FCM-Serververbindung konnte nicht aufgebaut werden. Details stehen im Serverlog.' } } })