Files
pfadi-bussle/pages/api/admin/booking/[uuid]/index.ts
2020-11-02 23:25:00 +01:00

36 lines
872 B
TypeScript

import { BookingDocument } from '../../../../../db/booking'
import { getBookingByUUID } from '../../../../../db/index'
import withSession, { isAdminSession } from '../../../../../lib/session'
export default withSession(async function bookingHandler(req, res) {
if (!isAdminSession(req, res)) {
return
}
const {
method,
query: { uuid: uuids },
} = req
const uuid = Array.isArray(uuids) ? uuids[0] : uuids
let booking: BookingDocument
switch (method) {
case 'PATCH':
booking = await getBookingByUUID(uuid)
// FIXME: validate all the things
booking.set(req.body)
await booking.save()
await booking.populate('booker').execPopulate()
res.status(200).json(booking.toJSON())
break
default:
res.setHeader('Allow', ['PATCH'])
res.status(405).end(`Method ${method} Not Allowed`)
}
})