46 lines
1.3 KiB
TypeScript
46 lines
1.3 KiB
TypeScript
import { getDatabase } from '~/server/utils/database.server'
|
|
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: [] }
|
|
}
|
|
})
|