removed Message.expiry
This commit is contained in:
parent
3041ea9aa7
commit
10f4cdac2a
@ -6,8 +6,6 @@ import jakarta.annotation.Nullable;
|
|||||||
import jakarta.persistence.*;
|
import jakarta.persistence.*;
|
||||||
import lombok.*;
|
import lombok.*;
|
||||||
|
|
||||||
import java.time.ZonedDateTime;
|
|
||||||
|
|
||||||
@Entity
|
@Entity
|
||||||
@Getter
|
@Getter
|
||||||
@ToString
|
@ToString
|
||||||
@ -31,14 +29,11 @@ public class Message {
|
|||||||
@Nullable
|
@Nullable
|
||||||
private Integer telegramMessageId;
|
private Integer telegramMessageId;
|
||||||
|
|
||||||
@NonNull
|
|
||||||
@Column(nullable = false)
|
|
||||||
private ZonedDateTime expiry = ZonedDateTime.now().plusDays(3);
|
|
||||||
|
|
||||||
@Setter
|
@Setter
|
||||||
@Column
|
@Column
|
||||||
private boolean hide = false;
|
private boolean hide = false;
|
||||||
|
|
||||||
|
@Setter
|
||||||
@Column
|
@Column
|
||||||
private boolean remember = false;
|
private boolean remember = false;
|
||||||
|
|
||||||
@ -48,14 +43,4 @@ public class Message {
|
|||||||
this.telegramMessageId = tlgMessage.getMessageId();
|
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.Data;
|
||||||
import lombok.NonNull;
|
import lombok.NonNull;
|
||||||
|
|
||||||
import java.time.ZonedDateTime;
|
|
||||||
|
|
||||||
@Data
|
@Data
|
||||||
public class MessageDto {
|
public class MessageDto {
|
||||||
|
|
||||||
@ -22,8 +20,6 @@ public class MessageDto {
|
|||||||
@Nullable
|
@Nullable
|
||||||
private final Integer telegramMessageId;
|
private final Integer telegramMessageId;
|
||||||
|
|
||||||
private final ZonedDateTime expiry;
|
|
||||||
|
|
||||||
private final boolean hide;
|
private final boolean hide;
|
||||||
|
|
||||||
private final boolean remember;
|
private final boolean remember;
|
||||||
@ -33,7 +29,6 @@ public class MessageDto {
|
|||||||
chat = chatDto;
|
chat = chatDto;
|
||||||
offer = offerDto;
|
offer = offerDto;
|
||||||
telegramMessageId = message.getTelegramMessageId();
|
telegramMessageId = message.getTelegramMessageId();
|
||||||
expiry = message.getExpiry();
|
|
||||||
hide = message.isHide();
|
hide = message.isHide();
|
||||||
remember = message.isRemember();
|
remember = message.isRemember();
|
||||||
}
|
}
|
||||||
|
|||||||
@ -2,7 +2,6 @@ package de.ph87.kleinanzeigen.telegram.chat.message;
|
|||||||
|
|
||||||
import org.springframework.data.repository.ListCrudRepository;
|
import org.springframework.data.repository.ListCrudRepository;
|
||||||
|
|
||||||
import java.time.ZonedDateTime;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
|
|
||||||
@ -12,6 +11,4 @@ public interface MessageRepository extends ListCrudRepository<Message, Long> {
|
|||||||
|
|
||||||
List<Message> findAllByOffer_Id(long id);
|
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.Offer;
|
||||||
import de.ph87.kleinanzeigen.kleinanzeigen.offer.OfferDto;
|
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.kleinanzeigen.offer.OfferService;
|
||||||
import de.ph87.kleinanzeigen.telegram.chat.Chat;
|
import de.ph87.kleinanzeigen.telegram.chat.Chat;
|
||||||
import de.ph87.kleinanzeigen.telegram.chat.ChatDto;
|
import de.ph87.kleinanzeigen.telegram.chat.ChatDto;
|
||||||
import de.ph87.kleinanzeigen.telegram.chat.ChatService;
|
import de.ph87.kleinanzeigen.telegram.chat.ChatService;
|
||||||
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.EnableScheduling;
|
||||||
import org.springframework.scheduling.annotation.Scheduled;
|
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Propagation;
|
import org.springframework.transaction.annotation.Propagation;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
import org.telegram.telegrambots.meta.api.objects.MaybeInaccessibleMessage;
|
import org.telegram.telegrambots.meta.api.objects.MaybeInaccessibleMessage;
|
||||||
|
|
||||||
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
|
||||||
@ -31,28 +26,10 @@ public class MessageService {
|
|||||||
|
|
||||||
private final MessageRepository messageRepository;
|
private final MessageRepository messageRepository;
|
||||||
|
|
||||||
private final OfferRepository offerRepository;
|
|
||||||
|
|
||||||
private final OfferService offerService;
|
private final OfferService offerService;
|
||||||
|
|
||||||
private final ChatService chatService;
|
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)
|
@Transactional(propagation = Propagation.REQUIRES_NEW)
|
||||||
public void create(final OfferDto offerDto, final ChatDto chatDto, final org.telegram.telegrambots.meta.api.objects.Message tlgMessage) {
|
public void create(final OfferDto offerDto, final ChatDto chatDto, final org.telegram.telegrambots.meta.api.objects.Message tlgMessage) {
|
||||||
final Offer offer = offerService.getByDto(offerDto);
|
final Offer offer = offerService.getByDto(offerDto);
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user