diff --git a/jtelegrambotapi-core/pom.xml b/jtelegrambotapi-core/pom.xml index ddb939bc2..2abf92482 100644 --- a/jtelegrambotapi-core/pom.xml +++ b/jtelegrambotapi-core/pom.xml @@ -28,6 +28,46 @@ com.squareup.okhttp3 okhttp + + + + + org.mockito + mockito-core + + + org.junit.jupiter + junit-jupiter-api + + + org.junit.platform + junit-platform-surefire-provider + + + org.junit.jupiter + junit-jupiter-engine + + + + + org.apache.maven.plugins + maven-surefire-plugin + + + org.junit.platform + junit-platform-surefire-provider + ${dependency.junit-platform-surefire-provider.version} + + + org.junit.jupiter + junit-jupiter-engine + ${dependency.junit.version} + + + + + + diff --git a/jtelegrambotapi-core/src/main/java/com/jtelegram/api/message/Message.java b/jtelegrambotapi-core/src/main/java/com/jtelegram/api/message/Message.java index 633e91636..ddebe8cc6 100644 --- a/jtelegrambotapi-core/src/main/java/com/jtelegram/api/message/Message.java +++ b/jtelegrambotapi-core/src/main/java/com/jtelegram/api/message/Message.java @@ -1,13 +1,19 @@ package com.jtelegram.api.message; -import com.google.gson.*; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; import com.jtelegram.api.chat.Chat; +import com.jtelegram.api.requests.message.DeleteMessage; +import com.jtelegram.api.requests.message.ForwardMessage; +import com.jtelegram.api.requests.message.edit.EditMessageReplyMarkup; import com.jtelegram.api.user.User; +import java.lang.reflect.Type; import lombok.Getter; import lombok.ToString; -import java.lang.reflect.Type; - @Getter @ToString public abstract class Message { @@ -32,6 +38,33 @@ public User getSender() { return from; } + /** + * Creates a request builder for editing the reply markup of this message. + * + * @return the request builder + */ + public EditMessageReplyMarkup.EditMessageReplyMarkupBuilder toEditReplyMarkupRequest() { + return EditMessageReplyMarkup.forMessage(this); + } + + /** + * Creates a request builder for forwarding this message to another chat. + * + * @return the request builder + */ + public ForwardMessage.ForwardMessageBuilder toForwardRequest() { + return ForwardMessage.forMessage(this); + } + + /** + * Creates a request builder for deleting this message. + * + * @return the request builder + */ + public DeleteMessage.DeleteMessageBuilder toDeleteRequest() { + return DeleteMessage.forMessage(this); + } + public static class Deserializer implements JsonDeserializer { @Override public Message deserialize(JsonElement jsonElement, Type type, JsonDeserializationContext context) throws JsonParseException { diff --git a/jtelegrambotapi-core/src/main/java/com/jtelegram/api/message/MessageType.java b/jtelegrambotapi-core/src/main/java/com/jtelegram/api/message/MessageType.java index e8298361a..0b4dedb34 100644 --- a/jtelegrambotapi-core/src/main/java/com/jtelegram/api/message/MessageType.java +++ b/jtelegrambotapi-core/src/main/java/com/jtelegram/api/message/MessageType.java @@ -19,8 +19,8 @@ public enum MessageType { VOICE(VoiceMessage.class, VoiceMessageEvent.class), VIDEO_NOTE(VideoNoteMessage.class, VideoNoteMessageEvent.class), CONTACT(ContactMessage.class, ContactMessageEvent.class), - LOCATION(LocationMessage.class, LocationMessageEvent.class), VENUE(VenueMessage.class, VenueMessageEvent.class), + LOCATION(LocationMessage.class, LocationMessageEvent.class), INVOICE(InvoiceMessage.class, InvoiceMessageEvent.class), SUCCESSFUL_PAYMENT(SuccessfulPaymentMessage.class, SuccessfulPaymentEvent.class), diff --git a/jtelegrambotapi-core/src/main/java/com/jtelegram/api/message/impl/AudioMessage.java b/jtelegrambotapi-core/src/main/java/com/jtelegram/api/message/impl/AudioMessage.java index e47da9a13..bfd3b9013 100644 --- a/jtelegrambotapi-core/src/main/java/com/jtelegram/api/message/impl/AudioMessage.java +++ b/jtelegrambotapi-core/src/main/java/com/jtelegram/api/message/impl/AudioMessage.java @@ -2,6 +2,8 @@ import com.jtelegram.api.message.CaptionableMessage; import com.jtelegram.api.message.media.Audio; +import com.jtelegram.api.requests.message.edit.EditMessageCaption; +import com.jtelegram.api.requests.message.edit.EditMessageMedia; import lombok.Getter; import lombok.ToString; @@ -14,4 +16,22 @@ public class AudioMessage extends CaptionableMessage