From d9cd2af3147bbd85bd63a92e34a84e49f0f1e8f3 Mon Sep 17 00:00:00 2001 From: Thomas Ruoff Date: Mon, 14 Mar 2022 23:52:32 +0100 Subject: [PATCH] extract patch booking to db --- db/index.ts | 12 ++++++++++++ pages/api/bookings/[uuid]/index.ts | 8 +++----- 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/db/index.ts b/db/index.ts index e5fab30..3c0f917 100644 --- a/db/index.ts +++ b/db/index.ts @@ -76,6 +76,18 @@ export async function createBooking({ return booking.toJSON() } +export async function patchBooking( + bookingUUID: string, + bookingData: Booking, +): Promise { + await connect() + const booking = await getBookingByUUID(bookingUUID) + booking.set(bookingData); + await booking.save() + + return booking.toJSON() +} + export async function createBill( bookingUUID: string, billData: Bill diff --git a/pages/api/bookings/[uuid]/index.ts b/pages/api/bookings/[uuid]/index.ts index 872b1a4..6f95617 100644 --- a/pages/api/bookings/[uuid]/index.ts +++ b/pages/api/bookings/[uuid]/index.ts @@ -1,7 +1,7 @@ import { NextApiRequest, NextApiResponse } from 'next' import { BookingDocument } from '../../../../db/booking' import { BOOKING_STATUS } from '../../../../db/enums' -import { getBookingByUUID } from '../../../../db/index' +import { patchBooking } from '../../../../db/index' export default async function userHandler( req: NextApiRequest, @@ -18,8 +18,6 @@ export default async function userHandler( switch (method) { case 'PATCH': - booking = await getBookingByUUID(uuid) - if (!Object.values(BOOKING_STATUS).includes(req.body.status)) { res .status(400) @@ -33,8 +31,8 @@ export default async function userHandler( booking.set(req.body) try { - await booking.save() - res.status(200).json(booking.toJSON()) + const booking = await patchBooking(uuid, req.body); + res.status(200).json(booking) } catch (error) { res.status(400).end(`Failed to save booking: ${error.message}`) }