From 9bc4ec0253424810efcab5517be57d5dd0353903 Mon Sep 17 00:00:00 2001 From: Sheldan <5037282+Sheldan@users.noreply.github.com> Date: Mon, 20 Jun 2022 20:12:41 +0200 Subject: [PATCH] [SIS-3] adding cleanup of cancelled meetups to job --- .../meetup/repository/MeetupRepository.java | 2 ++ .../meetup/service/MeetupServiceBean.java | 17 ++++++++++++----- .../management/MeetupManagementServiceBean.java | 4 ++++ 3 files changed, 18 insertions(+), 5 deletions(-) diff --git a/application/sissi-modules/meetup/src/main/java/dev/sheldan/sissi/module/meetup/repository/MeetupRepository.java b/application/sissi-modules/meetup/src/main/java/dev/sheldan/sissi/module/meetup/repository/MeetupRepository.java index 9e3745f2..a9fc84d6 100644 --- a/application/sissi-modules/meetup/src/main/java/dev/sheldan/sissi/module/meetup/repository/MeetupRepository.java +++ b/application/sissi-modules/meetup/src/main/java/dev/sheldan/sissi/module/meetup/repository/MeetupRepository.java @@ -2,6 +2,7 @@ package dev.sheldan.sissi.module.meetup.repository; import dev.sheldan.abstracto.core.models.ServerSpecificId; import dev.sheldan.sissi.module.meetup.model.database.Meetup; +import dev.sheldan.sissi.module.meetup.model.database.MeetupState; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.stereotype.Repository; @@ -12,4 +13,5 @@ import java.util.List; public interface MeetupRepository extends JpaRepository { List findByMeetupTimeLessThan(Instant date); List findByMeetupTimeGreaterThan(Instant date); + List findByState(MeetupState state); } diff --git a/application/sissi-modules/meetup/src/main/java/dev/sheldan/sissi/module/meetup/service/MeetupServiceBean.java b/application/sissi-modules/meetup/src/main/java/dev/sheldan/sissi/module/meetup/service/MeetupServiceBean.java index 0e82a3b1..008af75d 100644 --- a/application/sissi-modules/meetup/src/main/java/dev/sheldan/sissi/module/meetup/service/MeetupServiceBean.java +++ b/application/sissi-modules/meetup/src/main/java/dev/sheldan/sissi/module/meetup/service/MeetupServiceBean.java @@ -225,11 +225,18 @@ public class MeetupServiceBean { @Transactional public void cleanupMeetups() { Instant time = Instant.now().minus(1, ChronoUnit.DAYS); - List oldMeetups = meetupManagementServiceBean.getMeetupsOlderThan(time) - .stream() - .filter(meetup -> meetup.getMessageId() != null) - .collect(Collectors.toList()); - oldMeetups.forEach(meetup -> messageService.deleteMessageInChannelInServer(meetup.getServer().getId(), meetup.getMeetupChannel().getId(), meetup.getMessageId())); + List oldMeetups = meetupManagementServiceBean.getMeetupsOlderThan(time); + deleteMeetups(oldMeetups); + List cancelledMeetups = meetupManagementServiceBean.findCancelledMeetups(); + deleteMeetups(cancelledMeetups); + } + + private void deleteMeetups(List oldMeetups) { + oldMeetups.forEach(meetup -> { + if(meetup.getMessageId() != null) { + messageService.deleteMessageInChannelInServer(meetup.getServer().getId(), meetup.getMeetupChannel().getId(), meetup.getMessageId()); + } + }); meetupManagementServiceBean.deleteMeetups(oldMeetups); } } diff --git a/application/sissi-modules/meetup/src/main/java/dev/sheldan/sissi/module/meetup/service/management/MeetupManagementServiceBean.java b/application/sissi-modules/meetup/src/main/java/dev/sheldan/sissi/module/meetup/service/management/MeetupManagementServiceBean.java index 4b8467d0..eaee103a 100644 --- a/application/sissi-modules/meetup/src/main/java/dev/sheldan/sissi/module/meetup/service/management/MeetupManagementServiceBean.java +++ b/application/sissi-modules/meetup/src/main/java/dev/sheldan/sissi/module/meetup/service/management/MeetupManagementServiceBean.java @@ -58,6 +58,10 @@ public class MeetupManagementServiceBean { return meetupRepository.findAll(); } + public List findCancelledMeetups() { + return meetupRepository.findByState(MeetupState.CANCELLED); + } + public List getFutureMeetups() { return meetupRepository.findByMeetupTimeGreaterThan(Instant.now()); }