updates for zmanagement x3
All checks were successful
Build Org Backend / build (push) Successful in 15s
All checks were successful
Build Org Backend / build (push) Successful in 15s
This commit is contained in:
@@ -36,7 +36,9 @@ import java.time.temporal.Temporal;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Base64;
|
||||
import java.util.Comparator;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.logging.Level;
|
||||
import java.util.logging.Logger;
|
||||
@@ -157,11 +159,22 @@ public class CalendarSyncService {
|
||||
}
|
||||
}
|
||||
|
||||
return events.stream()
|
||||
return deduplicate(events.stream()
|
||||
.filter(event -> event.getStartsAt().isBefore(to.toOffsetDateTime())
|
||||
&& event.getEndsAt().isAfter(from.toOffsetDateTime()))
|
||||
.sorted(Comparator.comparing(CalendarEvent::getStartsAt))
|
||||
.toList();
|
||||
.toList());
|
||||
}
|
||||
|
||||
private List<CalendarEvent> deduplicate(List<CalendarEvent> events) {
|
||||
Map<String, CalendarEvent> uniqueEvents = new LinkedHashMap<>();
|
||||
for (CalendarEvent event : events) {
|
||||
CalendarEvent duplicate = uniqueEvents.putIfAbsent(event.getExternalId(), event);
|
||||
if (duplicate != null) {
|
||||
logger.info("Skipping duplicate calendar event from " + event.getSource() + " at " + event.getStartsAt());
|
||||
}
|
||||
}
|
||||
return List.copyOf(uniqueEvents.values());
|
||||
}
|
||||
|
||||
private List<CalendarEvent> toCalendarEvents(
|
||||
|
||||
Reference in New Issue
Block a user