diff --git a/db/booking.ts b/db/booking.ts index 4555453..34d738a 100644 --- a/db/booking.ts +++ b/db/booking.ts @@ -16,10 +16,12 @@ export type Booking = { zip: string city: string bill?: Bill - start: string + // format YYYY-MM-DD + start: string, startDate: Date - endDate: Date + // format YYYY-MM-DD end: string + endDate: Date status?: BOOKING_STATUS purpose?: string org?: string diff --git a/helpers/booking.ts b/helpers/booking.ts index 981297f..951a804 100644 --- a/helpers/booking.ts +++ b/helpers/booking.ts @@ -1,6 +1,20 @@ +import { BookFormData } from '../context/book' import { BOOKING_STATUS } from '../db/enums' +import { dateFormatBackend } from './date'; import fetch from './fetch' +function getBody(formData: BookFormData) { + const body: any = { + ...formData, + }; + + // if existend, convert dates to TZ less YYYY-MM-DD format + body.startDate && (body.startDate = dateFormatBackend(body.startDate)) + body.endDate && (body.endDate = dateFormatBackend(body.endDate)) + + return body; +} + export function getBookingStatus(status: BOOKING_STATUS) { switch (status) { case BOOKING_STATUS.REQUESTED: @@ -16,10 +30,10 @@ export function getBookingStatus(status: BOOKING_STATUS) { } } -export async function createBooking(formData: object) { +export async function createBooking(formData: BookFormData) { return fetch('/api/bookings', { method: 'POST', - body: formData, + body: getBody(formData), }) } @@ -30,9 +44,9 @@ export async function cancelBooking(uuid: string) { }) } -export async function patchBooking(uuid: string, bookingData: object) { +export async function patchBooking(uuid: string, bookingData: BookFormData) { return fetch(`/api/bookings/${uuid}`, { method: 'PATCH', - body: { ...bookingData }, + body: getBody(bookingData), }) }