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)
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

View File

@ -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<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());
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) {