diff --git a/src/routes/api/send-daily-verse/+server.ts b/src/routes/api/send-daily-verse/+server.ts new file mode 100644 index 0000000..db9df03 --- /dev/null +++ b/src/routes/api/send-daily-verse/+server.ts @@ -0,0 +1,36 @@ +import { json } from '@sveltejs/kit'; +import type { RequestHandler } from './$types'; +import { getVerseForDate } from '$lib/server/daily-verse'; +import { CRON_SECRET, DISCORD_DAILY_WEBHOOK } from '$env/dynamic/private'; + +export const POST: RequestHandler = async ({ request }) => { + const authHeader = request.headers.get('Authorization'); + if (!authHeader || authHeader !== `Bearer ${CRON_SECRET}`) { + return json({ error: 'Unauthorized' }, { status: 401 }); + } + + const dateStr = new Date().toLocaleDateString('en-CA', { timeZone: 'America/New_York' }); + + const verse = await getVerseForDate(dateStr); + + const fullDate = new Date(dateStr + 'T00:00:00Z').toLocaleDateString('en-US', { + year: 'numeric', + month: 'long', + day: 'numeric', + timeZone: 'UTC', + }); + + const message = `Today's BIBDLE Verse (${fullDate}): "${verse.verseText}" — ${verse.reference}`; + + const discordResponse = await fetch(DISCORD_DAILY_WEBHOOK, { + method: 'POST', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify({ content: message }), + }); + + if (!discordResponse.ok) { + return json({ error: 'Failed to post to Discord' }, { status: 500 }); + } + + return json({ ok: true }); +};