removed Message.expiry
This commit is contained in:
parent
3041ea9aa7
commit
10f4cdac2a
@ -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;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -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();
|
||||
}
|
||||
|
||||
@ -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);
|
||||
|
||||
}
|
||||
|
||||
@ -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);
|
||||
|
||||
Loading…
Reference in New Issue
Block a user