removed Message.expiry

This commit is contained in:
Patrick Haßel 2024-07-25 16:01:09 +02:00
parent 3041ea9aa7
commit 10f4cdac2a
4 changed files with 1 additions and 47 deletions

View File

@ -6,8 +6,6 @@ import jakarta.annotation.Nullable;
import jakarta.persistence.*;
import lombok.*;
import java.time.ZonedDateTime;
@Entity
@Getter
@ToString
@ -31,14 +29,11 @@ public class Message {
@Nullable
private Integer telegramMessageId;
@NonNull
@Column(nullable = false)
private ZonedDateTime expiry = ZonedDateTime.now().plusDays(3);
@Setter
@Column
private boolean hide = false;
@Setter
@Column
private boolean remember = false;
@ -48,14 +43,4 @@ public class Message {
this.telegramMessageId = tlgMessage.getMessageId();
}
public void setRemember(final boolean newRemember) {
if (remember && !newRemember) {
final ZonedDateTime oneHour = ZonedDateTime.now().plusHours(1);
if (oneHour.isAfter(expiry)) {
expiry = oneHour;
}
}
remember = newRemember;
}
}

View File

@ -6,8 +6,6 @@ import jakarta.annotation.Nullable;
import lombok.Data;
import lombok.NonNull;
import java.time.ZonedDateTime;
@Data
public class MessageDto {
@ -22,8 +20,6 @@ public class MessageDto {
@Nullable
private final Integer telegramMessageId;
private final ZonedDateTime expiry;
private final boolean hide;
private final boolean remember;
@ -33,7 +29,6 @@ public class MessageDto {
chat = chatDto;
offer = offerDto;
telegramMessageId = message.getTelegramMessageId();
expiry = message.getExpiry();
hide = message.isHide();
remember = message.isRemember();
}

View File

@ -2,7 +2,6 @@ package de.ph87.kleinanzeigen.telegram.chat.message;
import org.springframework.data.repository.ListCrudRepository;
import java.time.ZonedDateTime;
import java.util.List;
import java.util.Optional;
@ -12,6 +11,4 @@ public interface MessageRepository extends ListCrudRepository<Message, Long> {
List<Message> findAllByOffer_Id(long id);
List<Message> findAllByExpiryBefore(ZonedDateTime deadline);
}

View File

@ -2,25 +2,20 @@ package de.ph87.kleinanzeigen.telegram.chat.message;
import de.ph87.kleinanzeigen.kleinanzeigen.offer.Offer;
import de.ph87.kleinanzeigen.kleinanzeigen.offer.OfferDto;
import de.ph87.kleinanzeigen.kleinanzeigen.offer.OfferRepository;
import de.ph87.kleinanzeigen.kleinanzeigen.offer.OfferService;
import de.ph87.kleinanzeigen.telegram.chat.Chat;
import de.ph87.kleinanzeigen.telegram.chat.ChatDto;
import de.ph87.kleinanzeigen.telegram.chat.ChatService;
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.Propagation;
import org.springframework.transaction.annotation.Transactional;
import org.telegram.telegrambots.meta.api.objects.MaybeInaccessibleMessage;
import java.time.ZonedDateTime;
import java.util.List;
import java.util.Optional;
import java.util.concurrent.TimeUnit;
@Slf4j
@Service
@ -31,28 +26,10 @@ public class MessageService {
private final MessageRepository messageRepository;
private final OfferRepository offerRepository;
private final OfferService offerService;
private final ChatService chatService;
private final ApplicationEventPublisher publisher;
@Scheduled(initialDelay = 1, fixedRate = 1, timeUnit = TimeUnit.HOURS)
public void cleanUp() {
for (final Message message : messageRepository.findAllByExpiryBefore(ZonedDateTime.now())) {
message.getOffer().getMessages().remove(message);
messageRepository.delete(message);
if (message.getOffer().getMessages().isEmpty()) {
offerRepository.delete(message.getOffer());
}
if (message.getTelegramMessageId() != null) {
publisher.publishEvent(new MessageDeleted(message.getChat().getId(), message.getTelegramMessageId()));
}
}
}
@Transactional(propagation = Propagation.REQUIRES_NEW)
public void create(final OfferDto offerDto, final ChatDto chatDto, final org.telegram.telegrambots.meta.api.objects.Message tlgMessage) {
final Offer offer = offerService.getByDto(offerDto);