daily cleanup + OfferDto.toString

This commit is contained in:
Patrick Haßel 2024-06-10 09:28:38 +02:00
parent ef2b9a8646
commit 98c44b7e14
2 changed files with 14 additions and 2 deletions

View File

@ -13,8 +13,10 @@ import java.util.List;
@ToString(onlyExplicitlyIncluded = true) @ToString(onlyExplicitlyIncluded = true)
public class OfferDto { public class OfferDto {
@ToString.Include
private final long id; private final long id;
@ToString.Include
private final long version; private final long version;
@NonNull @NonNull
@ -31,12 +33,14 @@ public class OfferDto {
private final boolean remember; private final boolean remember;
@NonNull @NonNull
@ToString.Include
private final String articleId; private final String articleId;
@NonNull @NonNull
private final ZonedDateTime articleDate; private final ZonedDateTime articleDate;
@NonNull @NonNull
@ToString.Include
private final String title; private final String title;
@NonNull @NonNull

View File

@ -4,25 +4,33 @@ import de.ph87.kleinanzeigen.kleinanzeigen.FetchResult;
import de.ph87.kleinanzeigen.kleinanzeigen.MergeResult; import de.ph87.kleinanzeigen.kleinanzeigen.MergeResult;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; 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.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import java.time.ZonedDateTime; import java.time.ZonedDateTime;
import java.util.List; import java.util.List;
import java.util.Optional; import java.util.Optional;
import java.util.concurrent.TimeUnit;
@Slf4j @Slf4j
@Service @Service
@Transactional @Transactional
@EnableScheduling
@RequiredArgsConstructor @RequiredArgsConstructor
public class OfferService { public class OfferService {
private final OfferRepository repository; private final OfferRepository repository;
public List<OfferDto> cleanUp() { private final ApplicationEventPublisher publisher;
@Scheduled(initialDelay = 1, fixedRate = 1, timeUnit = TimeUnit.DAYS)
public void cleanUp() {
final List<Offer> list = repository.findAllByExpiryBefore(ZonedDateTime.now()); final List<Offer> list = repository.findAllByExpiryBefore(ZonedDateTime.now());
repository.deleteAll(list); 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) { private OfferDto toDto(final Offer offer, final boolean existing) {