diff --git a/README.md b/README.md deleted file mode 100644 index e69de29..0000000 diff --git a/telegram-context/telegram-context-quarkus/src/main/java/dev/struchkov/godfather/telegram/quarkus/context/service/TelegramService.java b/telegram-context/telegram-context-quarkus/src/main/java/dev/struchkov/godfather/telegram/quarkus/context/service/TelegramService.java index 146e1d4..d2c39d5 100644 --- a/telegram-context/telegram-context-quarkus/src/main/java/dev/struchkov/godfather/telegram/quarkus/context/service/TelegramService.java +++ b/telegram-context/telegram-context-quarkus/src/main/java/dev/struchkov/godfather/telegram/quarkus/context/service/TelegramService.java @@ -8,4 +8,8 @@ public interface TelegramService { Uni executeAction(@NotNull String personId, ChatAction chatAction); + Uni pinMessage(@NotNull String personId, @NotNull String messageId); + + Uni unPinMessage(@NotNull String personId, @NotNull String messageId); + } diff --git a/telegram-context/telegram-context-simple/src/main/java/dev/struchkov/godfather/telegram/simple/context/service/TelegramService.java b/telegram-context/telegram-context-simple/src/main/java/dev/struchkov/godfather/telegram/simple/context/service/TelegramService.java index 2662823..cdc376c 100644 --- a/telegram-context/telegram-context-simple/src/main/java/dev/struchkov/godfather/telegram/simple/context/service/TelegramService.java +++ b/telegram-context/telegram-context-simple/src/main/java/dev/struchkov/godfather/telegram/simple/context/service/TelegramService.java @@ -7,4 +7,8 @@ public interface TelegramService { void executeAction(@NotNull String personId, ChatAction chatAction); + void pinMessage(@NotNull String personId, @NotNull String messageId); + + void unPinMessage(@NotNull String personId, @NotNull String messageId); + } diff --git a/telegram-core/telegram-core-quarkus/src/main/java/dev/struchkov/godfather/telegram/quarkus/core/service/TelegramServiceImpl.java b/telegram-core/telegram-core-quarkus/src/main/java/dev/struchkov/godfather/telegram/quarkus/core/service/TelegramServiceImpl.java index 99e21e8..701c2e0 100644 --- a/telegram-core/telegram-core-quarkus/src/main/java/dev/struchkov/godfather/telegram/quarkus/core/service/TelegramServiceImpl.java +++ b/telegram-core/telegram-core-quarkus/src/main/java/dev/struchkov/godfather/telegram/quarkus/core/service/TelegramServiceImpl.java @@ -8,12 +8,15 @@ import org.jetbrains.annotations.NotNull; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.telegram.telegrambots.meta.api.methods.ActionType; +import org.telegram.telegrambots.meta.api.methods.pinnedmessages.PinChatMessage; +import org.telegram.telegrambots.meta.api.methods.pinnedmessages.UnpinChatMessage; import org.telegram.telegrambots.meta.api.methods.send.SendChatAction; import org.telegram.telegrambots.meta.bots.AbsSender; import org.telegram.telegrambots.meta.exceptions.TelegramApiException; import org.telegram.telegrambots.meta.exceptions.TelegramApiRequestException; import java.util.concurrent.CompletableFuture; +import java.util.concurrent.CompletionStage; public class TelegramServiceImpl implements TelegramService { @@ -35,6 +38,48 @@ public class TelegramServiceImpl implements TelegramService { .replaceWithVoid(); } + @Override + public Uni pinMessage(@NotNull String personId, @NotNull String messageId) { + final PinChatMessage pinChatMessage = new PinChatMessage(); + pinChatMessage.setChatId(personId); + pinChatMessage.setMessageId(Integer.parseInt(messageId)); + + return Uni.createFrom().completionStage(getExecuteAsync(pinChatMessage)) + .replaceWithVoid(); + } + + @Override + public Uni unPinMessage(@NotNull String personId, @NotNull String messageId) { + final UnpinChatMessage unpinChatMessage = new UnpinChatMessage(); + unpinChatMessage.setChatId(personId); + unpinChatMessage.setMessageId(Integer.parseInt(messageId)); + + return Uni.createFrom().completionStage(getExecuteAsync(unpinChatMessage)) + .replaceWithVoid(); + } + + private CompletableFuture getExecuteAsync(UnpinChatMessage unpinChatMessage) { + try { + return absSender.executeAsync(unpinChatMessage); + } catch (TelegramApiRequestException e) { + log.error(e.getApiResponse()); + } catch (TelegramApiException e) { + log.error(e.getMessage()); + } + return CompletableFuture.completedFuture(null); + } + + private CompletionStage getExecuteAsync(PinChatMessage pinChatMessage) { + try { + return absSender.executeAsync(pinChatMessage); + } catch (TelegramApiRequestException e) { + log.error(e.getApiResponse()); + } catch (TelegramApiException e) { + log.error(e.getMessage()); + } + return CompletableFuture.completedFuture(null); + } + private CompletableFuture getExecuteAsync(SendChatAction sendChatAction) { try { return absSender.executeAsync(sendChatAction); diff --git a/telegram-core/telegram-core-simple/src/main/java/dev/struchkov/godfather/telegram/simple/core/service/TelegramServiceImpl.java b/telegram-core/telegram-core-simple/src/main/java/dev/struchkov/godfather/telegram/simple/core/service/TelegramServiceImpl.java index d98c15d..a78c756 100644 --- a/telegram-core/telegram-core-simple/src/main/java/dev/struchkov/godfather/telegram/simple/core/service/TelegramServiceImpl.java +++ b/telegram-core/telegram-core-simple/src/main/java/dev/struchkov/godfather/telegram/simple/core/service/TelegramServiceImpl.java @@ -7,6 +7,8 @@ import org.jetbrains.annotations.NotNull; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.telegram.telegrambots.meta.api.methods.ActionType; +import org.telegram.telegrambots.meta.api.methods.pinnedmessages.PinChatMessage; +import org.telegram.telegrambots.meta.api.methods.pinnedmessages.UnpinChatMessage; import org.telegram.telegrambots.meta.api.methods.send.SendChatAction; import org.telegram.telegrambots.meta.bots.AbsSender; import org.telegram.telegrambots.meta.exceptions.TelegramApiException; @@ -36,4 +38,32 @@ public class TelegramServiceImpl implements TelegramService { } } + @Override + public void pinMessage(@NotNull String personId, @NotNull String messageId) { + final PinChatMessage pinChatMessage = new PinChatMessage(); + pinChatMessage.setChatId(personId); + pinChatMessage.setMessageId(Integer.parseInt(messageId)); + try { + absSender.execute(pinChatMessage); + } catch (TelegramApiRequestException e) { + log.error(e.getApiResponse()); + } catch (TelegramApiException e) { + log.error(e.getMessage()); + } + } + + @Override + public void unPinMessage(@NotNull String personId, @NotNull String messageId) { + final UnpinChatMessage unpinChatMessage = new UnpinChatMessage(); + unpinChatMessage.setChatId(personId); + unpinChatMessage.setMessageId(Integer.parseInt(messageId)); + try { + absSender.execute(unpinChatMessage); + } catch (TelegramApiRequestException e) { + log.error(e.getApiResponse()); + } catch (TelegramApiException e) { + log.error(e.getMessage()); + } + } + }