[SIS-3] adding cleanup of cancelled meetups to job

This commit is contained in:
Sheldan
2022-06-20 20:12:41 +02:00
parent 533c9e3a63
commit 9bc4ec0253
3 changed files with 18 additions and 5 deletions

View File

@@ -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<Meetup, ServerSpecificId> {
List<Meetup> findByMeetupTimeLessThan(Instant date);
List<Meetup> findByMeetupTimeGreaterThan(Instant date);
List<Meetup> findByState(MeetupState state);
}

View File

@@ -225,11 +225,18 @@ public class MeetupServiceBean {
@Transactional
public void cleanupMeetups() {
Instant time = Instant.now().minus(1, ChronoUnit.DAYS);
List<Meetup> 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<Meetup> oldMeetups = meetupManagementServiceBean.getMeetupsOlderThan(time);
deleteMeetups(oldMeetups);
List<Meetup> cancelledMeetups = meetupManagementServiceBean.findCancelledMeetups();
deleteMeetups(cancelledMeetups);
}
private void deleteMeetups(List<Meetup> oldMeetups) {
oldMeetups.forEach(meetup -> {
if(meetup.getMessageId() != null) {
messageService.deleteMessageInChannelInServer(meetup.getServer().getId(), meetup.getMeetupChannel().getId(), meetup.getMessageId());
}
});
meetupManagementServiceBean.deleteMeetups(oldMeetups);
}
}

View File

@@ -58,6 +58,10 @@ public class MeetupManagementServiceBean {
return meetupRepository.findAll();
}
public List<Meetup> findCancelledMeetups() {
return meetupRepository.findByState(MeetupState.CANCELLED);
}
public List<Meetup> getFutureMeetups() {
return meetupRepository.findByMeetupTimeGreaterThan(Instant.now());
}