This commit is contained in:
Patrick Haßel 2024-07-26 15:07:21 +02:00
parent 1bcecaac51
commit 25804e0680
4 changed files with 17 additions and 21 deletions

View File

@ -133,7 +133,10 @@ public class TelegramAdapter {
private boolean mayDelete(final @NonNull MessageDto message) {
if (message.needsToBeDeleted()) {
TlgMessage.of(message).ifPresent(this::delete);
TlgMessage.of(message).ifPresent(tlgMessage -> {
bot.delete(tlgMessage);
messageService.markDeleted(tlgMessage);
});
return true;
}
return false;
@ -215,14 +218,4 @@ public class TelegramAdapter {
row.add(new InlineKeyboardButton(caption, null, data, null, null, null, null, null, null));
}
private void delete(@NonNull final TlgMessage tlgMessage) {
try {
log.info("Removing Message tlgMessage={}", tlgMessage);
bot.execute(tlgMessage.newDeleteMessage());
messageService.markDeleted(tlgMessage);
} catch (TelegramApiException e) {
log.error("Failed to remove Message tlgMessage={}", tlgMessage);
}
}
}

View File

@ -77,7 +77,7 @@ public class TelegramBot extends TelegramLongPollingBot {
case "undo" -> publisher.publishEvent(new ChatRequestUndo(message));
case "stop" -> publisher.publishEvent(new ChatRequestEnable(message, false));
}
remove(new TlgMessage(message));
delete(new TlgMessage(message));
}
private void handleCallback(@NonNull final CallbackQuery callback) {
@ -85,7 +85,7 @@ public class TelegramBot extends TelegramLongPollingBot {
try {
final InlineDto dto = objectMapper.readValue(callback.getData(), InlineDto.class);
switch (dto.getCommand()) {
case HIDE -> publisher.publishEvent(new MessageRequestHide(message));
case HIDE -> hide(message);
case REMEMBER -> publisher.publishEvent(new MessageRequestRemember(message, true));
case UNREMEMBER -> publisher.publishEvent(new MessageRequestRemember(message, false));
}
@ -94,7 +94,13 @@ public class TelegramBot extends TelegramLongPollingBot {
}
}
private void remove(@NonNull final TlgMessage tlgMessage) {
private void hide(final MaybeInaccessibleMessage message) {
final MessageRequestHide event = new MessageRequestHide(message);
delete(event);
publisher.publishEvent(event);
}
public void delete(@NonNull final TlgMessage tlgMessage) {
try {
log.info("Removing TlgMessage: tlgMessage={}", tlgMessage);
execute(new DeleteMessage(tlgMessage.chatId + "", tlgMessage.messageId));

View File

@ -3,7 +3,6 @@ package de.ph87.kleinanzeigen.telegram;
import de.ph87.kleinanzeigen.telegram.chat.message.MessageDto;
import lombok.NonNull;
import lombok.ToString;
import org.telegram.telegrambots.meta.api.methods.updatingmessages.DeleteMessage;
import org.telegram.telegrambots.meta.api.objects.MaybeInaccessibleMessage;
import java.util.Optional;
@ -31,9 +30,4 @@ public class TlgMessage {
return Optional.of(new TlgMessage(message.getChat().getId(), message.getTelegramMessageId()));
}
@NonNull
public DeleteMessage newDeleteMessage() {
return new DeleteMessage(chatId + "", messageId);
}
}

View File

@ -45,7 +45,10 @@ public class MessageService {
}
public void setHide(@NonNull final TlgMessage tlgMessage) {
set(tlgMessage, message -> message.setHide(true));
set(tlgMessage, message -> {
message.setHide(true);
message.setTelegramMessageId(null);
});
}
public void setRemember(@NonNull final TlgMessage tlgMessage, final boolean remember) {