mirror of
https://github.com/Sheldan/Sissi.git
synced 2026-01-06 01:10:59 +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.abstracto.core.models.ServerSpecificId;
|
||||||
import dev.sheldan.sissi.module.meetup.model.database.Meetup;
|
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.data.jpa.repository.JpaRepository;
|
||||||
import org.springframework.stereotype.Repository;
|
import org.springframework.stereotype.Repository;
|
||||||
|
|
||||||
@@ -12,4 +13,5 @@ import java.util.List;
|
|||||||
public interface MeetupRepository extends JpaRepository<Meetup, ServerSpecificId> {
|
public interface MeetupRepository extends JpaRepository<Meetup, ServerSpecificId> {
|
||||||
List<Meetup> findByMeetupTimeLessThan(Instant date);
|
List<Meetup> findByMeetupTimeLessThan(Instant date);
|
||||||
List<Meetup> findByMeetupTimeGreaterThan(Instant date);
|
List<Meetup> findByMeetupTimeGreaterThan(Instant date);
|
||||||
|
List<Meetup> findByState(MeetupState state);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -225,11 +225,18 @@ public class MeetupServiceBean {
|
|||||||
@Transactional
|
@Transactional
|
||||||
public void cleanupMeetups() {
|
public void cleanupMeetups() {
|
||||||
Instant time = Instant.now().minus(1, ChronoUnit.DAYS);
|
Instant time = Instant.now().minus(1, ChronoUnit.DAYS);
|
||||||
List<Meetup> oldMeetups = meetupManagementServiceBean.getMeetupsOlderThan(time)
|
List<Meetup> oldMeetups = meetupManagementServiceBean.getMeetupsOlderThan(time);
|
||||||
.stream()
|
deleteMeetups(oldMeetups);
|
||||||
.filter(meetup -> meetup.getMessageId() != null)
|
List<Meetup> cancelledMeetups = meetupManagementServiceBean.findCancelledMeetups();
|
||||||
.collect(Collectors.toList());
|
deleteMeetups(cancelledMeetups);
|
||||||
oldMeetups.forEach(meetup -> messageService.deleteMessageInChannelInServer(meetup.getServer().getId(), meetup.getMeetupChannel().getId(), meetup.getMessageId()));
|
}
|
||||||
|
|
||||||
|
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);
|
meetupManagementServiceBean.deleteMeetups(oldMeetups);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -58,6 +58,10 @@ public class MeetupManagementServiceBean {
|
|||||||
return meetupRepository.findAll();
|
return meetupRepository.findAll();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public List<Meetup> findCancelledMeetups() {
|
||||||
|
return meetupRepository.findByState(MeetupState.CANCELLED);
|
||||||
|
}
|
||||||
|
|
||||||
public List<Meetup> getFutureMeetups() {
|
public List<Meetup> getFutureMeetups() {
|
||||||
return meetupRepository.findByMeetupTimeGreaterThan(Instant.now());
|
return meetupRepository.findByMeetupTimeGreaterThan(Instant.now());
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user