40 lines
1.1 KiB
TypeScript
40 lines
1.1 KiB
TypeScript
import { getDatabase } from '~/server/utils/database'
|
|
import { verifyJWT } from '~/server/utils/auth'
|
|
|
|
export default defineEventHandler(async (event) => {
|
|
const db = await getDatabase()
|
|
|
|
// Check for time filter
|
|
const query = getQuery(event)
|
|
const timeFilter = query.time as string || '3months'
|
|
|
|
let dateFilter = ''
|
|
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-01'
|
|
break
|
|
}
|
|
|
|
const sermons = db.prepare(`
|
|
SELECT * FROM sermons
|
|
WHERE date >= ?
|
|
ORDER BY date DESC
|
|
`).all(dateFilter) as any[]
|
|
|
|
return sermons
|
|
})
|