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
const noteRecord = getSermonNote(user.id!, sermonId)
// Convert line breaks to HTML breaks for email display
const userNotes = noteRecord?.notes ? noteRecord.notes.replace(/\n/g, '
') : ''
// Format bible references for HTML email
let bibleReferencesText = ''
try {
const refs = JSON.parse(sermon.bible_references)
bibleReferencesText = refs.map((ref: any) =>
`