diff --git a/src/main/java/de/ph87/kleinanzeigen/kleinanzeigen/offer/OfferDto.java b/src/main/java/de/ph87/kleinanzeigen/kleinanzeigen/offer/OfferDto.java index 19da634..24eaf7d 100644 --- a/src/main/java/de/ph87/kleinanzeigen/kleinanzeigen/offer/OfferDto.java +++ b/src/main/java/de/ph87/kleinanzeigen/kleinanzeigen/offer/OfferDto.java @@ -13,8 +13,10 @@ import java.util.List; @ToString(onlyExplicitlyIncluded = true) public class OfferDto { + @ToString.Include private final long id; + @ToString.Include private final long version; @NonNull @@ -31,12 +33,14 @@ public class OfferDto { private final boolean remember; @NonNull + @ToString.Include private final String articleId; @NonNull private final ZonedDateTime articleDate; @NonNull + @ToString.Include private final String title; @NonNull diff --git a/src/main/java/de/ph87/kleinanzeigen/kleinanzeigen/offer/OfferService.java b/src/main/java/de/ph87/kleinanzeigen/kleinanzeigen/offer/OfferService.java index 146f183..a09b088 100644 --- a/src/main/java/de/ph87/kleinanzeigen/kleinanzeigen/offer/OfferService.java +++ b/src/main/java/de/ph87/kleinanzeigen/kleinanzeigen/offer/OfferService.java @@ -4,25 +4,33 @@ import de.ph87.kleinanzeigen.kleinanzeigen.FetchResult; import de.ph87.kleinanzeigen.kleinanzeigen.MergeResult; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.springframework.context.ApplicationEventPublisher; +import org.springframework.scheduling.annotation.EnableScheduling; +import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.time.ZonedDateTime; import java.util.List; import java.util.Optional; +import java.util.concurrent.TimeUnit; @Slf4j @Service @Transactional +@EnableScheduling @RequiredArgsConstructor public class OfferService { private final OfferRepository repository; - public List cleanUp() { + private final ApplicationEventPublisher publisher; + + @Scheduled(initialDelay = 1, fixedRate = 1, timeUnit = TimeUnit.DAYS) + public void cleanUp() { final List list = repository.findAllByExpiryBefore(ZonedDateTime.now()); repository.deleteAll(list); - return list.stream().map(offer -> toDto(offer, false)).toList(); + list.stream().map(offer -> toDto(offer, false)).forEach(publisher::publishEvent); } private OfferDto toDto(final Offer offer, final boolean existing) {