import { Hono } from 'hono'; import type { AuthEnv } from '../middleware/auth.js'; import { getCalendarEvents } from '../lib/graph-service.js'; const calendar = new Hono(); const DATE_RE = /^\d{4}-\d{2}-\d{2}$/; calendar.get('/events', async (c) => { const date = c.req.query('date') ?? ''; if (!DATE_RE.test(date)) { return c.json({ error: 'date param required (YYYY-MM-DD)' }, 400); } const auth = c.get('auth'); if (!auth.email) { return c.json({ error: 'graph_unavailable', detail: 'No email in auth context (API key or dev-bypass)' }, 502); } try { const events = await getCalendarEvents(auth.email, date); return c.json(events); } catch (err) { console.error('[calendar] Graph error:', err instanceof Error ? err.message : err); return c.json({ error: 'graph_unavailable', detail: err instanceof Error ? err.message : String(err) }, 502); } }); export default calendar;