Skip to content
40 changes: 40 additions & 0 deletions jtelegrambotapi-core/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,46 @@
<groupId>com.squareup.okhttp3</groupId>
<artifactId>okhttp</artifactId>
</dependency>

<!-- test dependencies -->

<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
</dependency>
<dependency>
<groupId>org.junit.platform</groupId>
<artifactId>junit-platform-surefire-provider</artifactId>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-engine</artifactId>
</dependency>
</dependencies>

<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<dependencies>
<dependency>
<groupId>org.junit.platform</groupId>
<artifactId>junit-platform-surefire-provider</artifactId>
<version>${dependency.junit-platform-surefire-provider.version}</version>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-engine</artifactId>
<version>${dependency.junit.version}</version>
</dependency>
</dependencies>
</plugin>
</plugins>
</build>

</project>
Original file line number Diff line number Diff line change
@@ -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<T> {
Expand All @@ -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<Message> {
@Override
public Message deserialize(JsonElement jsonElement, Type type, JsonDeserializationContext context) throws JsonParseException {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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),

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;

Expand All @@ -14,4 +16,22 @@ public class AudioMessage extends CaptionableMessage<Audio> {
public Audio getContent() {
return audio;
}

/**
* Creates a request builder for editing the caption of this message.
*
* @return the request builder
*/
public EditMessageCaption.EditMessageCaptionBuilder toEditCaptionRequest() {
return EditMessageCaption.forMessage(this);
}

/**
* Creates a request builder for editing the media shown in this message.
*
* @return the request builder
*/
public EditMessageMedia.EditMessageMediaBuilder toEditMediaRequest() {
return EditMessageMedia.forMessage(this);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@

import com.jtelegram.api.message.CaptionableMessage;
import com.jtelegram.api.message.media.Document;
import com.jtelegram.api.requests.message.edit.EditMessageCaption;
import com.jtelegram.api.requests.message.edit.EditMessageMedia;
import lombok.Getter;
import lombok.ToString;

Expand All @@ -14,4 +16,22 @@ public class DocumentMessage extends CaptionableMessage<Document> {
public Document getContent() {
return document;
}

/**
* Creates a request builder for editing the caption of this message.
*
* @return the request builder
*/
public EditMessageCaption.EditMessageCaptionBuilder toEditCaptionRequest() {
return EditMessageCaption.forMessage(this);
}

/**
* Creates a request builder for editing the media shown in this message.
*
* @return the request builder
*/
public EditMessageMedia.EditMessageMediaBuilder toEditMediaRequest() {
return EditMessageMedia.forMessage(this);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import com.jtelegram.api.message.Message;
import com.jtelegram.api.message.games.Game;
import com.jtelegram.api.requests.message.edit.EditTextMessage;
import lombok.Getter;
import lombok.ToString;

Expand All @@ -14,4 +15,8 @@ public class GameMessage extends Message<Game> {
public Game getContent() {
return game;
}

public EditTextMessage.EditTextMessageBuilder toEditTextRequest() {
return EditTextMessage.forMessage(this);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import com.jtelegram.api.message.Message;
import com.jtelegram.api.message.media.Location;
import com.jtelegram.api.requests.message.edit.EditMessageLiveLocation;
import lombok.Getter;
import lombok.ToString;

Expand All @@ -14,4 +15,13 @@ public class LocationMessage extends Message<Location> {
public Location getContent() {
return location;
}

/**
* Creates a request builder for editing the location represented by this message.
*
* @return the request builder
*/
public EditMessageLiveLocation.EditMessageLiveLocationBuilder toEditLiveLocationRequest() {
return EditMessageLiveLocation.forMessage(this);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@

import com.jtelegram.api.message.CaptionableMessage;
import com.jtelegram.api.message.media.PhotoSize;
import com.jtelegram.api.requests.message.edit.EditMessageCaption;
import com.jtelegram.api.requests.message.edit.EditMessageMedia;
import lombok.Getter;
import lombok.ToString;

Expand Down Expand Up @@ -35,4 +37,22 @@ public PhotoSize getHighestResolutionPhoto() {
.findFirst()
.orElse(null);
}

/**
* Creates a request builder for editing the caption of this message.
*
* @return the request builder
*/
public EditMessageCaption.EditMessageCaptionBuilder toEditCaptionRequest() {
return EditMessageCaption.forMessage(this);
}

/**
* Creates a request builder for editing the media shown in this message.
*
* @return the request builder
*/
public EditMessageMedia.EditMessageMediaBuilder toEditMediaRequest() {
return EditMessageMedia.forMessage(this);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import com.jtelegram.api.message.Message;
import com.jtelegram.api.message.entity.MessageEntity;
import com.jtelegram.api.requests.message.edit.EditTextMessage;
import lombok.Getter;
import lombok.ToString;

Expand All @@ -28,4 +29,13 @@ public List<MessageEntity> getEntities() {

return entities;
}

/**
* Creates a request builder for editing the text of this message.
*
* @return the request builder
*/
public EditTextMessage.EditTextMessageBuilder toEditTextRequest() {
return EditTextMessage.forMessage(this);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@

import com.jtelegram.api.message.CaptionableMessage;
import com.jtelegram.api.message.media.Video;
import com.jtelegram.api.requests.message.edit.EditMessageCaption;
import com.jtelegram.api.requests.message.edit.EditMessageMedia;
import lombok.Getter;
import lombok.ToString;

Expand All @@ -22,4 +24,22 @@ public class VideoMessage extends CaptionableMessage<Video> {
public Video getContent() {
return video;
}

/**
* Creates a request builder for editing the caption of this message.
*
* @return the request builder
*/
public EditMessageCaption.EditMessageCaptionBuilder toEditCaptionRequest() {
return EditMessageCaption.forMessage(this);
}

/**
* Creates a request builder for editing the media shown in this message.
*
* @return the request builder
*/
public EditMessageMedia.EditMessageMediaBuilder toEditMediaRequest() {
return EditMessageMedia.forMessage(this);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import com.jtelegram.api.message.CaptionableMessage;
import com.jtelegram.api.message.media.VideoNote;
import com.jtelegram.api.requests.message.edit.EditMessageCaption;
import lombok.Getter;
import lombok.ToString;

Expand All @@ -14,4 +15,13 @@ public class VideoNoteMessage extends CaptionableMessage<VideoNote> {
public VideoNote getContent() {
return videoNote;
}

/**
* Creates a request builder for editing the caption of this message.
*
* @return the request builder
*/
public EditMessageCaption.EditMessageCaptionBuilder toEditCaptionRequest() {
return EditMessageCaption.forMessage(this);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import com.jtelegram.api.message.CaptionableMessage;
import com.jtelegram.api.message.media.Voice;
import com.jtelegram.api.requests.message.edit.EditMessageCaption;
import lombok.Getter;
import lombok.ToString;

Expand All @@ -14,4 +15,13 @@ public class VoiceMessage extends CaptionableMessage<Voice> {
public Voice getContent() {
return voice;
}

/**
* Creates a request builder for editing the caption of this message.
*
* @return the request builder
*/
public EditMessageCaption.EditMessageCaptionBuilder toEditCaptionRequest() {
return EditMessageCaption.forMessage(this);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -7,11 +7,13 @@
import com.jtelegram.api.ex.TelegramException;
import lombok.AccessLevel;
import lombok.AllArgsConstructor;
import lombok.EqualsAndHashCode;
import okhttp3.Response;

import java.io.IOException;
import java.util.function.Consumer;

@EqualsAndHashCode
@AllArgsConstructor(access = AccessLevel.PROTECTED)
public abstract class AbstractTelegramRequest implements TelegramRequest {
// utility field
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import com.google.gson.JsonElement;
import com.jtelegram.api.ex.TelegramException;
import lombok.EqualsAndHashCode;
import okhttp3.Response;

import java.io.IOException;
Expand All @@ -11,6 +12,7 @@
* A generic telegram request class which
* has a response beyond "OK"
*/
@EqualsAndHashCode(callSuper = true)
public abstract class QueryTelegramRequest<T> extends AbstractTelegramRequest {
private transient final Consumer<T> callback;
private transient final Class<T> callbackType;
Expand Down
Loading