diff --git a/src/main/java/de/ph87/kleinanzeigen/telegram/TelegramAdapter.java b/src/main/java/de/ph87/kleinanzeigen/telegram/TelegramAdapter.java index b60ab43..ff8d64b 100644 --- a/src/main/java/de/ph87/kleinanzeigen/telegram/TelegramAdapter.java +++ b/src/main/java/de/ph87/kleinanzeigen/telegram/TelegramAdapter.java @@ -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); - } - } - } diff --git a/src/main/java/de/ph87/kleinanzeigen/telegram/TelegramBot.java b/src/main/java/de/ph87/kleinanzeigen/telegram/TelegramBot.java index c9cd99e..94fdada 100644 --- a/src/main/java/de/ph87/kleinanzeigen/telegram/TelegramBot.java +++ b/src/main/java/de/ph87/kleinanzeigen/telegram/TelegramBot.java @@ -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)); diff --git a/src/main/java/de/ph87/kleinanzeigen/telegram/TlgMessage.java b/src/main/java/de/ph87/kleinanzeigen/telegram/TlgMessage.java index 987b107..f4bbb8c 100644 --- a/src/main/java/de/ph87/kleinanzeigen/telegram/TlgMessage.java +++ b/src/main/java/de/ph87/kleinanzeigen/telegram/TlgMessage.java @@ -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); - } - } diff --git a/src/main/java/de/ph87/kleinanzeigen/telegram/chat/message/MessageService.java b/src/main/java/de/ph87/kleinanzeigen/telegram/chat/message/MessageService.java index 5be0eda..e082b6b 100644 --- a/src/main/java/de/ph87/kleinanzeigen/telegram/chat/message/MessageService.java +++ b/src/main/java/de/ph87/kleinanzeigen/telegram/chat/message/MessageService.java @@ -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) {