From b6a9c0d89632d59ec2166b175fff5dfd88d75391 Mon Sep 17 00:00:00 2001 From: shoxi Date: Mon, 4 Mar 2024 01:58:41 +0500 Subject: [PATCH] PinChatMessageOperations, UnpinChatMessageOperations and UnpinAllChatMessagesOperations operatoins are done. Should Check methods of the CreateInvoiceLinkOperations and InvoiceOperations interfaces --- .../template/DefaultFluentTemplate.java | 89 +++++++++++++++++++ .../service/template/FluentTemplate.java | 6 +- .../invoice/CreateInvoiceLinkOperations.java | 26 ++++++ .../operations/invoice/InvoiceOperations.java | 9 ++ .../invoice/SendInvoiceOperations.java | 35 ++++++++ .../pin/PinChatMessageOperations.java | 14 +++ .../operations/pin/PinMessageOperations.java | 9 ++ .../pin/UnpinAllChatMessagesOperations.java | 13 +++ .../pin/UnpinChatMessageOperations.java | 14 +++ 9 files changed, 214 insertions(+), 1 deletion(-) create mode 100644 fluent-core/src/main/java/org/khasanof/service/template/operations/invoice/CreateInvoiceLinkOperations.java create mode 100644 fluent-core/src/main/java/org/khasanof/service/template/operations/invoice/InvoiceOperations.java create mode 100644 fluent-core/src/main/java/org/khasanof/service/template/operations/invoice/SendInvoiceOperations.java create mode 100644 fluent-core/src/main/java/org/khasanof/service/template/operations/pin/PinChatMessageOperations.java create mode 100644 fluent-core/src/main/java/org/khasanof/service/template/operations/pin/PinMessageOperations.java create mode 100644 fluent-core/src/main/java/org/khasanof/service/template/operations/pin/UnpinAllChatMessagesOperations.java create mode 100644 fluent-core/src/main/java/org/khasanof/service/template/operations/pin/UnpinChatMessageOperations.java diff --git a/fluent-core/src/main/java/org/khasanof/service/template/DefaultFluentTemplate.java b/fluent-core/src/main/java/org/khasanof/service/template/DefaultFluentTemplate.java index 42bca3b..3894315 100644 --- a/fluent-core/src/main/java/org/khasanof/service/template/DefaultFluentTemplate.java +++ b/fluent-core/src/main/java/org/khasanof/service/template/DefaultFluentTemplate.java @@ -11,6 +11,9 @@ import org.telegram.telegrambots.meta.api.methods.ForwardMessage; import org.telegram.telegrambots.meta.api.methods.botapimethods.BotApiMethodBoolean; import org.telegram.telegrambots.meta.api.methods.botapimethods.BotApiMethodMessage; +import org.telegram.telegrambots.meta.api.methods.pinnedmessages.PinChatMessage; +import org.telegram.telegrambots.meta.api.methods.pinnedmessages.UnpinAllChatMessages; +import org.telegram.telegrambots.meta.api.methods.pinnedmessages.UnpinChatMessage; import org.telegram.telegrambots.meta.api.methods.send.*; import org.telegram.telegrambots.meta.api.objects.InputFile; import org.telegram.telegrambots.meta.api.objects.Message; @@ -2188,6 +2191,68 @@ public List sendMediaGroup(SendMediaGroup mediaGroup) { return tryExecuteSendMediaGroup(mediaGroup); } + @Override + public Boolean pinChatMessage(Long chatId, Integer messageId) { + return tryPinChatMessage(pinChatMessageBuilder(chatId, messageId, null)); + } + + @Override + public Boolean pinChatMessage(Long chatId, Integer messageId, Boolean disableNotification) { + return tryPinChatMessage(pinChatMessageBuilder(chatId, messageId, disableNotification)); + } + + @Override + public Boolean pinChatMessage(PinChatMessage pinChatMessage) { + notNull(pinChatMessage, "pinChatMessage param must not be null!"); + pinChatMessage.setChatId(getChatId(Long.valueOf(pinChatMessage.getChatId()))); + return tryPinChatMessage(pinChatMessage); + } + + @Override + public Boolean unpinAllChatMessages(Long chatId) { + return tryUnpinAllChatMessages(unpinAllChatMessageBuilder(chatId)); + } + + @Override + public Boolean unpinAllChatMessages(UnpinAllChatMessages unpinAllChatMessages) { + notNull(unpinAllChatMessages, "pinAllChatMessage param must not be null!"); + unpinAllChatMessages.setChatId(getChatId(Long.valueOf(unpinAllChatMessages.getChatId()))); + return tryPinChatMessage(unpinAllChatMessages); + } + + @Override + public Boolean unpinChatMessage(Long chatId, Integer messageId) { + return tryUnpinChatMessage(unpinChatMessageBuilder(chatId, messageId)); + } + + @Override + public Boolean unpinChatMessage(UnpinChatMessage unpinChatMessage) { + notNull(unpinChatMessage, "unpinChatMessage param must not be null!"); + unpinChatMessage.setChatId(getChatId(Long.valueOf(unpinChatMessage.getChatId()))); + return tryPinChatMessage(unpinChatMessage); + } + + protected PinChatMessage pinChatMessageBuilder(Long chatId, Integer messageId, Boolean disableNotification) { + return PinChatMessage.builder() + .chatId(chatId) + .messageId(messageId) + .disableNotification(disableNotification) + .build(); + } + + protected UnpinChatMessage unpinChatMessageBuilder(Long chatId, Integer messageId) { + return UnpinChatMessage.builder() + .chatId(chatId) + .messageId(messageId) + .build(); + } + + protected UnpinAllChatMessages unpinAllChatMessageBuilder(Long chatId) { + return UnpinAllChatMessages.builder() + .chatId(chatId) + .build(); + } + protected SendMediaGroup sendMediaGroupBuilder(List medias, Long chatId, Integer replyMessageId, Boolean disableNotification) { return SendMediaGroup.builder() .medias(medias) @@ -2413,6 +2478,30 @@ protected List tryExecuteSendMediaGroup(SendMediaGroup mediaGroup) { } } + protected Boolean tryUnpinChatMessage(BotApiMethodBoolean apiMethodBoolean) { + try { + return getInstance().execute(apiMethodBoolean); + } catch (TelegramApiException e) { + throw new RuntimeException(e); + } + } + + protected Boolean tryPinChatMessage(BotApiMethodBoolean apiMethodBoolean) { + try { + return getInstance().execute(apiMethodBoolean); + } catch (TelegramApiException e) { + throw new RuntimeException(e); + } + } + + protected Boolean tryUnpinAllChatMessages(BotApiMethodBoolean apiMethodBoolean) { + try { + return getInstance().execute(apiMethodBoolean); + } catch (TelegramApiException e) { + throw new RuntimeException(e); + } + } + protected Message tryExecuteBotMethod(BotApiMethodMessage message) { try { return getInstance().execute(message); diff --git a/fluent-core/src/main/java/org/khasanof/service/template/FluentTemplate.java b/fluent-core/src/main/java/org/khasanof/service/template/FluentTemplate.java index e6f8f15..7f658da 100644 --- a/fluent-core/src/main/java/org/khasanof/service/template/FluentTemplate.java +++ b/fluent-core/src/main/java/org/khasanof/service/template/FluentTemplate.java @@ -2,13 +2,17 @@ import org.khasanof.service.template.operations.ForwardMessageOperations; import org.khasanof.service.template.operations.SendMessageOperations; +import org.khasanof.service.template.operations.invoice.InvoiceOperations; +import org.khasanof.service.template.operations.pin.PinMessageOperations; import org.khasanof.service.template.operations.query.AnswerCallbackQueryOperations; import org.khasanof.service.template.operations.query.AnswerQueriesOperations; +import javax.ws.rs.sse.InboundSseEvent; + /** * @author Nurislom * @see org.khasanof.service.template * @since 1/23/2024 9:23 PM */ -public interface FluentTemplate extends SendMessageOperations, AnswerQueriesOperations, ForwardMessageOperations { +public interface FluentTemplate extends SendMessageOperations, AnswerQueriesOperations, ForwardMessageOperations, PinMessageOperations/*, InvoiceOperations*/ { } diff --git a/fluent-core/src/main/java/org/khasanof/service/template/operations/invoice/CreateInvoiceLinkOperations.java b/fluent-core/src/main/java/org/khasanof/service/template/operations/invoice/CreateInvoiceLinkOperations.java new file mode 100644 index 0000000..e4738f7 --- /dev/null +++ b/fluent-core/src/main/java/org/khasanof/service/template/operations/invoice/CreateInvoiceLinkOperations.java @@ -0,0 +1,26 @@ +package org.khasanof.service.template.operations.invoice; + +import org.telegram.telegrambots.meta.api.methods.invoices.CreateInvoiceLink; +import org.telegram.telegrambots.meta.api.objects.payments.LabeledPrice; + +import java.util.List; + +/** + * @author Rakh1sta + * @see org.khasanof.service.template.operations.query + * @since 4/03/2024 1:35 AM + */ +public interface CreateInvoiceLinkOperations { + String createInvoiceLink(String title); + String createInvoiceLink(String title,String description);; + String createInvoiceLink(String title,String description, String payload); + String createInvoiceLink(String title,String description, String payload,String currency); + String createInvoiceLink(String title, List prices); + String createInvoiceLink(String title,String description, List prices); + String createInvoiceLink(String title, List prices,String payload); + String createInvoiceLink(String title,String payload,String currency, List prices); + + + + String createInvoiceLink(CreateInvoiceLink createInvoiceLink); +} diff --git a/fluent-core/src/main/java/org/khasanof/service/template/operations/invoice/InvoiceOperations.java b/fluent-core/src/main/java/org/khasanof/service/template/operations/invoice/InvoiceOperations.java new file mode 100644 index 0000000..aa980ac --- /dev/null +++ b/fluent-core/src/main/java/org/khasanof/service/template/operations/invoice/InvoiceOperations.java @@ -0,0 +1,9 @@ +package org.khasanof.service.template.operations.invoice; + +/** + * @author Rakh1sta + * @see org.khasanof.service.template.operations.query + * @since 4/03/2024 1:35 AM + */ +public interface InvoiceOperations extends SendInvoiceOperations, CreateInvoiceLinkOperations{ +} diff --git a/fluent-core/src/main/java/org/khasanof/service/template/operations/invoice/SendInvoiceOperations.java b/fluent-core/src/main/java/org/khasanof/service/template/operations/invoice/SendInvoiceOperations.java new file mode 100644 index 0000000..01a6e59 --- /dev/null +++ b/fluent-core/src/main/java/org/khasanof/service/template/operations/invoice/SendInvoiceOperations.java @@ -0,0 +1,35 @@ +package org.khasanof.service.template.operations.invoice; + +import javassist.runtime.Desc; +import org.telegram.telegrambots.meta.api.methods.invoices.SendInvoice; +import org.telegram.telegrambots.meta.api.objects.Message; + +/** + * @author Rakh1sta + * @see org.khasanof.service.template.operations + * @since 2/16/2024 4:13 PM + */ +public interface SendInvoiceOperations { + + Message sendInvoice(String title); + + Message sendInvoice(String title, String description); + + Message sendInvoice(String title, Long chatId); + + Message sendInvoice(String title, String description, Long chatId); + + Message sendInvoice(String title, String description, String payload); + + Message sendInvoice(String title, String description, Long chatIt, String payload); + + Message sendInvoice(String title, Long chatIt, String payload); + + Message sendInvoice(String title, Long chatIt, String payload, String currency); + Message sendInvoice(String title, String description, Long chatIt, String payload, String currency); + + + Message sendInvoice(SendInvoice sendInvoice); +} + + diff --git a/fluent-core/src/main/java/org/khasanof/service/template/operations/pin/PinChatMessageOperations.java b/fluent-core/src/main/java/org/khasanof/service/template/operations/pin/PinChatMessageOperations.java new file mode 100644 index 0000000..1ee36a4 --- /dev/null +++ b/fluent-core/src/main/java/org/khasanof/service/template/operations/pin/PinChatMessageOperations.java @@ -0,0 +1,14 @@ +package org.khasanof.service.template.operations.pin; + +import org.telegram.telegrambots.meta.api.methods.pinnedmessages.PinChatMessage; + +/** + * @author Rakh1sta + * @see org.khasanof.service.template.operations.query + * @since 4/03/2024 1:35 AM + */ +public interface PinChatMessageOperations { + Boolean pinChatMessage(Long chatId, Integer messageId); + Boolean pinChatMessage(Long chatId, Integer messageId, Boolean disableNotification); + Boolean pinChatMessage(PinChatMessage pinChatMessage); +} diff --git a/fluent-core/src/main/java/org/khasanof/service/template/operations/pin/PinMessageOperations.java b/fluent-core/src/main/java/org/khasanof/service/template/operations/pin/PinMessageOperations.java new file mode 100644 index 0000000..416c165 --- /dev/null +++ b/fluent-core/src/main/java/org/khasanof/service/template/operations/pin/PinMessageOperations.java @@ -0,0 +1,9 @@ +package org.khasanof.service.template.operations.pin; + +/** + * @author Rakh1sta + * @see org.khasanof.service.template.operations.query + * @since 4/03/2024 1:35 AM + */ +public interface PinMessageOperations extends PinChatMessageOperations,UnpinAllChatMessagesOperations,UnpinChatMessageOperations{ +} diff --git a/fluent-core/src/main/java/org/khasanof/service/template/operations/pin/UnpinAllChatMessagesOperations.java b/fluent-core/src/main/java/org/khasanof/service/template/operations/pin/UnpinAllChatMessagesOperations.java new file mode 100644 index 0000000..7d565a5 --- /dev/null +++ b/fluent-core/src/main/java/org/khasanof/service/template/operations/pin/UnpinAllChatMessagesOperations.java @@ -0,0 +1,13 @@ +package org.khasanof.service.template.operations.pin; + +import org.telegram.telegrambots.meta.api.methods.pinnedmessages.UnpinAllChatMessages; + +/** + * @author Rakh1sta + * @see org.khasanof.service.template.operations.query + * @since 4/03/2024 1:35 AM + */ +public interface UnpinAllChatMessagesOperations { + Boolean unpinAllChatMessages(Long chatId); + Boolean unpinAllChatMessages(UnpinAllChatMessages unpinAllChatMessages); +} diff --git a/fluent-core/src/main/java/org/khasanof/service/template/operations/pin/UnpinChatMessageOperations.java b/fluent-core/src/main/java/org/khasanof/service/template/operations/pin/UnpinChatMessageOperations.java new file mode 100644 index 0000000..12e01b9 --- /dev/null +++ b/fluent-core/src/main/java/org/khasanof/service/template/operations/pin/UnpinChatMessageOperations.java @@ -0,0 +1,14 @@ +package org.khasanof.service.template.operations.pin; + +import org.telegram.telegrambots.meta.api.methods.pinnedmessages.UnpinChatMessage; + +/** + * @author Rakh1sta + * @see org.khasanof.service.template.operations.query + * @since 4/03/2024 1:35 AM + */ +public interface UnpinChatMessageOperations { + Boolean unpinChatMessage(Long chatId, Integer messageId); + + Boolean unpinChatMessage(UnpinChatMessage unpinChatMessage); +}