Files
pfadi-bussle/helpers/booking.ts
2022-03-18 00:17:38 +01:00

53 lines
1.4 KiB
TypeScript

import { BookFormData } from '../context/book'
import { BOOKING_STATUS } from '../db/enums'
import { dateFormatBackend } from './date';
import fetch from './fetch'
function getBody(formData: Partial<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:
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<BookFormData>) {
return fetch(`/api/bookings/${uuid}`, {
method: 'PATCH',
body: getBody(bookingData),
})
}