import { NextApiRequest, NextApiResponse } from 'next'
import { getBookings } from '../../db/index'
import { generateBookedCalendar } from '../../helpers/ical'

export default async function useHandler(
  req: NextApiRequest,
  res: NextApiResponse
) {
  const { method } = req

  switch (method) {
    case 'GET':
      const bookings = await getBookings()
      const ical = generateBookedCalendar(bookings)
      res.statusCode = 200
      res.setHeader('Content-Type', 'text/calendar;charset=utf-8')
      res.setHeader(
        'Content-Disposition',
        'attachment; filename="pfadi-bussle.ics"'
      )
      res.send(ical)
      break
    default:
      res.setHeader('Allow', ['GET'])
      res.status(405).end(`Method ${method} Not Allowed`)
  }
}
