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, )