Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -2188,6 +2191,68 @@ public List<Message> 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<InputMedia> medias, Long chatId, Integer replyMessageId, Boolean disableNotification) {
return SendMediaGroup.builder()
.medias(medias)
Expand Down Expand Up @@ -2413,6 +2478,30 @@ protected List<Message> 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);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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*/ {
}
Original file line number Diff line number Diff line change
@@ -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<LabeledPrice> prices);
String createInvoiceLink(String title,String description, List<LabeledPrice> prices);
String createInvoiceLink(String title, List<LabeledPrice> prices,String payload);
String createInvoiceLink(String title,String payload,String currency, List<LabeledPrice> prices);



String createInvoiceLink(CreateInvoiceLink createInvoiceLink);
}
Original file line number Diff line number Diff line change
@@ -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{
}
Original file line number Diff line number Diff line change
@@ -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);
}


Original file line number Diff line number Diff line change
@@ -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);
}
Original file line number Diff line number Diff line change
@@ -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{
}
Original file line number Diff line number Diff line change
@@ -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);
}
Original file line number Diff line number Diff line change
@@ -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);
}