mirror of
https://github.com/tomru/pfadi-bussle.git
synced 2026-03-03 06:27:11 +01:00
also add mail when user cancels
This commit is contained in:
@@ -1,29 +1,37 @@
|
||||
import { NextApiRequest, NextApiResponse } from 'next'
|
||||
import Book from '../../../../components/book'
|
||||
import { Booking } from '../../../../db/booking'
|
||||
import { BOOKING_STATUS } from '../../../../db/enums'
|
||||
import { patchBooking } from '../../../../db/index'
|
||||
import {
|
||||
sendBookingConfirmed,
|
||||
sendBookingRejected,
|
||||
sendBookingCanceled,
|
||||
} from '../../../../helpers/mail'
|
||||
|
||||
function changedStatus(
|
||||
booking: Booking,
|
||||
updates: Partial<Booking>,
|
||||
previous: Booking,
|
||||
current: Partial<Booking>,
|
||||
status: BOOKING_STATUS
|
||||
): boolean {
|
||||
return (
|
||||
[BOOKING_STATUS.REQUESTED].includes(booking.status) &&
|
||||
updates.status === status
|
||||
[BOOKING_STATUS.REQUESTED].includes(previous.status) &&
|
||||
current.status === status
|
||||
)
|
||||
}
|
||||
function wasRejected(booking: Booking, updates: Partial<Booking>): boolean {
|
||||
return changedStatus(booking, updates, BOOKING_STATUS.REJECTED)
|
||||
function wasRejected(previous: Booking, current: Partial<Booking>): boolean {
|
||||
return changedStatus(previous, current, BOOKING_STATUS.REJECTED)
|
||||
}
|
||||
|
||||
function wasConfirmed(booking: Booking, updates: Partial<Booking>): boolean {
|
||||
return changedStatus(booking, updates, BOOKING_STATUS.CONFIRMED)
|
||||
function wasConfirmed(previous: Booking, current: Partial<Booking>): boolean {
|
||||
return changedStatus(previous, current, BOOKING_STATUS.CONFIRMED)
|
||||
}
|
||||
|
||||
function wasCanceled(previous: Booking, current: Partial<Booking>): boolean {
|
||||
return (
|
||||
[BOOKING_STATUS.REQUESTED, BOOKING_STATUS.CONFIRMED].includes(
|
||||
previous.status
|
||||
) && current.status === BOOKING_STATUS.CANCELED
|
||||
)
|
||||
}
|
||||
|
||||
export default async function userHandler(
|
||||
@@ -58,6 +66,8 @@ export default async function userHandler(
|
||||
sendBookingRejected(current)
|
||||
} else if (wasConfirmed(previous, current)) {
|
||||
sendBookingConfirmed(current)
|
||||
} else if (wasCanceled(previous, current)) {
|
||||
sendBookingCanceled(current)
|
||||
}
|
||||
|
||||
res.status(200).json(current)
|
||||
|
||||
Reference in New Issue
Block a user