import { getSermonNote, getSermonBySlug, getUserByUsername, getDatabase } from '~/server/utils/database' import { getSessionUsername } from '~/server/utils/auth' import { sendSermonNotesEmail } from '~/server/utils/email' export default defineEventHandler(async (event) => { const username = await getSessionUsername(event) if (!username) { throw createError({ statusCode: 401, message: 'Unauthorized' }) } const sermonId = parseInt(event.context.params?.sermonId || '') if (!sermonId) { throw createError({ statusCode: 400, message: 'Invalid sermon ID' }) } // Get user info const user = getUserByUsername(username) if (!user || !user.email) { throw createError({ statusCode: 400, message: 'User email not found' }) } // Get sermon info const db = getDatabase() const sermon = db.prepare('SELECT * FROM sermons WHERE id = ?').get(sermonId) as any if (!sermon) { throw createError({ statusCode: 404, message: 'Sermon not found' }) } // Get user's notes (already stored as HTML from rich text editor) const noteRecord = getSermonNote(user.id!, sermonId) let userNotes = noteRecord?.notes || '
No notes taken
' // Convert Tiptap HTML to email-friendly HTML with inline styles // Email clients don't support