From bedd062aa068e2d7a7f567705d595fcef20a9d54 Mon Sep 17 00:00:00 2001 From: Collin Duncan <3679940+cgduncan7@users.noreply.github.com> Date: Tue, 29 Apr 2025 10:40:14 +0200 Subject: [PATCH] stopping reservation of dangerous (<5hr until start) reservations --- src/waitingList/service.ts | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/src/waitingList/service.ts b/src/waitingList/service.ts index fad565a..ddda36f 100644 --- a/src/waitingList/service.ts +++ b/src/waitingList/service.ts @@ -12,6 +12,7 @@ import { RESERVATIONS_QUEUE_NAME, ReservationsQueue, } from '../reservations/config' +import { Reservation } from '../reservations/entity' import { ReservationsService } from '../reservations/service' import { WaitingListDetails } from './types' @@ -90,12 +91,25 @@ export class WaitingListService { return } + // don't book something within the ~~danger zone~~ + const now = dayjs() + const { safe, dangerous } = reservations.reduce<{ + safe: Reservation[] + dangerous: Reservation[] + }>( + (acc, res) => + now.diff(res.dateRangeStart, 'hours') > 5 + ? { safe: [...acc.safe, res], dangerous: acc.dangerous } + : { safe: acc.safe, dangerous: [...acc.dangerous, res] }, + { safe: [], dangerous: [] }, + ) + this.loggerService.debug( - `Found ${reservations.length} reservations on waiting list`, + `Found ${safe.length} safe reservations on waiting list (${dangerous.length} dangerous)`, ) await this.reservationsQueue.addBulk( - reservations.map((r) => ({ + safe.map((r) => ({ data: { reservation: r, speedyMode: false }, opts: { attempts: 1 }, })),