From 54aef1ece85031cca38c4e5d1cf203e6c3f759f7 Mon Sep 17 00:00:00 2001 From: Collin Duncan <3679940+cgduncan7@users.noreply.github.com> Date: Wed, 27 Sep 2023 15:46:54 +0200 Subject: [PATCH] Adding formatting of date when reading from email --- src/common/dayjs.ts | 7 +++++-- src/waitingList/service.ts | 9 ++++++++- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/src/common/dayjs.ts b/src/common/dayjs.ts index 9d0c1d0..633b72c 100644 --- a/src/common/dayjs.ts +++ b/src/common/dayjs.ts @@ -1,13 +1,15 @@ import 'dayjs/locale/nl' import * as dayjs from 'dayjs' +import * as customParseFormat from 'dayjs/plugin/customParseFormat' import * as isSameOrBefore from 'dayjs/plugin/isSameOrBefore' import * as timezone from 'dayjs/plugin/timezone' import * as utc from 'dayjs/plugin/utc' +dayjs.extend(customParseFormat) dayjs.extend(isSameOrBefore) -dayjs.extend(utc) dayjs.extend(timezone) +dayjs.extend(utc) dayjs.locale('nl') dayjs.tz.setDefault('Europe/Amsterdam') @@ -32,8 +34,9 @@ export const convertDateRangeStringToObject = ({ const dayjsTz = ( date?: string | number | Date | dayjs.Dayjs | null | undefined, + format?: string, ) => { - return dayjs(date).tz() + return dayjs(date, format).tz() } export default dayjsTz diff --git a/src/waitingList/service.ts b/src/waitingList/service.ts index 0c383ac..d53ed29 100644 --- a/src/waitingList/service.ts +++ b/src/waitingList/service.ts @@ -64,7 +64,14 @@ export class WaitingListService { private async handleWaitingListEmail(email: Email) { const { date, startTime } = this.getWaitingListDetails(email) - const dateRangeStart = dayjs(`${date} ${startTime}`) + const dateRangeStart = dayjs(`${date} ${startTime}`, 'YYYY-MM-DD HH:mm') + if (!dateRangeStart.isValid()) { + this.loggerService.error('Invalid date parsed from email', { + date, + startTime, + }) + return + } const reservations = await this.reservationsService.getByDateOnWaitingList( dateRangeStart, )