mirror of
https://github.com/tomru/pfadi-bussle.git
synced 2026-03-03 22:47:15 +01:00
53 lines
1.4 KiB
TypeScript
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),
|
|
})
|
|
}
|