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.ArrayList;
|
||||||
import java.util.Base64;
|
import java.util.Base64;
|
||||||
import java.util.Comparator;
|
import java.util.Comparator;
|
||||||
|
import java.util.LinkedHashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
import java.util.logging.Level;
|
import java.util.logging.Level;
|
||||||
import java.util.logging.Logger;
|
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())
|
.filter(event -> event.getStartsAt().isBefore(to.toOffsetDateTime())
|
||||||
&& event.getEndsAt().isAfter(from.toOffsetDateTime()))
|
&& event.getEndsAt().isAfter(from.toOffsetDateTime()))
|
||||||
.sorted(Comparator.comparing(CalendarEvent::getStartsAt))
|
.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(
|
private List<CalendarEvent> toCalendarEvents(
|
||||||
|
|||||||
Reference in New Issue
Block a user