Files
nlcc-itinerary/server/api/sermons/index.get.ts

46 lines
1.3 KiB
TypeScript

import { getDatabase } from '~/server/utils/database'
import { verifyJWT } from '~/server/utils/auth'
import { getQuery } from 'h3'
export default defineEventHandler(async (event) => {
try {
const db = await getDatabase()
// Check for time filter
const query = getQuery(event)
const timeFilter = query.time as string || '3months'
let dateFilter = '1970-01-01T00:00:00.000Z'
const now = new Date()
switch (timeFilter) {
case '3months':
const threeMonthsAgo = new Date(now.getFullYear(), now.getMonth() - 3, now.getDate())
dateFilter = threeMonthsAgo.toISOString()
break
case '6months':
const sixMonthsAgo = new Date(now.getFullYear(), now.getMonth() - 6, now.getDate())
dateFilter = sixMonthsAgo.toISOString()
break
case '1year':
const oneYearAgo = new Date(now.getFullYear() - 1, now.getMonth(), now.getDate())
dateFilter = oneYearAgo.toISOString()
break
case 'all':
dateFilter = '1970-01-01T00:00:00.000Z'
break
}
const sermons = db.prepare(`
SELECT * FROM sermons
WHERE date >= ?
ORDER BY date DESC
`).all(dateFilter) as any[]
return { data: sermons || [] }
} catch (error) {
console.error('Error loading sermons:', error)
return { data: [] }
}
})