import { BookFormData } from '../context/book' import { BOOKING_STATUS } from '../db/enums' import { dateFormatBackend } from './date'; import fetch from './fetch' function getBody(formData: Partial) { 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: return 'Angefragt' case BOOKING_STATUS.CONFIRMED: return 'BestÃĪtigt' case BOOKING_STATUS.REJECTED: return 'Abgewiesen' case BOOKING_STATUS.CANCELED: return 'Storniert' default: return 'Unbekannt - bitte kontaktieren Sie uns!' } } export async function createBooking(formData: BookFormData) { return fetch('/api/bookings', { method: 'POST', body: getBody(formData), }) } export async function cancelBooking(uuid: string) { return fetch(`/api/bookings/${uuid}`, { method: 'PATCH', body: { status: BOOKING_STATUS.CANCELED }, }) } export async function patchBooking(uuid: string, bookingData: Partial) { return fetch(`/api/bookings/${uuid}`, { method: 'PATCH', body: getBody(bookingData), }) }