From 402e91b57601fdaffc5ac92ef2465ff04b92a136 Mon Sep 17 00:00:00 2001 From: Andreas Harter Date: Wed, 23 Dec 2020 00:15:20 +0100 Subject: [PATCH] Fix event filter function in example --- example/data.js | 24 ++++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/example/data.js b/example/data.js index af34d2e..973f38f 100644 --- a/example/data.js +++ b/example/data.js @@ -73,6 +73,24 @@ const bumpSyncToken = function(cal) { cal.syncToken = parts.slice(0, -1).join('/') + '/' + (parseInt(parts[parts.length - 1]) + 1); }; +const eventFilter = function(start, end, eventStart, eventEnd) { + return (!start || start <= eventEnd) && (!end || end >= eventStart); +}; + +const recurringEventFilter = function(start, end, event) { + if (!event.recurring) { + return false; + } + + const eventStart = event.startDate; + const eventEnd = event.recurring.until ? event.recurring.until : end; + return eventFilter(start, end, eventStart, eventEnd); +}; + +const singleEventFilter = function(start, end, event) { + return eventFilter(start, end, event.startDate, event.endDate); +}; + module.exports.getCalendar = async function({ calendarId, // principalId, @@ -125,10 +143,8 @@ module.exports.getEventsByDate = async function({ return _.filter(data.events, (v) => { return v.calendarId === calendarId && ( - v.weekly || - (start && v.startDate >= start && end && v.endDate <= end) || - (start && v.startDate >= start && !end) || - (!start && end && v.endDate <= end) + recurringEventFilter(start, end, v) || + singleEventFilter(start, end, v) ); }); };