mirror of
https://github.com/Sheldan/Sissi.git
synced 2026-01-02 15:56:31 +00:00
[SIS-3] adding cleanup of cancelled meetups to job
This commit is contained in:
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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());
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user