Externalize interface for MediaSendingMethods and add getMethod to PartialBotApiMethod
This commit is contained in:
parent
fd3118b9b2
commit
b3099f58cf
@ -2,7 +2,6 @@ package org.telegram.telegrambots.meta.api.methods;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||
import com.fasterxml.jackson.annotation.JsonInclude;
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
@ -17,10 +16,4 @@ import java.io.Serializable;
|
||||
public abstract class BotApiMethod<T extends Serializable> extends PartialBotApiMethod<T> {
|
||||
protected static final String METHOD_FIELD = "method";
|
||||
|
||||
/**
|
||||
* Getter for method path (that is the same as method name)
|
||||
* @return Method path
|
||||
*/
|
||||
@JsonProperty(METHOD_FIELD)
|
||||
public abstract String getMethod();
|
||||
}
|
||||
|
@ -1,6 +1,7 @@
|
||||
package org.telegram.telegrambots.meta.api.methods;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonIgnore;
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import com.fasterxml.jackson.databind.JavaType;
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import com.fasterxml.jackson.databind.type.CollectionType;
|
||||
@ -56,4 +57,11 @@ public abstract class PartialBotApiMethod<T extends Serializable> implements Val
|
||||
throw new TelegramApiRequestException("Unable to deserialize response", e);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Getter for method path (that is the same as method name)
|
||||
* @return Method path
|
||||
*/
|
||||
@JsonProperty(BotApiMethod.METHOD_FIELD)
|
||||
public abstract String getMethod();
|
||||
}
|
||||
|
@ -46,6 +46,11 @@ public class SetChatPhoto extends PartialBotApiMethod<Boolean> {
|
||||
this.chatId = chatId.toString();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getMethod() {
|
||||
return PATH;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Boolean deserializeResponse(String answer) throws TelegramApiRequestException {
|
||||
return deserializeResponse(answer, Boolean.class);
|
||||
|
@ -11,7 +11,6 @@ import lombok.Setter;
|
||||
import lombok.Singular;
|
||||
import lombok.ToString;
|
||||
import lombok.experimental.Tolerate;
|
||||
import org.telegram.telegrambots.meta.api.methods.PartialBotApiMethod;
|
||||
import org.telegram.telegrambots.meta.api.objects.InputFile;
|
||||
import org.telegram.telegrambots.meta.api.objects.Message;
|
||||
import org.telegram.telegrambots.meta.api.objects.MessageEntity;
|
||||
@ -37,7 +36,7 @@ import java.util.List;
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@Builder
|
||||
public class SendAnimation extends PartialBotApiMethod<Message> {
|
||||
public class SendAnimation extends SendMediaBotMethod<Message> {
|
||||
public static final String PATH = "sendAnimation";
|
||||
|
||||
public static final String CHATID_FIELD = "chat_id";
|
||||
@ -58,6 +57,8 @@ public class SendAnimation extends PartialBotApiMethod<Message> {
|
||||
|
||||
@NonNull
|
||||
private String chatId; ///< Unique identifier for the chat to send the message to (Or username for channels)
|
||||
private Integer messageThreadId;
|
||||
|
||||
/**
|
||||
* Animation to send. Pass a file_id as String to send an animation that exists on the
|
||||
* Telegram servers (recommended), pass an HTTP URL as a String for Telegram to get an animation
|
||||
@ -67,7 +68,6 @@ public class SendAnimation extends PartialBotApiMethod<Message> {
|
||||
* Unique identifier for the target message thread (topic) of the forum;
|
||||
* for forum supergroups only
|
||||
*/
|
||||
private Integer messageThreadId;
|
||||
@NonNull
|
||||
private InputFile animation;
|
||||
private Integer duration; ///< Optional. Duration of sent animation in seconds
|
||||
@ -130,6 +130,21 @@ public class SendAnimation extends PartialBotApiMethod<Message> {
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getMethod() {
|
||||
return PATH;
|
||||
}
|
||||
|
||||
@Override
|
||||
public InputFile getFile() {
|
||||
return animation;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getFileField() {
|
||||
return ANIMATION_FIELD;
|
||||
}
|
||||
|
||||
public static class SendAnimationBuilder {
|
||||
|
||||
@Tolerate
|
||||
|
@ -11,7 +11,6 @@ import lombok.Setter;
|
||||
import lombok.Singular;
|
||||
import lombok.ToString;
|
||||
import lombok.experimental.Tolerate;
|
||||
import org.telegram.telegrambots.meta.api.methods.PartialBotApiMethod;
|
||||
import org.telegram.telegrambots.meta.api.objects.InputFile;
|
||||
import org.telegram.telegrambots.meta.api.objects.Message;
|
||||
import org.telegram.telegrambots.meta.api.objects.MessageEntity;
|
||||
@ -38,7 +37,7 @@ import java.util.List;
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@Builder
|
||||
public class SendAudio extends PartialBotApiMethod<Message> {
|
||||
public class SendAudio extends SendMediaBotMethod<Message> {
|
||||
public static final String PATH = "sendaudio";
|
||||
|
||||
public static final String DURATION_FIELD = "duration";
|
||||
@ -127,6 +126,21 @@ public class SendAudio extends PartialBotApiMethod<Message> {
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getMethod() {
|
||||
return PATH;
|
||||
}
|
||||
|
||||
@Override
|
||||
public InputFile getFile() {
|
||||
return audio;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getFileField() {
|
||||
return AUDIO_FIELD;
|
||||
}
|
||||
|
||||
public static class SendAudioBuilder {
|
||||
|
||||
@Tolerate
|
||||
|
@ -11,7 +11,6 @@ import lombok.Setter;
|
||||
import lombok.Singular;
|
||||
import lombok.ToString;
|
||||
import lombok.experimental.Tolerate;
|
||||
import org.telegram.telegrambots.meta.api.methods.PartialBotApiMethod;
|
||||
import org.telegram.telegrambots.meta.api.objects.InputFile;
|
||||
import org.telegram.telegrambots.meta.api.objects.Message;
|
||||
import org.telegram.telegrambots.meta.api.objects.MessageEntity;
|
||||
@ -34,7 +33,7 @@ import java.util.List;
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@Builder
|
||||
public class SendDocument extends PartialBotApiMethod<Message> {
|
||||
public class SendDocument extends SendMediaBotMethod<Message> {
|
||||
public static final String PATH = "senddocument";
|
||||
|
||||
public static final String CHATID_FIELD = "chat_id";
|
||||
@ -97,6 +96,7 @@ public class SendDocument extends PartialBotApiMethod<Message> {
|
||||
public Message deserializeResponse(String answer) throws TelegramApiRequestException {
|
||||
return deserializeResponse(answer, Message.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void validate() throws TelegramApiValidationException {
|
||||
if (chatId.isEmpty()) {
|
||||
@ -118,6 +118,21 @@ public class SendDocument extends PartialBotApiMethod<Message> {
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public InputFile getFile() {
|
||||
return document;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getFileField() {
|
||||
return DOCUMENT_FIELD;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getMethod() {
|
||||
return PATH;
|
||||
}
|
||||
|
||||
public static class SendDocumentBuilder {
|
||||
|
||||
@Tolerate
|
||||
|
@ -0,0 +1,24 @@
|
||||
package org.telegram.telegrambots.meta.api.methods.send;
|
||||
|
||||
import org.telegram.telegrambots.meta.api.methods.PartialBotApiMethod;
|
||||
import org.telegram.telegrambots.meta.api.objects.InputFile;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
public abstract class SendMediaBotMethod<T extends Serializable> extends PartialBotApiMethod<T> {
|
||||
public static String CHATID_FIELD = "chat_id";
|
||||
public static String MESSAGETHREADID_FIELD = "message_thread_id";
|
||||
public static String REPLYTOMESSAGEID_FIELD = "reply_to_message_id";
|
||||
public static String DISABLENOTIFICATION_FIELD = "disable_notification";
|
||||
public static String PROTECTCONTENT_FIELD = "protect_content";
|
||||
public static String ALLOWSENDINGWITHOUTREPLY_FIELD = "allow_sending_without_reply";
|
||||
|
||||
public abstract String getChatId();
|
||||
public abstract Integer getMessageThreadId();
|
||||
public abstract Integer getReplyToMessageId();
|
||||
public abstract Boolean getDisableNotification();
|
||||
public abstract Boolean getAllowSendingWithoutReply();
|
||||
public abstract Boolean getProtectContent();
|
||||
public abstract InputFile getFile();
|
||||
public abstract String getFileField();
|
||||
}
|
@ -115,6 +115,11 @@ public class SendMediaGroup extends PartialBotApiMethod<ArrayList<Message>> {
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getMethod() {
|
||||
return PATH;
|
||||
}
|
||||
|
||||
public static class SendMediaGroupBuilder {
|
||||
|
||||
@Tolerate
|
||||
|
@ -11,7 +11,6 @@ import lombok.Setter;
|
||||
import lombok.Singular;
|
||||
import lombok.ToString;
|
||||
import lombok.experimental.Tolerate;
|
||||
import org.telegram.telegrambots.meta.api.methods.PartialBotApiMethod;
|
||||
import org.telegram.telegrambots.meta.api.objects.InputFile;
|
||||
import org.telegram.telegrambots.meta.api.objects.Message;
|
||||
import org.telegram.telegrambots.meta.api.objects.MessageEntity;
|
||||
@ -35,7 +34,7 @@ import java.util.Objects;
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@Builder
|
||||
public class SendPhoto extends PartialBotApiMethod<Message> {
|
||||
public class SendPhoto extends SendMediaBotMethod<Message> {
|
||||
public static final String PATH = "sendphoto";
|
||||
|
||||
public static final String CHATID_FIELD = "chat_id";
|
||||
@ -108,8 +107,22 @@ public class SendPhoto extends PartialBotApiMethod<Message> {
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public InputFile getFile() {
|
||||
return photo;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getFileField() {
|
||||
return PHOTO_FIELD;
|
||||
}
|
||||
@Override
|
||||
public String getMethod() {
|
||||
return PATH;
|
||||
}
|
||||
public static class SendPhotoBuilder {
|
||||
|
||||
|
||||
@Tolerate
|
||||
public SendPhotoBuilder chatId(@NonNull Long chatId) {
|
||||
this.chatId = chatId.toString();
|
||||
|
@ -10,7 +10,6 @@ import lombok.RequiredArgsConstructor;
|
||||
import lombok.Setter;
|
||||
import lombok.ToString;
|
||||
import lombok.experimental.Tolerate;
|
||||
import org.telegram.telegrambots.meta.api.methods.PartialBotApiMethod;
|
||||
import org.telegram.telegrambots.meta.api.objects.InputFile;
|
||||
import org.telegram.telegrambots.meta.api.objects.Message;
|
||||
import org.telegram.telegrambots.meta.api.objects.replykeyboard.ReplyKeyboard;
|
||||
@ -31,7 +30,7 @@ import org.telegram.telegrambots.meta.exceptions.TelegramApiValidationException;
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@Builder
|
||||
public class SendSticker extends PartialBotApiMethod<Message> {
|
||||
public class SendSticker extends SendMediaBotMethod<Message> {
|
||||
public static final String PATH = "sendsticker";
|
||||
|
||||
public static final String CHATID_FIELD = "chat_id";
|
||||
@ -93,6 +92,22 @@ public class SendSticker extends PartialBotApiMethod<Message> {
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getMethod() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public InputFile getFile() {
|
||||
return sticker;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getFileField() {
|
||||
return STICKER_FIELD;
|
||||
}
|
||||
|
||||
|
||||
public static class SendStickerBuilder {
|
||||
|
||||
@Tolerate
|
||||
|
@ -11,7 +11,6 @@ import lombok.Setter;
|
||||
import lombok.Singular;
|
||||
import lombok.ToString;
|
||||
import lombok.experimental.Tolerate;
|
||||
import org.telegram.telegrambots.meta.api.methods.PartialBotApiMethod;
|
||||
import org.telegram.telegrambots.meta.api.objects.InputFile;
|
||||
import org.telegram.telegrambots.meta.api.objects.Message;
|
||||
import org.telegram.telegrambots.meta.api.objects.MessageEntity;
|
||||
@ -35,7 +34,7 @@ import java.util.List;
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@Builder
|
||||
public class SendVideo extends PartialBotApiMethod<Message> {
|
||||
public class SendVideo extends SendMediaBotMethod<Message> {
|
||||
public static final String PATH = "sendvideo";
|
||||
|
||||
public static final String CHATID_FIELD = "chat_id";
|
||||
@ -125,6 +124,21 @@ public class SendVideo extends PartialBotApiMethod<Message> {
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public InputFile getFile() {
|
||||
return video;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getFileField() {
|
||||
return VIDEO_FIELD;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getMethod() {
|
||||
return PATH;
|
||||
}
|
||||
|
||||
public static class SendVideoBuilder {
|
||||
|
||||
@Tolerate
|
||||
|
@ -10,7 +10,6 @@ import lombok.RequiredArgsConstructor;
|
||||
import lombok.Setter;
|
||||
import lombok.ToString;
|
||||
import lombok.experimental.Tolerate;
|
||||
import org.telegram.telegrambots.meta.api.methods.PartialBotApiMethod;
|
||||
import org.telegram.telegrambots.meta.api.objects.InputFile;
|
||||
import org.telegram.telegrambots.meta.api.objects.Message;
|
||||
import org.telegram.telegrambots.meta.api.objects.replykeyboard.ReplyKeyboard;
|
||||
@ -32,7 +31,7 @@ import org.telegram.telegrambots.meta.exceptions.TelegramApiValidationException;
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@Builder
|
||||
public class SendVideoNote extends PartialBotApiMethod<Message> {
|
||||
public class SendVideoNote extends SendMediaBotMethod<Message> {
|
||||
public static final String PATH = "sendvideonote";
|
||||
|
||||
public static final String CHATID_FIELD = "chat_id";
|
||||
@ -106,6 +105,21 @@ public class SendVideoNote extends PartialBotApiMethod<Message> {
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getMethod() {
|
||||
return PATH;
|
||||
}
|
||||
|
||||
@Override
|
||||
public InputFile getFile() {
|
||||
return videoNote;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getFileField() {
|
||||
return VIDEONOTE_FIELD;
|
||||
}
|
||||
|
||||
public static class SendVideoNoteBuilder {
|
||||
|
||||
@Tolerate
|
||||
|
@ -11,7 +11,6 @@ import lombok.Setter;
|
||||
import lombok.Singular;
|
||||
import lombok.ToString;
|
||||
import lombok.experimental.Tolerate;
|
||||
import org.telegram.telegrambots.meta.api.methods.PartialBotApiMethod;
|
||||
import org.telegram.telegrambots.meta.api.objects.InputFile;
|
||||
import org.telegram.telegrambots.meta.api.objects.Message;
|
||||
import org.telegram.telegrambots.meta.api.objects.MessageEntity;
|
||||
@ -36,7 +35,7 @@ import java.util.List;
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@Builder
|
||||
public class SendVoice extends PartialBotApiMethod<Message> {
|
||||
public class SendVoice extends SendMediaBotMethod<Message> {
|
||||
public static final String PATH = "sendvoice";
|
||||
|
||||
public static final String CHATID_FIELD = "chat_id";
|
||||
@ -106,6 +105,21 @@ public class SendVoice extends PartialBotApiMethod<Message> {
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getMethod() {
|
||||
return PATH;
|
||||
}
|
||||
|
||||
@Override
|
||||
public InputFile getFile() {
|
||||
return voice;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getFileField() {
|
||||
return VOICE_FIELD;
|
||||
}
|
||||
|
||||
public static class SendVoiceBuilder {
|
||||
|
||||
@Tolerate
|
||||
|
@ -76,6 +76,11 @@ public class AddStickerToSet extends PartialBotApiMethod<Boolean> {
|
||||
return deserializeResponse(answer, Boolean.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getMethod() {
|
||||
return PATH;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void validate() throws TelegramApiValidationException {
|
||||
if (userId <= 0) {
|
||||
|
@ -10,7 +10,6 @@ import lombok.RequiredArgsConstructor;
|
||||
import lombok.Setter;
|
||||
import lombok.ToString;
|
||||
import lombok.experimental.Tolerate;
|
||||
import org.telegram.telegrambots.meta.api.methods.CopyMessage;
|
||||
import org.telegram.telegrambots.meta.api.methods.PartialBotApiMethod;
|
||||
import org.telegram.telegrambots.meta.api.objects.InputFile;
|
||||
import org.telegram.telegrambots.meta.api.objects.stickers.MaskPosition;
|
||||
@ -18,7 +17,6 @@ import org.telegram.telegrambots.meta.exceptions.TelegramApiRequestException;
|
||||
import org.telegram.telegrambots.meta.exceptions.TelegramApiValidationException;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author Ruben Bermudez
|
||||
@ -124,6 +122,11 @@ public class CreateNewStickerSet extends PartialBotApiMethod<Boolean> {
|
||||
return "mask".equals(stickerType);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getMethod() {
|
||||
return PATH;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Boolean deserializeResponse(String answer) throws TelegramApiRequestException {
|
||||
return deserializeResponse(answer, Boolean.class);
|
||||
|
@ -42,6 +42,11 @@ public class UploadStickerFile extends PartialBotApiMethod<File> {
|
||||
@NonNull
|
||||
private InputFile pngSticker; ///< New sticker file
|
||||
|
||||
@Override
|
||||
public String getMethod() {
|
||||
return PATH;
|
||||
}
|
||||
|
||||
@Override
|
||||
public File deserializeResponse(String answer) throws TelegramApiRequestException {
|
||||
return deserializeResponse(answer, File.class);
|
||||
|
@ -81,6 +81,11 @@ public class EditMessageMedia extends PartialBotApiMethod<Serializable> {
|
||||
this.chatId = chatId == null ? null : chatId.toString();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getMethod() {
|
||||
return PATH;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Serializable deserializeResponse(String answer) throws TelegramApiRequestException {
|
||||
try {
|
||||
|
Loading…
Reference in New Issue
Block a user