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) { private boolean mayDelete(final @NonNull MessageDto message) {
if (message.needsToBeDeleted()) { if (message.needsToBeDeleted()) {
TlgMessage.of(message).ifPresent(this::delete); TlgMessage.of(message).ifPresent(tlgMessage -> {
bot.delete(tlgMessage);
messageService.markDeleted(tlgMessage);
});
return true; return true;
} }
return false; return false;
@ -215,14 +218,4 @@ public class TelegramAdapter {
row.add(new InlineKeyboardButton(caption, null, data, null, null, null, null, null, null)); 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 "undo" -> publisher.publishEvent(new ChatRequestUndo(message));
case "stop" -> publisher.publishEvent(new ChatRequestEnable(message, false)); case "stop" -> publisher.publishEvent(new ChatRequestEnable(message, false));
} }
remove(new TlgMessage(message)); delete(new TlgMessage(message));
} }
private void handleCallback(@NonNull final CallbackQuery callback) { private void handleCallback(@NonNull final CallbackQuery callback) {
@ -85,7 +85,7 @@ public class TelegramBot extends TelegramLongPollingBot {
try { try {
final InlineDto dto = objectMapper.readValue(callback.getData(), InlineDto.class); final InlineDto dto = objectMapper.readValue(callback.getData(), InlineDto.class);
switch (dto.getCommand()) { switch (dto.getCommand()) {
case HIDE -> publisher.publishEvent(new MessageRequestHide(message)); case HIDE -> hide(message);
case REMEMBER -> publisher.publishEvent(new MessageRequestRemember(message, true)); case REMEMBER -> publisher.publishEvent(new MessageRequestRemember(message, true));
case UNREMEMBER -> publisher.publishEvent(new MessageRequestRemember(message, false)); 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 { try {
log.info("Removing TlgMessage: tlgMessage={}", tlgMessage); log.info("Removing TlgMessage: tlgMessage={}", tlgMessage);
execute(new DeleteMessage(tlgMessage.chatId + "", tlgMessage.messageId)); 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 de.ph87.kleinanzeigen.telegram.chat.message.MessageDto;
import lombok.NonNull; import lombok.NonNull;
import lombok.ToString; import lombok.ToString;
import org.telegram.telegrambots.meta.api.methods.updatingmessages.DeleteMessage;
import org.telegram.telegrambots.meta.api.objects.MaybeInaccessibleMessage; import org.telegram.telegrambots.meta.api.objects.MaybeInaccessibleMessage;
import java.util.Optional; import java.util.Optional;
@ -31,9 +30,4 @@ public class TlgMessage {
return Optional.of(new TlgMessage(message.getChat().getId(), message.getTelegramMessageId())); 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) { 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) { public void setRemember(@NonNull final TlgMessage tlgMessage, final boolean remember) {