From 369d7c4e28f6c011a69c760d050b9bfe478d26ca Mon Sep 17 00:00:00 2001 From: Syed Ali Shahbaz <52925846+alishaz-polymath@users.noreply.github.com> Date: Tue, 4 Oct 2022 11:02:28 +0200 Subject: [PATCH] adds custom filter allowing eml format (#4815) --- packages/lib/CalendarService.ts | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/packages/lib/CalendarService.ts b/packages/lib/CalendarService.ts index 392610a836..5212d1b18e 100644 --- a/packages/lib/CalendarService.ts +++ b/packages/lib/CalendarService.ts @@ -221,6 +221,20 @@ export default abstract class BaseCalendarService implements Calendar { } } + isValidFormat = (url: string): boolean => { + const acceptedFormats = ["eml", "ics"]; + const urlFormat = url.split(".").pop(); + if (urlFormat === undefined) { + console.error("Invalid request, calendar object extension missing"); + return false; + } + if (!acceptedFormats.includes(urlFormat)) { + console.error(`Unsupported calendar object format: ${urlFormat}`); + return false; + } + return true; + }; + async getAvailability( dateFrom: string, dateTo: string, @@ -232,6 +246,7 @@ export default abstract class BaseCalendarService implements Calendar { .filter((sc) => ["caldav_calendar", "apple_calendar"].includes(sc.integration ?? "")) .map((sc) => fetchCalendarObjects({ + urlFilter: (url: string) => this.isValidFormat(url), calendar: { url: sc.externalId, },