diff --git a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/interfaces/Validable.java b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/interfaces/Validable.java index 81a93070..6480c4fd 100644 --- a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/interfaces/Validable.java +++ b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/interfaces/Validable.java @@ -30,5 +30,7 @@ public interface Validable { * Validates that mandatory fields are filled and optional objects * @throws TelegramApiValidationException If any mandatory field is empty */ - void validate() throws TelegramApiValidationException; + default void validate() throws TelegramApiValidationException { + + } } diff --git a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/AnswerCallbackQuery.java b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/AnswerCallbackQuery.java index 6ce34521..00b345e8 100644 --- a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/AnswerCallbackQuery.java +++ b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/AnswerCallbackQuery.java @@ -1,7 +1,6 @@ package org.telegram.telegrambots.meta.api.methods; import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.core.type.TypeReference; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.EqualsAndHashCode; @@ -11,11 +10,6 @@ import lombok.NonNull; import lombok.RequiredArgsConstructor; import lombok.Setter; import lombok.ToString; -import org.telegram.telegrambots.meta.api.objects.ApiResponse; -import org.telegram.telegrambots.meta.exceptions.TelegramApiRequestException; -import org.telegram.telegrambots.meta.exceptions.TelegramApiValidationException; - -import java.io.IOException; /** * @author Ruben Bermudez @@ -36,7 +30,7 @@ import java.io.IOException; @RequiredArgsConstructor @AllArgsConstructor @Builder -public class AnswerCallbackQuery extends BotApiMethod { +public class AnswerCallbackQuery extends BotApiMethodBoolean{ public static final String PATH = "answercallbackquery"; private static final String CALLBACKQUERYID_FIELD = "callback_query_id"; @@ -73,26 +67,4 @@ public class AnswerCallbackQuery extends BotApiMethod { public String getMethod() { return PATH; } - - @Override - public Boolean deserializeResponse(String answer) throws TelegramApiRequestException { - try { - ApiResponse result = OBJECT_MAPPER.readValue(answer, - new TypeReference>(){}); - if (result.getOk()) { - return result.getResult(); - } else { - throw new TelegramApiRequestException("Error answering callback query", result); - } - } catch (IOException e) { - throw new TelegramApiRequestException("Unable to deserialize response", e); - } - } - - @Override - public void validate() throws TelegramApiValidationException { - if (callbackQueryId == null) { - throw new TelegramApiValidationException("CallbackQueryId can't be null", this); - } - } } diff --git a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/AnswerInlineQuery.java b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/AnswerInlineQuery.java index 649add7e..8db83b00 100644 --- a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/AnswerInlineQuery.java +++ b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/AnswerInlineQuery.java @@ -1,7 +1,6 @@ package org.telegram.telegrambots.meta.api.methods; import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.core.type.TypeReference; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.EqualsAndHashCode; @@ -12,12 +11,9 @@ import lombok.RequiredArgsConstructor; import lombok.Setter; import lombok.Singular; import lombok.ToString; -import org.telegram.telegrambots.meta.api.objects.ApiResponse; import org.telegram.telegrambots.meta.api.objects.inlinequery.result.InlineQueryResult; -import org.telegram.telegrambots.meta.exceptions.TelegramApiRequestException; import org.telegram.telegrambots.meta.exceptions.TelegramApiValidationException; -import java.io.IOException; import java.util.List; import java.util.regex.Pattern; @@ -34,7 +30,7 @@ import java.util.regex.Pattern; @RequiredArgsConstructor @AllArgsConstructor @Builder -public class AnswerInlineQuery extends BotApiMethod { +public class AnswerInlineQuery extends BotApiMethodBoolean{ public static final String PATH = "answerInlineQuery"; private static final String INLINEQUERYID_FIELD = "inline_query_id"; @@ -94,19 +90,4 @@ public class AnswerInlineQuery extends BotApiMethod { public String getMethod() { return PATH; } - - @Override - public Boolean deserializeResponse(String answer) throws TelegramApiRequestException { - try { - ApiResponse result = OBJECT_MAPPER.readValue(answer, - new TypeReference>(){}); - if (result.getOk()) { - return result.getResult(); - } else { - throw new TelegramApiRequestException("Error answering inline query", result); - } - } catch (IOException e) { - throw new TelegramApiRequestException("Unable to deserialize response", e); - } - } } diff --git a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/AnswerPreCheckoutQuery.java b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/AnswerPreCheckoutQuery.java index 5679fdfa..b4b2406b 100644 --- a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/AnswerPreCheckoutQuery.java +++ b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/AnswerPreCheckoutQuery.java @@ -1,7 +1,6 @@ package org.telegram.telegrambots.meta.api.methods; import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.core.type.TypeReference; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.EqualsAndHashCode; @@ -11,12 +10,8 @@ import lombok.NonNull; import lombok.RequiredArgsConstructor; import lombok.Setter; import lombok.ToString; -import org.telegram.telegrambots.meta.api.objects.ApiResponse; -import org.telegram.telegrambots.meta.exceptions.TelegramApiRequestException; import org.telegram.telegrambots.meta.exceptions.TelegramApiValidationException; -import java.io.IOException; - /** * @author Ruben Bermudez * @version 1.0 @@ -36,7 +31,7 @@ import java.io.IOException; @RequiredArgsConstructor @AllArgsConstructor @Builder -public class AnswerPreCheckoutQuery extends BotApiMethod { +public class AnswerPreCheckoutQuery extends BotApiMethodBoolean{ public static final String PATH = "answerPreCheckoutQuery"; private static final String PRE_CHECKOUT_QUERY_ID_FIELD = "pre_checkout_query_id"; @@ -54,12 +49,9 @@ public class AnswerPreCheckoutQuery extends BotApiMethod { @Override public void validate() throws TelegramApiValidationException { - if (preCheckoutQueryId == null || preCheckoutQueryId.isEmpty()) { + if (preCheckoutQueryId.isEmpty()) { throw new TelegramApiValidationException("PreCheckoutQueryId can't be empty", this); } - if (ok == null) { - throw new TelegramApiValidationException("Ok can't be null", this); - } if (!ok) { if (errorMessage == null || errorMessage.isEmpty()) { throw new TelegramApiValidationException("ErrorMessage can't be empty if not ok", this); @@ -71,19 +63,4 @@ public class AnswerPreCheckoutQuery extends BotApiMethod { public String getMethod() { return PATH; } - - @Override - public Boolean deserializeResponse(String answer) throws TelegramApiRequestException { - try { - ApiResponse result = OBJECT_MAPPER.readValue(answer, - new TypeReference>(){}); - if (result.getOk()) { - return result.getResult(); - } else { - throw new TelegramApiRequestException("Error answering pre-checkout query", result); - } - } catch (IOException e) { - throw new TelegramApiRequestException("Unable to deserialize response", e); - } - } } diff --git a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/AnswerShippingQuery.java b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/AnswerShippingQuery.java index 07f77125..60f9eb83 100644 --- a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/AnswerShippingQuery.java +++ b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/AnswerShippingQuery.java @@ -1,7 +1,6 @@ package org.telegram.telegrambots.meta.api.methods; import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.core.type.TypeReference; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.EqualsAndHashCode; @@ -11,12 +10,9 @@ import lombok.NonNull; import lombok.RequiredArgsConstructor; import lombok.Setter; import lombok.ToString; -import org.telegram.telegrambots.meta.api.objects.ApiResponse; import org.telegram.telegrambots.meta.api.objects.payments.ShippingOption; -import org.telegram.telegrambots.meta.exceptions.TelegramApiRequestException; import org.telegram.telegrambots.meta.exceptions.TelegramApiValidationException; -import java.io.IOException; import java.util.List; /** @@ -37,7 +33,7 @@ import java.util.List; @RequiredArgsConstructor @AllArgsConstructor @Builder -public class AnswerShippingQuery extends BotApiMethod { +public class AnswerShippingQuery extends BotApiMethodBoolean{ public static final String PATH = "answerShippingQuery"; private static final String SHIPPING_QUERY_ID_FIELD = "shipping_query_id"; @@ -82,19 +78,4 @@ public class AnswerShippingQuery extends BotApiMethod { public String getMethod() { return PATH; } - - @Override - public Boolean deserializeResponse(String answer) throws TelegramApiRequestException { - try { - ApiResponse result = OBJECT_MAPPER.readValue(answer, - new TypeReference>(){}); - if (result.getOk()) { - return result.getResult(); - } else { - throw new TelegramApiRequestException("Error answering shipping query", result); - } - } catch (IOException e) { - throw new TelegramApiRequestException("Unable to deserialize response", e); - } - } } diff --git a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/BotApiMethodBoolean.java b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/BotApiMethodBoolean.java new file mode 100644 index 00000000..085f27d6 --- /dev/null +++ b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/BotApiMethodBoolean.java @@ -0,0 +1,20 @@ +package org.telegram.telegrambots.meta.api.methods; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonInclude; +import org.telegram.telegrambots.meta.exceptions.TelegramApiRequestException; + +/** + * @author Ruben Bermudez + * @version 1.0 + * + * A method of Telegram Bots Api that is fully supported in json format + */ +@JsonIgnoreProperties(ignoreUnknown = true) +@JsonInclude(JsonInclude.Include.NON_NULL) +public abstract class BotApiMethodBoolean extends BotApiMethod { + @Override + public Boolean deserializeResponse(String answer) throws TelegramApiRequestException { + return deserializeResponse(answer, Boolean.class); + } +} diff --git a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/BotApiMethodMessage.java b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/BotApiMethodMessage.java new file mode 100644 index 00000000..927cf5aa --- /dev/null +++ b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/BotApiMethodMessage.java @@ -0,0 +1,21 @@ +package org.telegram.telegrambots.meta.api.methods; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonInclude; +import org.telegram.telegrambots.meta.api.objects.Message; +import org.telegram.telegrambots.meta.exceptions.TelegramApiRequestException; + +/** + * @author Ruben Bermudez + * @version 1.0 + * + * A method of Telegram Bots Api that is fully supported in json format + */ +@JsonIgnoreProperties(ignoreUnknown = true) +@JsonInclude(JsonInclude.Include.NON_NULL) +public abstract class BotApiMethodMessage extends BotApiMethod { + @Override + public Message deserializeResponse(String answer) throws TelegramApiRequestException { + return deserializeResponse(answer, Message.class); + } +} diff --git a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/BotApiMethodSerializable.java b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/BotApiMethodSerializable.java new file mode 100644 index 00000000..d06bd7c9 --- /dev/null +++ b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/BotApiMethodSerializable.java @@ -0,0 +1,42 @@ +package org.telegram.telegrambots.meta.api.methods; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonInclude; +import org.telegram.telegrambots.meta.api.objects.Message; +import org.telegram.telegrambots.meta.exceptions.TelegramApiRequestException; + +import java.io.IOException; +import java.io.Serializable; +import java.util.Arrays; +import java.util.List; + +/** + * @author Ruben Bermudez + * @version 1.0 + * + * A method of Telegram Bots Api that is fully supported in json format + */ +@JsonIgnoreProperties(ignoreUnknown = true) +@JsonInclude(JsonInclude.Include.NON_NULL) +public abstract class BotApiMethodSerializable extends BotApiMethod { + public Serializable deserializeResponseMessageOrBoolean(String answer) throws TelegramApiRequestException { + return deserializeResponseFromPossibilities(answer, Arrays.asList(Message.class, Boolean.class)); + } + + public Serializable deserializeResponseFromPossibilities(String answer, List> possibleValues) throws TelegramApiRequestException { + Throwable lastException = null; + for (Class possibleValue : possibleValues) { + try { + return deserializeResponseSerializable(answer, possibleValue); + } catch (TelegramApiRequestException e) { + if (e.getCause() instanceof IOException) { + lastException = e.getCause(); + } else { + throw e; + } + } + } + + throw new TelegramApiRequestException("Unable to deserialize response", lastException); + } +} diff --git a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/CopyMessage.java b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/CopyMessage.java index a61e9978..6bff8f47 100644 --- a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/CopyMessage.java +++ b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/CopyMessage.java @@ -1,7 +1,6 @@ package org.telegram.telegrambots.meta.api.methods; import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import lombok.AllArgsConstructor; import lombok.Builder; @@ -13,14 +12,12 @@ import lombok.RequiredArgsConstructor; import lombok.Setter; import lombok.ToString; import lombok.experimental.Tolerate; -import org.telegram.telegrambots.meta.api.objects.ApiResponse; import org.telegram.telegrambots.meta.api.objects.MessageEntity; import org.telegram.telegrambots.meta.api.objects.MessageId; import org.telegram.telegrambots.meta.api.objects.replykeyboard.ReplyKeyboard; import org.telegram.telegrambots.meta.exceptions.TelegramApiRequestException; import org.telegram.telegrambots.meta.exceptions.TelegramApiValidationException; -import java.io.IOException; import java.util.List; /** @@ -139,17 +136,7 @@ public class CopyMessage extends BotApiMethod { @Override public MessageId deserializeResponse(String answer) throws TelegramApiRequestException { - try { - ApiResponse result = OBJECT_MAPPER.readValue(answer, - new TypeReference>(){}); - if (result.getOk()) { - return result.getResult(); - } else { - throw new TelegramApiRequestException("Error copying message", result); - } - } catch (IOException e) { - throw new TelegramApiRequestException("Unable to deserialize response", e); - } + return deserializeResponse(answer, MessageId.class); } @Override diff --git a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/ForwardMessage.java b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/ForwardMessage.java index 190e90fc..7eae0bd8 100644 --- a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/ForwardMessage.java +++ b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/ForwardMessage.java @@ -1,7 +1,6 @@ package org.telegram.telegrambots.meta.api.methods; import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.core.type.TypeReference; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.EqualsAndHashCode; @@ -12,13 +11,8 @@ import lombok.RequiredArgsConstructor; import lombok.Setter; import lombok.ToString; import lombok.experimental.Tolerate; -import org.telegram.telegrambots.meta.api.objects.ApiResponse; -import org.telegram.telegrambots.meta.api.objects.Message; -import org.telegram.telegrambots.meta.exceptions.TelegramApiRequestException; import org.telegram.telegrambots.meta.exceptions.TelegramApiValidationException; -import java.io.IOException; - /** * @author Ruben Bermudez * @version 1.0 @@ -35,7 +29,7 @@ import java.io.IOException; @RequiredArgsConstructor @AllArgsConstructor @Builder -public class ForwardMessage extends BotApiMethod { +public class ForwardMessage extends BotApiMethodMessage { public static final String PATH = "forwardmessage"; private static final String CHATID_FIELD = "chat_id"; @@ -89,21 +83,6 @@ public class ForwardMessage extends BotApiMethod { return PATH; } - @Override - public Message deserializeResponse(String answer) throws TelegramApiRequestException { - try { - ApiResponse result = OBJECT_MAPPER.readValue(answer, - new TypeReference>(){}); - if (result.getOk()) { - return result.getResult(); - } else { - throw new TelegramApiRequestException("Error forwarding message", result); - } - } catch (IOException e) { - throw new TelegramApiRequestException("Unable to deserialize response", e); - } - } - public static class ForwardMessageBuilder { @Tolerate diff --git a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/GetFile.java b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/GetFile.java index 8a089155..0976e08e 100644 --- a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/GetFile.java +++ b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/GetFile.java @@ -1,7 +1,6 @@ package org.telegram.telegrambots.meta.api.methods; import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.core.type.TypeReference; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.EqualsAndHashCode; @@ -10,12 +9,8 @@ import lombok.NoArgsConstructor; import lombok.NonNull; import lombok.Setter; import lombok.ToString; -import org.telegram.telegrambots.meta.api.objects.ApiResponse; import org.telegram.telegrambots.meta.api.objects.File; import org.telegram.telegrambots.meta.exceptions.TelegramApiRequestException; -import org.telegram.telegrambots.meta.exceptions.TelegramApiValidationException; - -import java.io.IOException; /** * @author Ruben Bermudez @@ -44,13 +39,6 @@ public class GetFile extends BotApiMethod { @NonNull private String fileId; ///< File identifier to get info about - @Override - public void validate() throws TelegramApiValidationException { - if (fileId == null) { - throw new TelegramApiValidationException("FileId can't be empty", this); - } - } - @Override public String getMethod() { return PATH; @@ -58,16 +46,6 @@ public class GetFile extends BotApiMethod { @Override public File deserializeResponse(String answer) throws TelegramApiRequestException { - try { - ApiResponse result = OBJECT_MAPPER.readValue(answer, - new TypeReference>(){}); - if (result.getOk()) { - return result.getResult(); - } else { - throw new TelegramApiRequestException("Error getting file", result); - } - } catch (IOException e) { - throw new TelegramApiRequestException("Unable to deserialize response", e); - } + return deserializeResponse(answer, File.class); } } diff --git a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/GetMe.java b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/GetMe.java index fee2b8bc..009ed92b 100644 --- a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/GetMe.java +++ b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/GetMe.java @@ -1,18 +1,13 @@ package org.telegram.telegrambots.meta.api.methods; -import com.fasterxml.jackson.core.type.TypeReference; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.EqualsAndHashCode; import lombok.Getter; import lombok.Setter; import lombok.ToString; -import org.telegram.telegrambots.meta.api.objects.ApiResponse; import org.telegram.telegrambots.meta.api.objects.User; import org.telegram.telegrambots.meta.exceptions.TelegramApiRequestException; -import org.telegram.telegrambots.meta.exceptions.TelegramApiValidationException; - -import java.io.IOException; /** * @author Ruben Bermudez @@ -36,21 +31,6 @@ public class GetMe extends BotApiMethod { @Override public User deserializeResponse(String answer) throws TelegramApiRequestException { - try { - ApiResponse result = OBJECT_MAPPER.readValue(answer, - new TypeReference>() { - }); - if (result.getOk()) { - return result.getResult(); - } else { - throw new TelegramApiRequestException("Error getting me", result); - } - } catch (IOException e2) { - throw new TelegramApiRequestException("Unable to deserialize response", e2); - } - } - - @Override - public void validate() throws TelegramApiValidationException { + return deserializeResponse(answer, User.class); } } diff --git a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/GetUserProfilePhotos.java b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/GetUserProfilePhotos.java index 11431671..6209dd3e 100644 --- a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/GetUserProfilePhotos.java +++ b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/GetUserProfilePhotos.java @@ -1,8 +1,6 @@ package org.telegram.telegrambots.meta.api.methods; import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.core.type.TypeReference; - import lombok.AllArgsConstructor; import lombok.Builder; import lombok.EqualsAndHashCode; @@ -13,11 +11,7 @@ import lombok.RequiredArgsConstructor; import lombok.Setter; import lombok.ToString; import org.telegram.telegrambots.meta.api.objects.UserProfilePhotos; -import org.telegram.telegrambots.meta.api.objects.ApiResponse; import org.telegram.telegrambots.meta.exceptions.TelegramApiRequestException; -import org.telegram.telegrambots.meta.exceptions.TelegramApiValidationException; - -import java.io.IOException; /** * @author Ruben Bermudez @@ -60,23 +54,6 @@ public class GetUserProfilePhotos extends BotApiMethod { @Override public UserProfilePhotos deserializeResponse(String answer) throws TelegramApiRequestException { - try { - ApiResponse result = OBJECT_MAPPER.readValue(answer, - new TypeReference>(){}); - if (result.getOk()) { - return result.getResult(); - } else { - throw new TelegramApiRequestException("Error getting user profile photos", result); - } - } catch (IOException e) { - throw new TelegramApiRequestException("Unable to deserialize response", e); - } - } - - @Override - public void validate() throws TelegramApiValidationException { - if (userId == null) { - throw new TelegramApiValidationException("UserId parameter can't be empty", this); - } + return deserializeResponse(answer, UserProfilePhotos.class); } } diff --git a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/PartialBotApiMethod.java b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/PartialBotApiMethod.java index 0c0a5582..9251e867 100644 --- a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/PartialBotApiMethod.java +++ b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/PartialBotApiMethod.java @@ -1,12 +1,16 @@ package org.telegram.telegrambots.meta.api.methods; import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.databind.JavaType; import com.fasterxml.jackson.databind.ObjectMapper; - +import com.fasterxml.jackson.databind.type.CollectionType; import org.telegram.telegrambots.meta.api.interfaces.Validable; +import org.telegram.telegrambots.meta.api.objects.ApiResponse; import org.telegram.telegrambots.meta.exceptions.TelegramApiRequestException; +import java.io.IOException; import java.io.Serializable; +import java.util.ArrayList; /** * @author Ruben Bermudez @@ -23,4 +27,33 @@ public abstract class PartialBotApiMethod implements Val * @return Answer for the method */ public abstract T deserializeResponse(String answer) throws TelegramApiRequestException; + + public T deserializeResponse(String answer, Class returnClass) throws TelegramApiRequestException { + JavaType type = OBJECT_MAPPER.getTypeFactory().constructType(returnClass); + return deserializeResponseInternal(answer, type); + } + + public T deserializeResponseArray(String answer, Class returnClass) throws TelegramApiRequestException { + CollectionType collectionType = OBJECT_MAPPER.getTypeFactory().constructCollectionType(ArrayList.class, returnClass); + return deserializeResponseInternal(answer, collectionType); + } + + protected T deserializeResponseSerializable(String answer, Class returnClass) throws TelegramApiRequestException { + JavaType type = OBJECT_MAPPER.getTypeFactory().constructType(returnClass); + return deserializeResponseInternal(answer, type); + } + + private T deserializeResponseInternal(String answer, JavaType type) throws TelegramApiRequestException { + try { + JavaType responseType = OBJECT_MAPPER.getTypeFactory().constructParametricType(ApiResponse.class, type); + ApiResponse result = OBJECT_MAPPER.readValue(answer, responseType); + if (result.getOk()) { + return result.getResult(); + } else { + throw new TelegramApiRequestException(String.format("Error executing %s query", this.getClass().getName()), result); + } + } catch (IOException e) { + throw new TelegramApiRequestException("Unable to deserialize response", e); + } + } } diff --git a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/SetPassportDataErrors.java b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/SetPassportDataErrors.java index 0cf656e1..c8770011 100644 --- a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/SetPassportDataErrors.java +++ b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/SetPassportDataErrors.java @@ -1,7 +1,6 @@ package org.telegram.telegrambots.meta.api.methods; import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.core.type.TypeReference; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.EqualsAndHashCode; @@ -11,12 +10,9 @@ import lombok.NonNull; import lombok.Setter; import lombok.Singular; import lombok.ToString; -import org.telegram.telegrambots.meta.api.objects.ApiResponse; import org.telegram.telegrambots.meta.api.objects.passport.dataerror.PassportElementError; -import org.telegram.telegrambots.meta.exceptions.TelegramApiRequestException; import org.telegram.telegrambots.meta.exceptions.TelegramApiValidationException; -import java.io.IOException; import java.util.List; /** @@ -33,7 +29,7 @@ import java.util.List; @NoArgsConstructor @AllArgsConstructor @Builder -public class SetPassportDataErrors extends BotApiMethod { +public class SetPassportDataErrors extends BotApiMethodBoolean{ public static final String PATH = "setPassportDataErrors"; private static final String USERID_FIELD = "user_id"; @@ -52,27 +48,9 @@ public class SetPassportDataErrors extends BotApiMethod { return PATH; } - @Override - public Boolean deserializeResponse(String answer) throws TelegramApiRequestException { - try { - ApiResponse result = OBJECT_MAPPER.readValue(answer, - new TypeReference>(){}); - if (result.getOk()) { - return result.getResult(); - } else { - throw new TelegramApiRequestException("Error setting passport data errors", result); - } - } catch (IOException e) { - throw new TelegramApiRequestException("Unable to deserialize response", e); - } - } - @Override public void validate() throws TelegramApiValidationException { - if (userId == null) { - throw new TelegramApiValidationException("User ID can't be empty", this); - } - if (errors == null || errors.isEmpty()) { + if (errors.isEmpty()) { throw new TelegramApiValidationException("Errors can't be empty", this); } } diff --git a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/StopMessageLiveLocation.java b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/StopMessageLiveLocation.java index 35f315ae..7d5dad35 100644 --- a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/StopMessageLiveLocation.java +++ b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/StopMessageLiveLocation.java @@ -33,7 +33,7 @@ import java.io.Serializable; @NoArgsConstructor @AllArgsConstructor @Builder -public class StopMessageLiveLocation extends BotApiMethod { +public class StopMessageLiveLocation extends BotApiMethodSerializable { public static final String PATH = "stopMessageLiveLocation"; private static final String CHATID_FIELD = "chat_id"; diff --git a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/adminrights/GetMyDefaultAdministratorRights.java b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/adminrights/GetMyDefaultAdministratorRights.java index 393083c6..75480798 100644 --- a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/adminrights/GetMyDefaultAdministratorRights.java +++ b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/adminrights/GetMyDefaultAdministratorRights.java @@ -1,15 +1,16 @@ package org.telegram.telegrambots.meta.api.methods.adminrights; import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.core.type.TypeReference; -import lombok.*; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.EqualsAndHashCode; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; +import lombok.ToString; import org.telegram.telegrambots.meta.api.methods.BotApiMethod; -import org.telegram.telegrambots.meta.api.objects.ApiResponse; import org.telegram.telegrambots.meta.api.objects.adminrights.ChatAdministratorRights; import org.telegram.telegrambots.meta.exceptions.TelegramApiRequestException; -import org.telegram.telegrambots.meta.exceptions.TelegramApiValidationException; - -import java.io.IOException; /** * @author Ruben Bermudez @@ -46,21 +47,6 @@ public class GetMyDefaultAdministratorRights extends BotApiMethod result = OBJECT_MAPPER.readValue(answer, - new TypeReference>(){}); - if (result.getOk()) { - return result.getResult(); - } else { - throw new TelegramApiRequestException("Error getting default administrator rights", result); - } - } catch (IOException e) { - throw new TelegramApiRequestException("Unable to deserialize response", e); - } - } - - @Override - public void validate() throws TelegramApiValidationException { - + return deserializeResponse(answer, ChatAdministratorRights.class); } } diff --git a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/adminrights/SetMyDefaultAdministratorRights.java b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/adminrights/SetMyDefaultAdministratorRights.java index 7f572758..878a406f 100644 --- a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/adminrights/SetMyDefaultAdministratorRights.java +++ b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/adminrights/SetMyDefaultAdministratorRights.java @@ -1,16 +1,15 @@ package org.telegram.telegrambots.meta.api.methods.adminrights; import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.core.type.TypeReference; -import lombok.*; -import org.telegram.telegrambots.meta.api.methods.BotApiMethod; -import org.telegram.telegrambots.meta.api.objects.ApiResponse; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.EqualsAndHashCode; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; +import lombok.ToString; +import org.telegram.telegrambots.meta.api.methods.BotApiMethodBoolean; import org.telegram.telegrambots.meta.api.objects.adminrights.ChatAdministratorRights; -import org.telegram.telegrambots.meta.api.objects.commands.scope.BotCommandScope; -import org.telegram.telegrambots.meta.exceptions.TelegramApiRequestException; -import org.telegram.telegrambots.meta.exceptions.TelegramApiValidationException; - -import java.io.IOException; /** * @author Ruben Bermudez @@ -26,7 +25,7 @@ import java.io.IOException; @NoArgsConstructor @AllArgsConstructor @Builder -public class SetMyDefaultAdministratorRights extends BotApiMethod { +public class SetMyDefaultAdministratorRights extends BotApiMethodBoolean { public static final String PATH = "setMyDefaultAdministratorRights"; private static final String RIGHTS_FIELD = "rights"; @@ -51,24 +50,4 @@ public class SetMyDefaultAdministratorRights extends BotApiMethod { public String getMethod() { return PATH; } - - @Override - public Boolean deserializeResponse(String answer) throws TelegramApiRequestException { - try { - ApiResponse result = OBJECT_MAPPER.readValue(answer, - new TypeReference>(){}); - if (result.getOk()) { - return result.getResult(); - } else { - throw new TelegramApiRequestException("Error setting default administrator rights", result); - } - } catch (IOException e) { - throw new TelegramApiRequestException("Unable to deserialize response", e); - } - } - - @Override - public void validate() throws TelegramApiValidationException { - - } } diff --git a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/commands/DeleteMyCommands.java b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/commands/DeleteMyCommands.java index b9bc6242..31aea20a 100644 --- a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/commands/DeleteMyCommands.java +++ b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/commands/DeleteMyCommands.java @@ -1,7 +1,6 @@ package org.telegram.telegrambots.meta.api.methods.commands; import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.core.type.TypeReference; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.EqualsAndHashCode; @@ -9,14 +8,10 @@ import lombok.Getter; import lombok.NoArgsConstructor; import lombok.Setter; import lombok.ToString; -import org.telegram.telegrambots.meta.api.methods.BotApiMethod; -import org.telegram.telegrambots.meta.api.objects.ApiResponse; +import org.telegram.telegrambots.meta.api.methods.BotApiMethodBoolean; import org.telegram.telegrambots.meta.api.objects.commands.scope.BotCommandScope; -import org.telegram.telegrambots.meta.exceptions.TelegramApiRequestException; import org.telegram.telegrambots.meta.exceptions.TelegramApiValidationException; -import java.io.IOException; - /** * @author Ruben Bermudez * @version 5.3 @@ -32,7 +27,7 @@ import java.io.IOException; @NoArgsConstructor @AllArgsConstructor @Builder -public class DeleteMyCommands extends BotApiMethod { +public class DeleteMyCommands extends BotApiMethodBoolean { public static final String PATH = "deleteMyCommands"; private static final String SCOPE_FIELD = "scope"; @@ -58,21 +53,6 @@ public class DeleteMyCommands extends BotApiMethod { return PATH; } - @Override - public Boolean deserializeResponse(String answer) throws TelegramApiRequestException { - try { - ApiResponse result = OBJECT_MAPPER.readValue(answer, - new TypeReference>(){}); - if (result.getOk()) { - return result.getResult(); - } else { - throw new TelegramApiRequestException("Error deleting commands", result); - } - } catch (IOException e) { - throw new TelegramApiRequestException("Unable to deserialize response", e); - } - } - @Override public void validate() throws TelegramApiValidationException { if (scope != null) { diff --git a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/commands/GetMyCommands.java b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/commands/GetMyCommands.java index bfffbe93..f0c8b9f2 100644 --- a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/commands/GetMyCommands.java +++ b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/commands/GetMyCommands.java @@ -1,7 +1,6 @@ package org.telegram.telegrambots.meta.api.methods.commands; import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.core.type.TypeReference; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.EqualsAndHashCode; @@ -10,13 +9,11 @@ import lombok.NoArgsConstructor; import lombok.Setter; import lombok.ToString; import org.telegram.telegrambots.meta.api.methods.BotApiMethod; -import org.telegram.telegrambots.meta.api.objects.ApiResponse; import org.telegram.telegrambots.meta.api.objects.commands.BotCommand; import org.telegram.telegrambots.meta.api.objects.commands.scope.BotCommandScope; import org.telegram.telegrambots.meta.exceptions.TelegramApiRequestException; import org.telegram.telegrambots.meta.exceptions.TelegramApiValidationException; -import java.io.IOException; import java.util.ArrayList; /** @@ -61,17 +58,7 @@ public class GetMyCommands extends BotApiMethod> { @Override public ArrayList deserializeResponse(String answer) throws TelegramApiRequestException { - try { - ApiResponse> result = OBJECT_MAPPER.readValue(answer, - new TypeReference>>(){}); - if (result.getOk()) { - return result.getResult(); - } else { - throw new TelegramApiRequestException("Error sending commands", result); - } - } catch (IOException e) { - throw new TelegramApiRequestException("Unable to deserialize response", e); - } + return deserializeResponseArray(answer, BotCommand.class); } @Override diff --git a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/commands/SetMyCommands.java b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/commands/SetMyCommands.java index ce19d541..415da718 100644 --- a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/commands/SetMyCommands.java +++ b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/commands/SetMyCommands.java @@ -1,7 +1,6 @@ package org.telegram.telegrambots.meta.api.methods.commands; import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.core.type.TypeReference; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.EqualsAndHashCode; @@ -11,14 +10,11 @@ import lombok.NonNull; import lombok.Setter; import lombok.Singular; import lombok.ToString; -import org.telegram.telegrambots.meta.api.methods.BotApiMethod; -import org.telegram.telegrambots.meta.api.objects.ApiResponse; +import org.telegram.telegrambots.meta.api.methods.BotApiMethodBoolean; import org.telegram.telegrambots.meta.api.objects.commands.BotCommand; import org.telegram.telegrambots.meta.api.objects.commands.scope.BotCommandScope; -import org.telegram.telegrambots.meta.exceptions.TelegramApiRequestException; import org.telegram.telegrambots.meta.exceptions.TelegramApiValidationException; -import java.io.IOException; import java.util.List; /** @@ -35,7 +31,7 @@ import java.util.List; @NoArgsConstructor @AllArgsConstructor @Builder -public class SetMyCommands extends BotApiMethod { +public class SetMyCommands extends BotApiMethodBoolean { public static final String PATH = "setMyCommands"; private static final String COMMANDS_FIELD = "commands"; @@ -70,27 +66,12 @@ public class SetMyCommands extends BotApiMethod { return PATH; } - @Override - public Boolean deserializeResponse(String answer) throws TelegramApiRequestException { - try { - ApiResponse result = OBJECT_MAPPER.readValue(answer, - new TypeReference>(){}); - if (result.getOk()) { - return result.getResult(); - } else { - throw new TelegramApiRequestException("Error sending commands", result); - } - } catch (IOException e) { - throw new TelegramApiRequestException("Unable to deserialize response", e); - } - } - @Override public void validate() throws TelegramApiValidationException { if (languageCode != null && languageCode.isEmpty()) { throw new TelegramApiValidationException("LanguageCode parameter can't be empty string", this); } - if (commands == null || commands.isEmpty()) { + if (commands.isEmpty()) { throw new TelegramApiValidationException("Commands parameter can't be empty", this); } if (commands.size() > 100) { diff --git a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/games/GetGameHighScores.java b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/games/GetGameHighScores.java index 8028a8a2..a1a2ecf9 100644 --- a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/games/GetGameHighScores.java +++ b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/games/GetGameHighScores.java @@ -17,7 +17,6 @@ package org.telegram.telegrambots.meta.api.methods.games; import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.core.type.TypeReference; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.EqualsAndHashCode; @@ -29,12 +28,10 @@ import lombok.Setter; import lombok.ToString; import lombok.experimental.Tolerate; import org.telegram.telegrambots.meta.api.methods.BotApiMethod; -import org.telegram.telegrambots.meta.api.objects.ApiResponse; import org.telegram.telegrambots.meta.api.objects.games.GameHighScore; import org.telegram.telegrambots.meta.exceptions.TelegramApiRequestException; import org.telegram.telegrambots.meta.exceptions.TelegramApiValidationException; -import java.io.IOException; import java.util.ArrayList; /** @@ -88,17 +85,7 @@ public class GetGameHighScores extends BotApiMethod> { @Override public ArrayList deserializeResponse(String answer) throws TelegramApiRequestException { - try { - ApiResponse> result = OBJECT_MAPPER.readValue(answer, - new TypeReference>>(){}); - if (result.getOk()) { - return result.getResult(); - } else { - throw new TelegramApiRequestException("Error getting game high scores", result); - } - } catch (IOException e) { - throw new TelegramApiRequestException("Unable to deserialize response", e); - } + return deserializeResponseArray(answer, GameHighScore.class); } @Override diff --git a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/games/SetGameScore.java b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/games/SetGameScore.java index aa387641..53fc93bb 100644 --- a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/games/SetGameScore.java +++ b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/games/SetGameScore.java @@ -18,7 +18,6 @@ package org.telegram.telegrambots.meta.api.methods.games; import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.core.type.TypeReference; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.EqualsAndHashCode; @@ -29,13 +28,10 @@ import lombok.RequiredArgsConstructor; import lombok.Setter; import lombok.ToString; import lombok.experimental.Tolerate; -import org.telegram.telegrambots.meta.api.methods.BotApiMethod; -import org.telegram.telegrambots.meta.api.objects.ApiResponse; -import org.telegram.telegrambots.meta.api.objects.Message; +import org.telegram.telegrambots.meta.api.methods.BotApiMethodSerializable; import org.telegram.telegrambots.meta.exceptions.TelegramApiRequestException; import org.telegram.telegrambots.meta.exceptions.TelegramApiValidationException; -import java.io.IOException; import java.io.Serializable; /** @@ -56,7 +52,7 @@ import java.io.Serializable; @RequiredArgsConstructor @AllArgsConstructor @Builder -public class SetGameScore extends BotApiMethod { +public class SetGameScore extends BotApiMethodSerializable { public static final String PATH = "setGameScore"; private static final String USER_ID_FIELD = "user_id"; @@ -96,30 +92,11 @@ public class SetGameScore extends BotApiMethod { @Override public Serializable deserializeResponse(String answer) throws TelegramApiRequestException { - try { - ApiResponse result = OBJECT_MAPPER.readValue(answer, - new TypeReference>(){}); - if (result.getOk()) { - return result.getResult(); - } else { - throw new TelegramApiRequestException("Error setting game score", result); - } - } catch (IOException e) { - try { - ApiResponse result = OBJECT_MAPPER.readValue(answer, - new TypeReference>() { - }); - if (result.getOk()) { - return result.getResult(); - } else { - throw new TelegramApiRequestException("Error setting game score", result); - } - } catch (IOException e2) { - throw new TelegramApiRequestException("Unable to deserialize response", e2); - } - } + return deserializeResponseMessageOrBoolean(answer); } + + @Override public void validate() throws TelegramApiValidationException { if (inlineMessageId == null) { diff --git a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/groupadministration/ApproveChatJoinRequest.java b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/groupadministration/ApproveChatJoinRequest.java index 6d48a90c..a5c7862e 100644 --- a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/groupadministration/ApproveChatJoinRequest.java +++ b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/groupadministration/ApproveChatJoinRequest.java @@ -1,7 +1,6 @@ package org.telegram.telegrambots.meta.api.methods.groupadministration; import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.core.type.TypeReference; import lombok.Builder; import lombok.EqualsAndHashCode; import lombok.Getter; @@ -11,13 +10,9 @@ import lombok.RequiredArgsConstructor; import lombok.Setter; import lombok.ToString; import lombok.experimental.Tolerate; -import org.telegram.telegrambots.meta.api.methods.BotApiMethod; -import org.telegram.telegrambots.meta.api.objects.ApiResponse; -import org.telegram.telegrambots.meta.exceptions.TelegramApiRequestException; +import org.telegram.telegrambots.meta.api.methods.BotApiMethodBoolean; import org.telegram.telegrambots.meta.exceptions.TelegramApiValidationException; -import java.io.IOException; - /** * @author Ruben Bermudez * @version 5.4 @@ -32,7 +27,7 @@ import java.io.IOException; @NoArgsConstructor @RequiredArgsConstructor @Builder -public class ApproveChatJoinRequest extends BotApiMethod { +public class ApproveChatJoinRequest extends BotApiMethodBoolean { public static final String PATH = "approveChatJoinRequest"; private static final String CHATID_FIELD = "chat_id"; @@ -55,21 +50,6 @@ public class ApproveChatJoinRequest extends BotApiMethod { return PATH; } - @Override - public Boolean deserializeResponse(String answer) throws TelegramApiRequestException { - try { - ApiResponse result = OBJECT_MAPPER.readValue(answer, - new TypeReference>(){}); - if (result.getOk()) { - return result.getResult(); - } else { - throw new TelegramApiRequestException("Error approving chat join request", result); - } - } catch (IOException e) { - throw new TelegramApiRequestException("Unable to deserialize response", e); - } - } - @Override public void validate() throws TelegramApiValidationException { if (chatId.isEmpty()) { diff --git a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/groupadministration/BanChatMember.java b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/groupadministration/BanChatMember.java index 8fbb964c..5efea3e6 100644 --- a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/groupadministration/BanChatMember.java +++ b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/groupadministration/BanChatMember.java @@ -2,7 +2,6 @@ package org.telegram.telegrambots.meta.api.methods.groupadministration; import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.core.type.TypeReference; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.EqualsAndHashCode; @@ -13,12 +12,9 @@ import lombok.RequiredArgsConstructor; import lombok.Setter; import lombok.ToString; import lombok.experimental.Tolerate; -import org.telegram.telegrambots.meta.api.methods.BotApiMethod; -import org.telegram.telegrambots.meta.api.objects.ApiResponse; -import org.telegram.telegrambots.meta.exceptions.TelegramApiRequestException; +import org.telegram.telegrambots.meta.api.methods.BotApiMethodBoolean; import org.telegram.telegrambots.meta.exceptions.TelegramApiValidationException; -import java.io.IOException; import java.time.Duration; import java.time.Instant; import java.time.ZonedDateTime; @@ -42,7 +38,7 @@ import java.time.ZonedDateTime; @RequiredArgsConstructor @AllArgsConstructor @Builder -public class BanChatMember extends BotApiMethod { +public class BanChatMember extends BotApiMethodBoolean { public static final String PATH = "banChatMember"; private static final String CHATID_FIELD = "chat_id"; @@ -95,21 +91,6 @@ public class BanChatMember extends BotApiMethod { return PATH; } - @Override - public Boolean deserializeResponse(String answer) throws TelegramApiRequestException { - try { - ApiResponse result = OBJECT_MAPPER.readValue(answer, - new TypeReference>(){}); - if (result.getOk()) { - return result.getResult(); - } else { - throw new TelegramApiRequestException("Error kicking chat member", result); - } - } catch (IOException e) { - throw new TelegramApiRequestException("Unable to deserialize response", e); - } - } - @Override public void validate() throws TelegramApiValidationException { if (chatId.isEmpty()) { diff --git a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/groupadministration/BanChatSenderChat.java b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/groupadministration/BanChatSenderChat.java index c3236956..a50b27f9 100644 --- a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/groupadministration/BanChatSenderChat.java +++ b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/groupadministration/BanChatSenderChat.java @@ -2,7 +2,6 @@ package org.telegram.telegrambots.meta.api.methods.groupadministration; import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.core.type.TypeReference; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.EqualsAndHashCode; @@ -13,12 +12,9 @@ import lombok.RequiredArgsConstructor; import lombok.Setter; import lombok.ToString; import lombok.experimental.Tolerate; -import org.telegram.telegrambots.meta.api.methods.BotApiMethod; -import org.telegram.telegrambots.meta.api.objects.ApiResponse; -import org.telegram.telegrambots.meta.exceptions.TelegramApiRequestException; +import org.telegram.telegrambots.meta.api.methods.BotApiMethodBoolean; import org.telegram.telegrambots.meta.exceptions.TelegramApiValidationException; -import java.io.IOException; import java.time.Duration; import java.time.Instant; import java.time.ZonedDateTime; @@ -40,7 +36,7 @@ import java.time.ZonedDateTime; @RequiredArgsConstructor @AllArgsConstructor @Builder -public class BanChatSenderChat extends BotApiMethod { +public class BanChatSenderChat extends BotApiMethodBoolean { public static final String PATH = "banChatSenderChat"; private static final String CHATID_FIELD = "chat_id"; @@ -85,21 +81,6 @@ public class BanChatSenderChat extends BotApiMethod { return PATH; } - @Override - public Boolean deserializeResponse(String answer) throws TelegramApiRequestException { - try { - ApiResponse result = OBJECT_MAPPER.readValue(answer, - new TypeReference>(){}); - if (result.getOk()) { - return result.getResult(); - } else { - throw new TelegramApiRequestException("Error banning chat sender", result); - } - } catch (IOException e) { - throw new TelegramApiRequestException("Unable to deserialize response", e); - } - } - @Override public void validate() throws TelegramApiValidationException { if (chatId.isEmpty()) { diff --git a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/groupadministration/CreateChatInviteLink.java b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/groupadministration/CreateChatInviteLink.java index c3b3e9a0..c27e82aa 100644 --- a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/groupadministration/CreateChatInviteLink.java +++ b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/groupadministration/CreateChatInviteLink.java @@ -1,7 +1,6 @@ package org.telegram.telegrambots.meta.api.methods.groupadministration; import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.core.type.TypeReference; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.EqualsAndHashCode; @@ -13,13 +12,10 @@ import lombok.Setter; import lombok.ToString; import lombok.experimental.Tolerate; import org.telegram.telegrambots.meta.api.methods.BotApiMethod; -import org.telegram.telegrambots.meta.api.objects.ApiResponse; import org.telegram.telegrambots.meta.api.objects.ChatInviteLink; import org.telegram.telegrambots.meta.exceptions.TelegramApiRequestException; import org.telegram.telegrambots.meta.exceptions.TelegramApiValidationException; -import java.io.IOException; - /** * @author Ruben Bermudez * @version 5.1 @@ -82,17 +78,7 @@ public class CreateChatInviteLink extends BotApiMethod { @Override public ChatInviteLink deserializeResponse(String answer) throws TelegramApiRequestException { - try { - ApiResponse result = OBJECT_MAPPER.readValue(answer, - new TypeReference>(){}); - if (result.getOk()) { - return result.getResult(); - } else { - throw new TelegramApiRequestException("Error creating invite link", result); - } - } catch (IOException e) { - throw new TelegramApiRequestException("Unable to deserialize response", e); - } + return deserializeResponse(answer, ChatInviteLink.class); } @Override diff --git a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/groupadministration/DeclineChatJoinRequest.java b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/groupadministration/DeclineChatJoinRequest.java index 179df642..bd45d507 100644 --- a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/groupadministration/DeclineChatJoinRequest.java +++ b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/groupadministration/DeclineChatJoinRequest.java @@ -1,7 +1,6 @@ package org.telegram.telegrambots.meta.api.methods.groupadministration; import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.core.type.TypeReference; import lombok.Builder; import lombok.EqualsAndHashCode; import lombok.Getter; @@ -11,13 +10,9 @@ import lombok.RequiredArgsConstructor; import lombok.Setter; import lombok.ToString; import lombok.experimental.Tolerate; -import org.telegram.telegrambots.meta.api.methods.BotApiMethod; -import org.telegram.telegrambots.meta.api.objects.ApiResponse; -import org.telegram.telegrambots.meta.exceptions.TelegramApiRequestException; +import org.telegram.telegrambots.meta.api.methods.BotApiMethodBoolean; import org.telegram.telegrambots.meta.exceptions.TelegramApiValidationException; -import java.io.IOException; - /** * @author Ruben Bermudez * @version 5.4 @@ -32,7 +27,7 @@ import java.io.IOException; @NoArgsConstructor @RequiredArgsConstructor @Builder -public class DeclineChatJoinRequest extends BotApiMethod { +public class DeclineChatJoinRequest extends BotApiMethodBoolean { public static final String PATH = "declineChatJoinRequest"; private static final String CHATID_FIELD = "chat_id"; @@ -55,21 +50,6 @@ public class DeclineChatJoinRequest extends BotApiMethod { return PATH; } - @Override - public Boolean deserializeResponse(String answer) throws TelegramApiRequestException { - try { - ApiResponse result = OBJECT_MAPPER.readValue(answer, - new TypeReference>(){}); - if (result.getOk()) { - return result.getResult(); - } else { - throw new TelegramApiRequestException("Error declining chat join request", result); - } - } catch (IOException e) { - throw new TelegramApiRequestException("Unable to deserialize response", e); - } - } - @Override public void validate() throws TelegramApiValidationException { if (chatId.isEmpty()) { diff --git a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/groupadministration/DeleteChatPhoto.java b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/groupadministration/DeleteChatPhoto.java index fcaef96b..149d945a 100644 --- a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/groupadministration/DeleteChatPhoto.java +++ b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/groupadministration/DeleteChatPhoto.java @@ -1,7 +1,6 @@ package org.telegram.telegrambots.meta.api.methods.groupadministration; import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.core.type.TypeReference; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.EqualsAndHashCode; @@ -11,13 +10,9 @@ import lombok.NonNull; import lombok.Setter; import lombok.ToString; import lombok.experimental.Tolerate; -import org.telegram.telegrambots.meta.api.methods.BotApiMethod; -import org.telegram.telegrambots.meta.api.objects.ApiResponse; -import org.telegram.telegrambots.meta.exceptions.TelegramApiRequestException; +import org.telegram.telegrambots.meta.api.methods.BotApiMethodBoolean; import org.telegram.telegrambots.meta.exceptions.TelegramApiValidationException; -import java.io.IOException; - /** * @author Ruben Bermudez * @version 1.0 @@ -34,7 +29,7 @@ import java.io.IOException; @NoArgsConstructor @AllArgsConstructor @Builder -public class DeleteChatPhoto extends BotApiMethod { +public class DeleteChatPhoto extends BotApiMethodBoolean { public static final String PATH = "deleteChatPhoto"; private static final String CHATID_FIELD = "chat_id"; @@ -53,21 +48,6 @@ public class DeleteChatPhoto extends BotApiMethod { return PATH; } - @Override - public Boolean deserializeResponse(String answer) throws TelegramApiRequestException { - try { - ApiResponse result = OBJECT_MAPPER.readValue(answer, - new TypeReference>(){}); - if (result.getOk()) { - return result.getResult(); - } else { - throw new TelegramApiRequestException("Error deleting chat photo", result); - } - } catch (IOException e) { - throw new TelegramApiRequestException("Unable to deserialize response", e); - } - } - @Override public void validate() throws TelegramApiValidationException { if (chatId.isEmpty()) { diff --git a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/groupadministration/DeleteChatStickerSet.java b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/groupadministration/DeleteChatStickerSet.java index 90d25f70..9ece075a 100644 --- a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/groupadministration/DeleteChatStickerSet.java +++ b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/groupadministration/DeleteChatStickerSet.java @@ -1,7 +1,6 @@ package org.telegram.telegrambots.meta.api.methods.groupadministration; import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.core.type.TypeReference; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.EqualsAndHashCode; @@ -11,13 +10,9 @@ import lombok.NonNull; import lombok.Setter; import lombok.ToString; import lombok.experimental.Tolerate; -import org.telegram.telegrambots.meta.api.methods.BotApiMethod; -import org.telegram.telegrambots.meta.api.objects.ApiResponse; -import org.telegram.telegrambots.meta.exceptions.TelegramApiRequestException; +import org.telegram.telegrambots.meta.api.methods.BotApiMethodBoolean; import org.telegram.telegrambots.meta.exceptions.TelegramApiValidationException; -import java.io.IOException; - /** * @author Ruben Bermudez * @version 3.4 @@ -33,7 +28,7 @@ import java.io.IOException; @NoArgsConstructor @AllArgsConstructor @Builder -public class DeleteChatStickerSet extends BotApiMethod { +public class DeleteChatStickerSet extends BotApiMethodBoolean { public static final String PATH = "deleteChatStickerSet"; private static final String CHATID_FIELD = "chat_id"; @@ -52,21 +47,6 @@ public class DeleteChatStickerSet extends BotApiMethod { return PATH; } - @Override - public Boolean deserializeResponse(String answer) throws TelegramApiRequestException { - try { - ApiResponse result = OBJECT_MAPPER.readValue(answer, - new TypeReference>(){}); - if (result.getOk()) { - return result.getResult(); - } else { - throw new TelegramApiRequestException("Error deleting chat sticker set", result); - } - } catch (IOException e) { - throw new TelegramApiRequestException("Unable to deserialize response", e); - } - } - @Override public void validate() throws TelegramApiValidationException { if (chatId.isEmpty()) { diff --git a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/groupadministration/EditChatInviteLink.java b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/groupadministration/EditChatInviteLink.java index bdb43cf3..e7e874cc 100644 --- a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/groupadministration/EditChatInviteLink.java +++ b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/groupadministration/EditChatInviteLink.java @@ -1,7 +1,6 @@ package org.telegram.telegrambots.meta.api.methods.groupadministration; import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.core.type.TypeReference; import com.google.common.base.Strings; import lombok.AllArgsConstructor; import lombok.Builder; @@ -14,13 +13,10 @@ import lombok.Setter; import lombok.ToString; import lombok.experimental.Tolerate; import org.telegram.telegrambots.meta.api.methods.BotApiMethod; -import org.telegram.telegrambots.meta.api.objects.ApiResponse; import org.telegram.telegrambots.meta.api.objects.ChatInviteLink; import org.telegram.telegrambots.meta.exceptions.TelegramApiRequestException; import org.telegram.telegrambots.meta.exceptions.TelegramApiValidationException; -import java.io.IOException; - /** * @author Ruben Bermudez * @version 5.1 @@ -87,17 +83,7 @@ public class EditChatInviteLink extends BotApiMethod { @Override public ChatInviteLink deserializeResponse(String answer) throws TelegramApiRequestException { - try { - ApiResponse result = OBJECT_MAPPER.readValue(answer, - new TypeReference>(){}); - if (result.getOk()) { - return result.getResult(); - } else { - throw new TelegramApiRequestException("Error creating invite link", result); - } - } catch (IOException e) { - throw new TelegramApiRequestException("Unable to deserialize response", e); - } + return deserializeResponse(answer, ChatInviteLink.class); } @Override diff --git a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/groupadministration/ExportChatInviteLink.java b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/groupadministration/ExportChatInviteLink.java index d25d563a..c7ba134c 100644 --- a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/groupadministration/ExportChatInviteLink.java +++ b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/groupadministration/ExportChatInviteLink.java @@ -1,7 +1,6 @@ package org.telegram.telegrambots.meta.api.methods.groupadministration; import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.core.type.TypeReference; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.EqualsAndHashCode; @@ -12,12 +11,9 @@ import lombok.Setter; import lombok.ToString; import lombok.experimental.Tolerate; import org.telegram.telegrambots.meta.api.methods.BotApiMethod; -import org.telegram.telegrambots.meta.api.objects.ApiResponse; import org.telegram.telegrambots.meta.exceptions.TelegramApiRequestException; import org.telegram.telegrambots.meta.exceptions.TelegramApiValidationException; -import java.io.IOException; - /** * @author Ruben Bermudez * @version 3.1 @@ -60,17 +56,7 @@ public class ExportChatInviteLink extends BotApiMethod { @Override public String deserializeResponse(String answer) throws TelegramApiRequestException { - try { - ApiResponse result = OBJECT_MAPPER.readValue(answer, - new TypeReference>(){}); - if (result.getOk()) { - return result.getResult(); - } else { - throw new TelegramApiRequestException("Error exporting invite link", result); - } - } catch (IOException e) { - throw new TelegramApiRequestException("Unable to deserialize response", e); - } + return deserializeResponse(answer, String.class); } @Override diff --git a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/groupadministration/GetChat.java b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/groupadministration/GetChat.java index b5c650bc..06fafe24 100644 --- a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/groupadministration/GetChat.java +++ b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/groupadministration/GetChat.java @@ -1,7 +1,6 @@ package org.telegram.telegrambots.meta.api.methods.groupadministration; import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.core.type.TypeReference; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.EqualsAndHashCode; @@ -12,13 +11,10 @@ import lombok.Setter; import lombok.ToString; import lombok.experimental.Tolerate; import org.telegram.telegrambots.meta.api.methods.BotApiMethod; -import org.telegram.telegrambots.meta.api.objects.ApiResponse; import org.telegram.telegrambots.meta.api.objects.Chat; import org.telegram.telegrambots.meta.exceptions.TelegramApiRequestException; import org.telegram.telegrambots.meta.exceptions.TelegramApiValidationException; -import java.io.IOException; - /** * @author Ruben Bermudez * @version 1.0 @@ -52,17 +48,7 @@ public class GetChat extends BotApiMethod { @Override public Chat deserializeResponse(String answer) throws TelegramApiRequestException { - try { - ApiResponse result = OBJECT_MAPPER.readValue(answer, - new TypeReference>(){}); - if (result.getOk()) { - return result.getResult(); - } else { - throw new TelegramApiRequestException("Error getting chat", result); - } - } catch (IOException e) { - throw new TelegramApiRequestException("Unable to deserialize response", e); - } + return deserializeResponse(answer, Chat.class); } @Override diff --git a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/groupadministration/GetChatAdministrators.java b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/groupadministration/GetChatAdministrators.java index ba8ec459..f5b2e9c1 100644 --- a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/groupadministration/GetChatAdministrators.java +++ b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/groupadministration/GetChatAdministrators.java @@ -1,7 +1,6 @@ package org.telegram.telegrambots.meta.api.methods.groupadministration; import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.core.type.TypeReference; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.EqualsAndHashCode; @@ -12,12 +11,10 @@ import lombok.Setter; import lombok.ToString; import lombok.experimental.Tolerate; import org.telegram.telegrambots.meta.api.methods.BotApiMethod; -import org.telegram.telegrambots.meta.api.objects.ApiResponse; import org.telegram.telegrambots.meta.api.objects.chatmember.ChatMember; import org.telegram.telegrambots.meta.exceptions.TelegramApiRequestException; import org.telegram.telegrambots.meta.exceptions.TelegramApiValidationException; -import java.io.IOException; import java.util.ArrayList; /** @@ -57,17 +54,7 @@ public class GetChatAdministrators extends BotApiMethod> { @Override public ArrayList deserializeResponse(String answer) throws TelegramApiRequestException { - try { - ApiResponse> result = OBJECT_MAPPER.readValue(answer, - new TypeReference>>(){}); - if (result.getOk()) { - return result.getResult(); - } else { - throw new TelegramApiRequestException("Error getting chat administrators", result); - } - } catch (IOException e) { - throw new TelegramApiRequestException("Unable to deserialize response", e); - } + return deserializeResponseArray(answer, ChatMember.class); } @Override diff --git a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/groupadministration/GetChatMember.java b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/groupadministration/GetChatMember.java index 4d84c57c..283884ce 100644 --- a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/groupadministration/GetChatMember.java +++ b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/groupadministration/GetChatMember.java @@ -1,7 +1,6 @@ package org.telegram.telegrambots.meta.api.methods.groupadministration; import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.core.type.TypeReference; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.EqualsAndHashCode; @@ -12,13 +11,10 @@ import lombok.Setter; import lombok.ToString; import lombok.experimental.Tolerate; import org.telegram.telegrambots.meta.api.methods.BotApiMethod; -import org.telegram.telegrambots.meta.api.objects.ApiResponse; import org.telegram.telegrambots.meta.api.objects.chatmember.ChatMember; import org.telegram.telegrambots.meta.exceptions.TelegramApiRequestException; import org.telegram.telegrambots.meta.exceptions.TelegramApiValidationException; -import java.io.IOException; - /** * @author Ruben Bermudez * @version 1.0 @@ -57,17 +53,7 @@ public class GetChatMember extends BotApiMethod { @Override public ChatMember deserializeResponse(String answer) throws TelegramApiRequestException { - try { - ApiResponse result = OBJECT_MAPPER.readValue(answer, - new TypeReference>(){}); - if (result.getOk()) { - return result.getResult(); - } else { - throw new TelegramApiRequestException("Error getting chat member", result); - } - } catch (IOException e) { - throw new TelegramApiRequestException("Unable to deserialize response", e); - } + return deserializeResponse(answer, ChatMember.class); } @Override diff --git a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/groupadministration/GetChatMemberCount.java b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/groupadministration/GetChatMemberCount.java index 353da833..8f963947 100644 --- a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/groupadministration/GetChatMemberCount.java +++ b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/groupadministration/GetChatMemberCount.java @@ -1,7 +1,6 @@ package org.telegram.telegrambots.meta.api.methods.groupadministration; import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.core.type.TypeReference; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.EqualsAndHashCode; @@ -12,12 +11,9 @@ import lombok.Setter; import lombok.ToString; import lombok.experimental.Tolerate; import org.telegram.telegrambots.meta.api.methods.BotApiMethod; -import org.telegram.telegrambots.meta.api.objects.ApiResponse; import org.telegram.telegrambots.meta.exceptions.TelegramApiRequestException; import org.telegram.telegrambots.meta.exceptions.TelegramApiValidationException; -import java.io.IOException; - /** * @author Ruben Bermudez * @version 5.3 @@ -51,17 +47,7 @@ public class GetChatMemberCount extends BotApiMethod { @Override public Integer deserializeResponse(String answer) throws TelegramApiRequestException { - try { - ApiResponse result = OBJECT_MAPPER.readValue(answer, - new TypeReference>(){}); - if (result.getOk()) { - return result.getResult(); - } else { - throw new TelegramApiRequestException("Error getting chat members count", result); - } - } catch (IOException e) { - throw new TelegramApiRequestException("Unable to deserialize response", e); - } + return deserializeResponse(answer, Integer.class); } @Override diff --git a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/groupadministration/LeaveChat.java b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/groupadministration/LeaveChat.java index 882d3f40..41901ada 100644 --- a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/groupadministration/LeaveChat.java +++ b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/groupadministration/LeaveChat.java @@ -1,7 +1,6 @@ package org.telegram.telegrambots.meta.api.methods.groupadministration; import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.core.type.TypeReference; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.EqualsAndHashCode; @@ -11,13 +10,9 @@ import lombok.NonNull; import lombok.Setter; import lombok.ToString; import lombok.experimental.Tolerate; -import org.telegram.telegrambots.meta.api.methods.BotApiMethod; -import org.telegram.telegrambots.meta.api.objects.ApiResponse; -import org.telegram.telegrambots.meta.exceptions.TelegramApiRequestException; +import org.telegram.telegrambots.meta.api.methods.BotApiMethodBoolean; import org.telegram.telegrambots.meta.exceptions.TelegramApiValidationException; -import java.io.IOException; - /** * @author Ruben Bermudez * @version 1.0 @@ -30,7 +25,7 @@ import java.io.IOException; @NoArgsConstructor @AllArgsConstructor @Builder -public class LeaveChat extends BotApiMethod { +public class LeaveChat extends BotApiMethodBoolean { public static final String PATH = "leaveChat"; private static final String CHATID_FIELD = "chat_id"; @@ -49,21 +44,6 @@ public class LeaveChat extends BotApiMethod { return PATH; } - @Override - public Boolean deserializeResponse(String answer) throws TelegramApiRequestException { - try { - ApiResponse result = OBJECT_MAPPER.readValue(answer, - new TypeReference>(){}); - if (result.getOk()) { - return result.getResult(); - } else { - throw new TelegramApiRequestException("Error leaving chat", result); - } - } catch (IOException e) { - throw new TelegramApiRequestException("Unable to deserialize response", e); - } - } - @Override public void validate() throws TelegramApiValidationException { if (chatId.isEmpty()) { diff --git a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/groupadministration/PromoteChatMember.java b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/groupadministration/PromoteChatMember.java index 98e327e4..9fd38912 100644 --- a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/groupadministration/PromoteChatMember.java +++ b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/groupadministration/PromoteChatMember.java @@ -1,7 +1,6 @@ package org.telegram.telegrambots.meta.api.methods.groupadministration; import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.core.type.TypeReference; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.EqualsAndHashCode; @@ -12,13 +11,9 @@ import lombok.RequiredArgsConstructor; import lombok.Setter; import lombok.ToString; import lombok.experimental.Tolerate; -import org.telegram.telegrambots.meta.api.methods.BotApiMethod; -import org.telegram.telegrambots.meta.api.objects.ApiResponse; -import org.telegram.telegrambots.meta.exceptions.TelegramApiRequestException; +import org.telegram.telegrambots.meta.api.methods.BotApiMethodBoolean; import org.telegram.telegrambots.meta.exceptions.TelegramApiValidationException; -import java.io.IOException; - /** * @author Ruben Bermudez * @version 3.1 @@ -35,7 +30,7 @@ import java.io.IOException; @NoArgsConstructor @AllArgsConstructor @Builder -public class PromoteChatMember extends BotApiMethod { +public class PromoteChatMember extends BotApiMethodBoolean { public static final String PATH = "promoteChatMember"; private static final String CHATID_FIELD = "chat_id"; @@ -103,22 +98,6 @@ public class PromoteChatMember extends BotApiMethod { return PATH; } - @Override - public Boolean deserializeResponse(String answer) throws TelegramApiRequestException { - try { - ApiResponse result = OBJECT_MAPPER.readValue(answer, - new TypeReference>() { - }); - if (result.getOk()) { - return result.getResult(); - } else { - throw new TelegramApiRequestException("Error promoting chat member", result); - } - } catch (IOException e) { - throw new TelegramApiRequestException("Unable to deserialize response", e); - } - } - @Override public void validate() throws TelegramApiValidationException { if (chatId.isEmpty()) { diff --git a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/groupadministration/RestrictChatMember.java b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/groupadministration/RestrictChatMember.java index e6e132cd..49c83c04 100644 --- a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/groupadministration/RestrictChatMember.java +++ b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/groupadministration/RestrictChatMember.java @@ -2,7 +2,6 @@ package org.telegram.telegrambots.meta.api.methods.groupadministration; import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.core.type.TypeReference; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.EqualsAndHashCode; @@ -13,13 +12,10 @@ import lombok.RequiredArgsConstructor; import lombok.Setter; import lombok.ToString; import lombok.experimental.Tolerate; -import org.telegram.telegrambots.meta.api.methods.BotApiMethod; -import org.telegram.telegrambots.meta.api.objects.ApiResponse; +import org.telegram.telegrambots.meta.api.methods.BotApiMethodBoolean; import org.telegram.telegrambots.meta.api.objects.ChatPermissions; -import org.telegram.telegrambots.meta.exceptions.TelegramApiRequestException; import org.telegram.telegrambots.meta.exceptions.TelegramApiValidationException; -import java.io.IOException; import java.time.Duration; import java.time.Instant; import java.time.ZonedDateTime; @@ -41,7 +37,7 @@ import java.time.ZonedDateTime; @RequiredArgsConstructor @AllArgsConstructor @Builder -public class RestrictChatMember extends BotApiMethod { +public class RestrictChatMember extends BotApiMethodBoolean { public static final String PATH = "restrictchatmember"; private static final String CHATID_FIELD = "chat_id"; @@ -96,21 +92,6 @@ public class RestrictChatMember extends BotApiMethod { return PATH; } - @Override - public Boolean deserializeResponse(String answer) throws TelegramApiRequestException { - try { - ApiResponse result = OBJECT_MAPPER.readValue(answer, - new TypeReference>(){}); - if (result.getOk()) { - return result.getResult(); - } else { - throw new TelegramApiRequestException("Error restricting chat member", result); - } - } catch (IOException e) { - throw new TelegramApiRequestException("Unable to deserialize response", e); - } - } - @Override public void validate() throws TelegramApiValidationException { if (chatId.isEmpty()) { diff --git a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/groupadministration/RevokeChatInviteLink.java b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/groupadministration/RevokeChatInviteLink.java index bab37435..aa59a121 100644 --- a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/groupadministration/RevokeChatInviteLink.java +++ b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/groupadministration/RevokeChatInviteLink.java @@ -1,7 +1,6 @@ package org.telegram.telegrambots.meta.api.methods.groupadministration; import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.core.type.TypeReference; import com.google.common.base.Strings; import lombok.AllArgsConstructor; import lombok.Builder; @@ -13,13 +12,10 @@ import lombok.Setter; import lombok.ToString; import lombok.experimental.Tolerate; import org.telegram.telegrambots.meta.api.methods.BotApiMethod; -import org.telegram.telegrambots.meta.api.objects.ApiResponse; import org.telegram.telegrambots.meta.api.objects.ChatInviteLink; import org.telegram.telegrambots.meta.exceptions.TelegramApiRequestException; import org.telegram.telegrambots.meta.exceptions.TelegramApiValidationException; -import java.io.IOException; - /** * @author Ruben Bermudez * @version 5.1 @@ -64,17 +60,7 @@ public class RevokeChatInviteLink extends BotApiMethod { @Override public ChatInviteLink deserializeResponse(String answer) throws TelegramApiRequestException { - try { - ApiResponse result = OBJECT_MAPPER.readValue(answer, - new TypeReference>(){}); - if (result.getOk()) { - return result.getResult(); - } else { - throw new TelegramApiRequestException("Error creating invite link", result); - } - } catch (IOException e) { - throw new TelegramApiRequestException("Unable to deserialize response", e); - } + return deserializeResponse(answer, ChatInviteLink.class); } @Override diff --git a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/groupadministration/SetChatAdministratorCustomTitle.java b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/groupadministration/SetChatAdministratorCustomTitle.java index fedd9080..c59a1906 100644 --- a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/groupadministration/SetChatAdministratorCustomTitle.java +++ b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/groupadministration/SetChatAdministratorCustomTitle.java @@ -1,7 +1,6 @@ package org.telegram.telegrambots.meta.api.methods.groupadministration; import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.core.type.TypeReference; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.EqualsAndHashCode; @@ -11,13 +10,9 @@ import lombok.NonNull; import lombok.Setter; import lombok.ToString; import lombok.experimental.Tolerate; -import org.telegram.telegrambots.meta.api.methods.BotApiMethod; -import org.telegram.telegrambots.meta.api.objects.ApiResponse; -import org.telegram.telegrambots.meta.exceptions.TelegramApiRequestException; +import org.telegram.telegrambots.meta.api.methods.BotApiMethodBoolean; import org.telegram.telegrambots.meta.exceptions.TelegramApiValidationException; -import java.io.IOException; - /** * @author Ruben Bermudez * @version 4.5 @@ -31,7 +26,7 @@ import java.io.IOException; @NoArgsConstructor @AllArgsConstructor @Builder -public class SetChatAdministratorCustomTitle extends BotApiMethod { +public class SetChatAdministratorCustomTitle extends BotApiMethodBoolean { public static final String PATH = "setChatAdministratorCustomTitle"; private static final String CHATID_FIELD = "chat_id"; @@ -58,21 +53,6 @@ public class SetChatAdministratorCustomTitle extends BotApiMethod { return PATH; } - @Override - public Boolean deserializeResponse(String answer) throws TelegramApiRequestException { - try { - ApiResponse result = OBJECT_MAPPER.readValue(answer, - new TypeReference>(){}); - if (result.getOk()) { - return result.getResult(); - } else { - throw new TelegramApiRequestException("Error setting chat description", result); - } - } catch (IOException e) { - throw new TelegramApiRequestException("Unable to deserialize response", e); - } - } - @Override public void validate() throws TelegramApiValidationException { if (chatId.isEmpty()) { diff --git a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/groupadministration/SetChatDescription.java b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/groupadministration/SetChatDescription.java index 9376a66c..d6143877 100644 --- a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/groupadministration/SetChatDescription.java +++ b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/groupadministration/SetChatDescription.java @@ -1,7 +1,6 @@ package org.telegram.telegrambots.meta.api.methods.groupadministration; import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.core.type.TypeReference; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.EqualsAndHashCode; @@ -12,13 +11,9 @@ import lombok.RequiredArgsConstructor; import lombok.Setter; import lombok.ToString; import lombok.experimental.Tolerate; -import org.telegram.telegrambots.meta.api.methods.BotApiMethod; -import org.telegram.telegrambots.meta.api.objects.ApiResponse; -import org.telegram.telegrambots.meta.exceptions.TelegramApiRequestException; +import org.telegram.telegrambots.meta.api.methods.BotApiMethodBoolean; import org.telegram.telegrambots.meta.exceptions.TelegramApiValidationException; -import java.io.IOException; - /** * @author Ruben Bermudez * @version 3.1 @@ -34,7 +29,7 @@ import java.io.IOException; @RequiredArgsConstructor @AllArgsConstructor @Builder -public class SetChatDescription extends BotApiMethod { +public class SetChatDescription extends BotApiMethodBoolean { public static final String PATH = "setChatDescription"; private static final String CHATID_FIELD = "chat_id"; @@ -56,21 +51,6 @@ public class SetChatDescription extends BotApiMethod { return PATH; } - @Override - public Boolean deserializeResponse(String answer) throws TelegramApiRequestException { - try { - ApiResponse result = OBJECT_MAPPER.readValue(answer, - new TypeReference>(){}); - if (result.getOk()) { - return result.getResult(); - } else { - throw new TelegramApiRequestException("Error setting chat description", result); - } - } catch (IOException e) { - throw new TelegramApiRequestException("Unable to deserialize response", e); - } - } - @Override public void validate() throws TelegramApiValidationException { if (chatId.isEmpty()) { diff --git a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/groupadministration/SetChatPermissions.java b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/groupadministration/SetChatPermissions.java index bde56e81..c82220fc 100644 --- a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/groupadministration/SetChatPermissions.java +++ b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/groupadministration/SetChatPermissions.java @@ -1,7 +1,6 @@ package org.telegram.telegrambots.meta.api.methods.groupadministration; import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.core.type.TypeReference; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.EqualsAndHashCode; @@ -11,14 +10,10 @@ import lombok.NonNull; import lombok.Setter; import lombok.ToString; import lombok.experimental.Tolerate; -import org.telegram.telegrambots.meta.api.methods.BotApiMethod; -import org.telegram.telegrambots.meta.api.objects.ApiResponse; +import org.telegram.telegrambots.meta.api.methods.BotApiMethodBoolean; import org.telegram.telegrambots.meta.api.objects.ChatPermissions; -import org.telegram.telegrambots.meta.exceptions.TelegramApiRequestException; import org.telegram.telegrambots.meta.exceptions.TelegramApiValidationException; -import java.io.IOException; - /** * @author Ruben Bermudez * @version 4.4 @@ -33,7 +28,7 @@ import java.io.IOException; @NoArgsConstructor @AllArgsConstructor @Builder -public class SetChatPermissions extends BotApiMethod { +public class SetChatPermissions extends BotApiMethodBoolean { public static final String PATH = "setChatPermissions"; private static final String CHAT_ID_FIELD = "chat_id"; @@ -56,21 +51,6 @@ public class SetChatPermissions extends BotApiMethod { return PATH; } - @Override - public Boolean deserializeResponse(String answer) throws TelegramApiRequestException { - try { - ApiResponse result = OBJECT_MAPPER.readValue(answer, - new TypeReference>(){}); - if (result.getOk()) { - return result.getResult(); - } else { - throw new TelegramApiRequestException("Error setting chat description", result); - } - } catch (IOException e) { - throw new TelegramApiRequestException("Unable to deserialize response", e); - } - } - @Override public void validate() throws TelegramApiValidationException { if (chatId.isEmpty()) { diff --git a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/groupadministration/SetChatPhoto.java b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/groupadministration/SetChatPhoto.java index 34acf893..69db04ec 100644 --- a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/groupadministration/SetChatPhoto.java +++ b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/groupadministration/SetChatPhoto.java @@ -1,6 +1,5 @@ package org.telegram.telegrambots.meta.api.methods.groupadministration; -import com.fasterxml.jackson.core.type.TypeReference; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.EqualsAndHashCode; @@ -11,13 +10,10 @@ 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.ApiResponse; import org.telegram.telegrambots.meta.api.objects.InputFile; import org.telegram.telegrambots.meta.exceptions.TelegramApiRequestException; import org.telegram.telegrambots.meta.exceptions.TelegramApiValidationException; -import java.io.IOException; - /** * @author Ruben Bermudez * @version 3.1 @@ -52,17 +48,7 @@ public class SetChatPhoto extends PartialBotApiMethod { @Override public Boolean deserializeResponse(String answer) throws TelegramApiRequestException { - try { - ApiResponse result = OBJECT_MAPPER.readValue(answer, - new TypeReference>(){}); - if (result.getOk()) { - return result.getResult(); - } else { - throw new TelegramApiRequestException("Error setting chat photo", result); - } - } catch (IOException e) { - throw new TelegramApiRequestException("Unable to deserialize response", e); - } + return deserializeResponse(answer, Boolean.class); } @Override diff --git a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/groupadministration/SetChatStickerSet.java b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/groupadministration/SetChatStickerSet.java index 62563cab..5fc75bc2 100644 --- a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/groupadministration/SetChatStickerSet.java +++ b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/groupadministration/SetChatStickerSet.java @@ -1,7 +1,6 @@ package org.telegram.telegrambots.meta.api.methods.groupadministration; import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.core.type.TypeReference; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.EqualsAndHashCode; @@ -11,13 +10,9 @@ import lombok.NonNull; import lombok.Setter; import lombok.ToString; import lombok.experimental.Tolerate; -import org.telegram.telegrambots.meta.api.methods.BotApiMethod; -import org.telegram.telegrambots.meta.api.objects.ApiResponse; -import org.telegram.telegrambots.meta.exceptions.TelegramApiRequestException; +import org.telegram.telegrambots.meta.api.methods.BotApiMethodBoolean; import org.telegram.telegrambots.meta.exceptions.TelegramApiValidationException; -import java.io.IOException; - /** * @author Ruben Bermudez * @version 1.0 @@ -33,7 +28,7 @@ import java.io.IOException; @NoArgsConstructor @AllArgsConstructor @Builder -public class SetChatStickerSet extends BotApiMethod { +public class SetChatStickerSet extends BotApiMethodBoolean { public static final String PATH = "setChatStickerSet"; private static final String CHATID_FIELD = "chat_id"; @@ -56,21 +51,6 @@ public class SetChatStickerSet extends BotApiMethod { return PATH; } - @Override - public Boolean deserializeResponse(String answer) throws TelegramApiRequestException { - try { - ApiResponse result = OBJECT_MAPPER.readValue(answer, - new TypeReference>(){}); - if (result.getOk()) { - return result.getResult(); - } else { - throw new TelegramApiRequestException("Error setting chat sticker set", result); - } - } catch (IOException e) { - throw new TelegramApiRequestException("Unable to deserialize response", e); - } - } - @Override public void validate() throws TelegramApiValidationException { if (chatId.isEmpty()) { diff --git a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/groupadministration/SetChatTitle.java b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/groupadministration/SetChatTitle.java index 105314b7..808b251f 100644 --- a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/groupadministration/SetChatTitle.java +++ b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/groupadministration/SetChatTitle.java @@ -1,7 +1,6 @@ package org.telegram.telegrambots.meta.api.methods.groupadministration; import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.core.type.TypeReference; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.EqualsAndHashCode; @@ -11,13 +10,9 @@ import lombok.NonNull; import lombok.Setter; import lombok.ToString; import lombok.experimental.Tolerate; -import org.telegram.telegrambots.meta.api.methods.BotApiMethod; -import org.telegram.telegrambots.meta.api.objects.ApiResponse; -import org.telegram.telegrambots.meta.exceptions.TelegramApiRequestException; +import org.telegram.telegrambots.meta.api.methods.BotApiMethodBoolean; import org.telegram.telegrambots.meta.exceptions.TelegramApiValidationException; -import java.io.IOException; - /** * @author Ruben Bermudez * @version 3.1 @@ -34,7 +29,7 @@ import java.io.IOException; @NoArgsConstructor @AllArgsConstructor @Builder -public class SetChatTitle extends BotApiMethod { +public class SetChatTitle extends BotApiMethodBoolean { public static final String PATH = "setChatTitle"; private static final String CHATID_FIELD = "chat_id"; @@ -57,21 +52,6 @@ public class SetChatTitle extends BotApiMethod { return PATH; } - @Override - public Boolean deserializeResponse(String answer) throws TelegramApiRequestException { - try { - ApiResponse result = OBJECT_MAPPER.readValue(answer, - new TypeReference>(){}); - if (result.getOk()) { - return result.getResult(); - } else { - throw new TelegramApiRequestException("Error setting chat title", result); - } - } catch (IOException e) { - throw new TelegramApiRequestException("Unable to deserialize response", e); - } - } - @Override public void validate() throws TelegramApiValidationException { if (chatId.isEmpty()) { diff --git a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/groupadministration/UnbanChatMember.java b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/groupadministration/UnbanChatMember.java index 96a950d1..63b77d4a 100644 --- a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/groupadministration/UnbanChatMember.java +++ b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/groupadministration/UnbanChatMember.java @@ -1,7 +1,6 @@ package org.telegram.telegrambots.meta.api.methods.groupadministration; import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.core.type.TypeReference; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.EqualsAndHashCode; @@ -12,13 +11,9 @@ import lombok.RequiredArgsConstructor; import lombok.Setter; import lombok.ToString; import lombok.experimental.Tolerate; -import org.telegram.telegrambots.meta.api.methods.BotApiMethod; -import org.telegram.telegrambots.meta.api.objects.ApiResponse; -import org.telegram.telegrambots.meta.exceptions.TelegramApiRequestException; +import org.telegram.telegrambots.meta.api.methods.BotApiMethodBoolean; import org.telegram.telegrambots.meta.exceptions.TelegramApiValidationException; -import java.io.IOException; - /** * @author Ruben Bermudez * @version 1.0 @@ -39,7 +34,7 @@ import java.io.IOException; @NoArgsConstructor @AllArgsConstructor @Builder -public class UnbanChatMember extends BotApiMethod { +public class UnbanChatMember extends BotApiMethodBoolean { public static final String PATH = "unbanchatmember"; private static final String CHATID_FIELD = "chat_id"; @@ -65,21 +60,6 @@ public class UnbanChatMember extends BotApiMethod { return PATH; } - @Override - public Boolean deserializeResponse(String answer) throws TelegramApiRequestException { - try { - ApiResponse result = OBJECT_MAPPER.readValue(answer, - new TypeReference>(){}); - if (result.getOk()) { - return result.getResult(); - } else { - throw new TelegramApiRequestException("Error unbanning chat member", result); - } - } catch (IOException e) { - throw new TelegramApiRequestException("Unable to deserialize response", e); - } - } - @Override public void validate() throws TelegramApiValidationException { if (chatId.isEmpty()) { diff --git a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/groupadministration/UnbanChatSenderChat.java b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/groupadministration/UnbanChatSenderChat.java index 4d3bb4e1..db0e8f57 100644 --- a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/groupadministration/UnbanChatSenderChat.java +++ b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/groupadministration/UnbanChatSenderChat.java @@ -1,7 +1,6 @@ package org.telegram.telegrambots.meta.api.methods.groupadministration; import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.core.type.TypeReference; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.EqualsAndHashCode; @@ -11,13 +10,9 @@ import lombok.NonNull; import lombok.Setter; import lombok.ToString; import lombok.experimental.Tolerate; -import org.telegram.telegrambots.meta.api.methods.BotApiMethod; -import org.telegram.telegrambots.meta.api.objects.ApiResponse; -import org.telegram.telegrambots.meta.exceptions.TelegramApiRequestException; +import org.telegram.telegrambots.meta.api.methods.BotApiMethodBoolean; import org.telegram.telegrambots.meta.exceptions.TelegramApiValidationException; -import java.io.IOException; - /** * @author Ruben Bermudez * @version 5.5 @@ -33,7 +28,7 @@ import java.io.IOException; @NoArgsConstructor @AllArgsConstructor @Builder -public class UnbanChatSenderChat extends BotApiMethod { +public class UnbanChatSenderChat extends BotApiMethodBoolean { public static final String PATH = "unbanChatSenderChat"; private static final String CHATID_FIELD = "chat_id"; @@ -56,21 +51,6 @@ public class UnbanChatSenderChat extends BotApiMethod { return PATH; } - @Override - public Boolean deserializeResponse(String answer) throws TelegramApiRequestException { - try { - ApiResponse result = OBJECT_MAPPER.readValue(answer, - new TypeReference>(){}); - if (result.getOk()) { - return result.getResult(); - } else { - throw new TelegramApiRequestException("Error unbanning chat sender", result); - } - } catch (IOException e) { - throw new TelegramApiRequestException("Unable to deserialize response", e); - } - } - @Override public void validate() throws TelegramApiValidationException { if (chatId.isEmpty()) { diff --git a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/menubutton/GetChatMenuButton.java b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/menubutton/GetChatMenuButton.java index 6c7bd220..cf709031 100644 --- a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/menubutton/GetChatMenuButton.java +++ b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/menubutton/GetChatMenuButton.java @@ -1,7 +1,6 @@ package org.telegram.telegrambots.meta.api.methods.menubutton; import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.core.type.TypeReference; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.EqualsAndHashCode; @@ -12,12 +11,8 @@ import lombok.Setter; import lombok.ToString; import lombok.experimental.Tolerate; import org.telegram.telegrambots.meta.api.methods.BotApiMethod; -import org.telegram.telegrambots.meta.api.objects.ApiResponse; import org.telegram.telegrambots.meta.api.objects.menubutton.MenuButton; import org.telegram.telegrambots.meta.exceptions.TelegramApiRequestException; -import org.telegram.telegrambots.meta.exceptions.TelegramApiValidationException; - -import java.io.IOException; /** * @author Ruben Bermudez @@ -31,8 +26,8 @@ import java.io.IOException; @Getter @Setter @ToString -@NoArgsConstructor @AllArgsConstructor +@NoArgsConstructor @Builder public class GetChatMenuButton extends BotApiMethod { public static final String PATH = "getChatMenuButton"; @@ -52,11 +47,6 @@ public class GetChatMenuButton extends BotApiMethod { this.chatId = chatId.toString(); } - @Override - public void validate() throws TelegramApiValidationException { - - } - @Override public String getMethod() { return PATH; @@ -64,17 +54,7 @@ public class GetChatMenuButton extends BotApiMethod { @Override public MenuButton deserializeResponse(String answer) throws TelegramApiRequestException { - try { - ApiResponse result = OBJECT_MAPPER.readValue(answer, - new TypeReference>(){}); - if (result.getOk()) { - return result.getResult(); - } else { - throw new TelegramApiRequestException("Error getting chat menu button query", result); - } - } catch (IOException e) { - throw new TelegramApiRequestException("Unable to deserialize response", e); - } + return deserializeResponse(answer, MenuButton.class); } public static class GetChatMenuButtonBuilder { diff --git a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/menubutton/SetChatMenuButton.java b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/menubutton/SetChatMenuButton.java index a3281a26..969ab6ae 100644 --- a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/menubutton/SetChatMenuButton.java +++ b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/menubutton/SetChatMenuButton.java @@ -1,7 +1,6 @@ package org.telegram.telegrambots.meta.api.methods.menubutton; import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.core.type.TypeReference; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.EqualsAndHashCode; @@ -11,14 +10,10 @@ import lombok.NonNull; import lombok.Setter; import lombok.ToString; import lombok.experimental.Tolerate; -import org.telegram.telegrambots.meta.api.methods.BotApiMethod; -import org.telegram.telegrambots.meta.api.objects.ApiResponse; +import org.telegram.telegrambots.meta.api.methods.BotApiMethodBoolean; import org.telegram.telegrambots.meta.api.objects.menubutton.MenuButton; -import org.telegram.telegrambots.meta.exceptions.TelegramApiRequestException; import org.telegram.telegrambots.meta.exceptions.TelegramApiValidationException; -import java.io.IOException; - /** * @author Ruben Bermudez * @version 6.0 @@ -34,7 +29,7 @@ import java.io.IOException; @NoArgsConstructor @AllArgsConstructor @Builder -public class SetChatMenuButton extends BotApiMethod { +public class SetChatMenuButton extends BotApiMethodBoolean { public static final String PATH = "setChatMenuButton"; private static final String CHATID_FIELD = "chat_id"; @@ -72,21 +67,6 @@ public class SetChatMenuButton extends BotApiMethod { return PATH; } - @Override - public Boolean deserializeResponse(String answer) throws TelegramApiRequestException { - try { - ApiResponse result = OBJECT_MAPPER.readValue(answer, - new TypeReference>(){}); - if (result.getOk()) { - return result.getResult(); - } else { - throw new TelegramApiRequestException("Error setting chat menu button query", result); - } - } catch (IOException e) { - throw new TelegramApiRequestException("Unable to deserialize response", e); - } - } - public static class SetChatMenuButtonBuilder { @Tolerate diff --git a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/pinnedmessages/PinChatMessage.java b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/pinnedmessages/PinChatMessage.java index 2743447b..163fdb63 100644 --- a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/pinnedmessages/PinChatMessage.java +++ b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/pinnedmessages/PinChatMessage.java @@ -1,7 +1,6 @@ package org.telegram.telegrambots.meta.api.methods.pinnedmessages; import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.core.type.TypeReference; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.EqualsAndHashCode; @@ -12,13 +11,9 @@ import lombok.RequiredArgsConstructor; import lombok.Setter; import lombok.ToString; import lombok.experimental.Tolerate; -import org.telegram.telegrambots.meta.api.methods.BotApiMethod; -import org.telegram.telegrambots.meta.api.objects.ApiResponse; -import org.telegram.telegrambots.meta.exceptions.TelegramApiRequestException; +import org.telegram.telegrambots.meta.api.methods.BotApiMethodBoolean; import org.telegram.telegrambots.meta.exceptions.TelegramApiValidationException; -import java.io.IOException; - /** * @author Ruben Bermudez * @version 3.1 @@ -36,7 +31,7 @@ import java.io.IOException; @NoArgsConstructor @AllArgsConstructor @Builder -public class PinChatMessage extends BotApiMethod { +public class PinChatMessage extends BotApiMethodBoolean { public static final String PATH = "pinChatMessage"; private static final String CHATID_FIELD = "chat_id"; @@ -66,21 +61,6 @@ public class PinChatMessage extends BotApiMethod { return PATH; } - @Override - public Boolean deserializeResponse(String answer) throws TelegramApiRequestException { - try { - ApiResponse result = OBJECT_MAPPER.readValue(answer, - new TypeReference>(){}); - if (result.getOk()) { - return result.getResult(); - } else { - throw new TelegramApiRequestException("Error pinning chat message", result); - } - } catch (IOException e) { - throw new TelegramApiRequestException("Unable to deserialize response", e); - } - } - @Override public void validate() throws TelegramApiValidationException { if (chatId.isEmpty()) { diff --git a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/pinnedmessages/UnpinAllChatMessages.java b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/pinnedmessages/UnpinAllChatMessages.java index 5e8d964a..c646dc2c 100644 --- a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/pinnedmessages/UnpinAllChatMessages.java +++ b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/pinnedmessages/UnpinAllChatMessages.java @@ -1,7 +1,6 @@ package org.telegram.telegrambots.meta.api.methods.pinnedmessages; import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.core.type.TypeReference; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.EqualsAndHashCode; @@ -11,13 +10,9 @@ import lombok.NonNull; import lombok.Setter; import lombok.ToString; import lombok.experimental.Tolerate; -import org.telegram.telegrambots.meta.api.methods.BotApiMethod; -import org.telegram.telegrambots.meta.api.objects.ApiResponse; -import org.telegram.telegrambots.meta.exceptions.TelegramApiRequestException; +import org.telegram.telegrambots.meta.api.methods.BotApiMethodBoolean; import org.telegram.telegrambots.meta.exceptions.TelegramApiValidationException; -import java.io.IOException; - /** * @author Ruben Bermudez * @version 3.1 @@ -35,7 +30,7 @@ import java.io.IOException; @NoArgsConstructor @AllArgsConstructor @Builder -public class UnpinAllChatMessages extends BotApiMethod { +public class UnpinAllChatMessages extends BotApiMethodBoolean { public static final String PATH = "unpinAllChatMessages"; private static final String CHATID_FIELD = "chat_id"; @@ -54,21 +49,6 @@ public class UnpinAllChatMessages extends BotApiMethod { return PATH; } - @Override - public Boolean deserializeResponse(String answer) throws TelegramApiRequestException { - try { - ApiResponse result = OBJECT_MAPPER.readValue(answer, - new TypeReference>(){}); - if (result.getOk()) { - return result.getResult(); - } else { - throw new TelegramApiRequestException("Error unpinning chat message", result); - } - } catch (IOException e) { - throw new TelegramApiRequestException("Unable to deserialize response", e); - } - } - @Override public void validate() throws TelegramApiValidationException { if (chatId.isEmpty()) { diff --git a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/pinnedmessages/UnpinChatMessage.java b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/pinnedmessages/UnpinChatMessage.java index 81b157d6..b2fa91f3 100644 --- a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/pinnedmessages/UnpinChatMessage.java +++ b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/pinnedmessages/UnpinChatMessage.java @@ -1,7 +1,6 @@ package org.telegram.telegrambots.meta.api.methods.pinnedmessages; import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.core.type.TypeReference; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.EqualsAndHashCode; @@ -12,13 +11,9 @@ import lombok.RequiredArgsConstructor; import lombok.Setter; import lombok.ToString; import lombok.experimental.Tolerate; -import org.telegram.telegrambots.meta.api.methods.BotApiMethod; -import org.telegram.telegrambots.meta.api.objects.ApiResponse; -import org.telegram.telegrambots.meta.exceptions.TelegramApiRequestException; +import org.telegram.telegrambots.meta.api.methods.BotApiMethodBoolean; import org.telegram.telegrambots.meta.exceptions.TelegramApiValidationException; -import java.io.IOException; - /** * @author Ruben Bermudez * @version 3.1 @@ -37,7 +32,7 @@ import java.io.IOException; @NoArgsConstructor @AllArgsConstructor @Builder -public class UnpinChatMessage extends BotApiMethod { +public class UnpinChatMessage extends BotApiMethodBoolean { public static final String PATH = "unpinChatMessage"; private static final String CHATID_FIELD = "chat_id"; @@ -65,21 +60,6 @@ public class UnpinChatMessage extends BotApiMethod { return PATH; } - @Override - public Boolean deserializeResponse(String answer) throws TelegramApiRequestException { - try { - ApiResponse result = OBJECT_MAPPER.readValue(answer, - new TypeReference>(){}); - if (result.getOk()) { - return result.getResult(); - } else { - throw new TelegramApiRequestException("Error unpinning chat message", result); - } - } catch (IOException e) { - throw new TelegramApiRequestException("Unable to deserialize response", e); - } - } - @Override public void validate() throws TelegramApiValidationException { if (chatId.isEmpty()) { diff --git a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/polls/SendPoll.java b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/polls/SendPoll.java index f59c8c06..524d71f8 100644 --- a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/polls/SendPoll.java +++ b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/polls/SendPoll.java @@ -1,7 +1,6 @@ package org.telegram.telegrambots.meta.api.methods.polls; import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import lombok.AllArgsConstructor; import lombok.Builder; @@ -14,15 +13,11 @@ import lombok.Setter; import lombok.Singular; import lombok.ToString; import lombok.experimental.Tolerate; -import org.telegram.telegrambots.meta.api.methods.BotApiMethod; -import org.telegram.telegrambots.meta.api.objects.ApiResponse; -import org.telegram.telegrambots.meta.api.objects.Message; +import org.telegram.telegrambots.meta.api.methods.BotApiMethodMessage; import org.telegram.telegrambots.meta.api.objects.MessageEntity; import org.telegram.telegrambots.meta.api.objects.replykeyboard.ReplyKeyboard; -import org.telegram.telegrambots.meta.exceptions.TelegramApiRequestException; import org.telegram.telegrambots.meta.exceptions.TelegramApiValidationException; -import java.io.IOException; import java.util.List; /** @@ -41,7 +36,7 @@ import java.util.List; @NoArgsConstructor @AllArgsConstructor @Builder -public class SendPoll extends BotApiMethod { +public class SendPoll extends BotApiMethodMessage { public static final String PATH = "sendPoll"; private static final String CHATID_FIELD = "chat_id"; @@ -128,22 +123,6 @@ public class SendPoll extends BotApiMethod { return PATH; } - @Override - public Message deserializeResponse(String answer) throws TelegramApiRequestException { - try { - ApiResponse result = OBJECT_MAPPER.readValue(answer, - new TypeReference>() { - }); - if (result.getOk()) { - return result.getResult(); - } else { - throw new TelegramApiRequestException("Error sending poll", result); - } - } catch (IOException e) { - throw new TelegramApiRequestException("Unable to deserialize response", e); - } - } - @Override public void validate() throws TelegramApiValidationException { if (chatId.isEmpty()) { diff --git a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/polls/StopPoll.java b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/polls/StopPoll.java index 247b7134..1929920e 100644 --- a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/polls/StopPoll.java +++ b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/polls/StopPoll.java @@ -1,7 +1,6 @@ package org.telegram.telegrambots.meta.api.methods.polls; import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.core.type.TypeReference; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.EqualsAndHashCode; @@ -12,13 +11,10 @@ import lombok.Setter; import lombok.ToString; import lombok.experimental.Tolerate; import org.telegram.telegrambots.meta.api.methods.BotApiMethod; -import org.telegram.telegrambots.meta.api.objects.ApiResponse; import org.telegram.telegrambots.meta.api.objects.polls.Poll; import org.telegram.telegrambots.meta.exceptions.TelegramApiRequestException; import org.telegram.telegrambots.meta.exceptions.TelegramApiValidationException; -import java.io.IOException; - /** * @author Ruben Bermudez * @version 1.0 @@ -58,17 +54,7 @@ public class StopPoll extends BotApiMethod { @Override public Poll deserializeResponse(String answer) throws TelegramApiRequestException { - try { - ApiResponse result = OBJECT_MAPPER.readValue(answer, - new TypeReference>(){}); - if (result.getOk()) { - return result.getResult(); - } else { - throw new TelegramApiRequestException("Error stopping poll", result); - } - } catch (IOException e) { - throw new TelegramApiRequestException("Unable to deserialize response", e); - } + return deserializeResponse(answer, Poll.class); } @Override diff --git a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/send/SendAnimation.java b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/send/SendAnimation.java index 2738d578..da436765 100644 --- a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/send/SendAnimation.java +++ b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/send/SendAnimation.java @@ -1,6 +1,5 @@ package org.telegram.telegrambots.meta.api.methods.send; -import com.fasterxml.jackson.core.type.TypeReference; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.EqualsAndHashCode; @@ -13,7 +12,6 @@ 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.ApiResponse; import org.telegram.telegrambots.meta.api.objects.InputFile; import org.telegram.telegrambots.meta.api.objects.Message; import org.telegram.telegrambots.meta.api.objects.MessageEntity; @@ -21,7 +19,6 @@ import org.telegram.telegrambots.meta.api.objects.replykeyboard.ReplyKeyboard; import org.telegram.telegrambots.meta.exceptions.TelegramApiRequestException; import org.telegram.telegrambots.meta.exceptions.TelegramApiValidationException; -import java.io.IOException; import java.util.List; /** @@ -104,17 +101,7 @@ public class SendAnimation extends PartialBotApiMethod { @Override public Message deserializeResponse(String answer) throws TelegramApiRequestException { - try { - ApiResponse result = OBJECT_MAPPER.readValue(answer, - new TypeReference>(){}); - if (result.getOk()) { - return result.getResult(); - } else { - throw new TelegramApiRequestException("Error sending animation", result); - } - } catch (IOException e) { - throw new TelegramApiRequestException("Unable to deserialize response", e); - } + return deserializeResponse(answer, Message.class); } @Override diff --git a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/send/SendAudio.java b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/send/SendAudio.java index 505156ae..f31689f3 100644 --- a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/send/SendAudio.java +++ b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/send/SendAudio.java @@ -1,6 +1,5 @@ package org.telegram.telegrambots.meta.api.methods.send; -import com.fasterxml.jackson.core.type.TypeReference; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.EqualsAndHashCode; @@ -13,7 +12,6 @@ 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.ApiResponse; import org.telegram.telegrambots.meta.api.objects.InputFile; import org.telegram.telegrambots.meta.api.objects.Message; import org.telegram.telegrambots.meta.api.objects.MessageEntity; @@ -21,7 +19,6 @@ import org.telegram.telegrambots.meta.api.objects.replykeyboard.ReplyKeyboard; import org.telegram.telegrambots.meta.exceptions.TelegramApiRequestException; import org.telegram.telegrambots.meta.exceptions.TelegramApiValidationException; -import java.io.IOException; import java.util.List; /** @@ -100,17 +97,7 @@ public class SendAudio extends PartialBotApiMethod { @Override public Message deserializeResponse(String answer) throws TelegramApiRequestException { - try { - ApiResponse result = OBJECT_MAPPER.readValue(answer, - new TypeReference>(){}); - if (result.getOk()) { - return result.getResult(); - } else { - throw new TelegramApiRequestException("Error sending audio", result); - } - } catch (IOException e) { - throw new TelegramApiRequestException("Unable to deserialize response", e); - } + return deserializeResponse(answer, Message.class); } @Override diff --git a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/send/SendChatAction.java b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/send/SendChatAction.java index 019ff19b..7c3f8de5 100644 --- a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/send/SendChatAction.java +++ b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/send/SendChatAction.java @@ -2,7 +2,6 @@ package org.telegram.telegrambots.meta.api.methods.send; import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.core.type.TypeReference; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.EqualsAndHashCode; @@ -13,13 +12,9 @@ import lombok.Setter; import lombok.ToString; import lombok.experimental.Tolerate; import org.telegram.telegrambots.meta.api.methods.ActionType; -import org.telegram.telegrambots.meta.api.methods.BotApiMethod; -import org.telegram.telegrambots.meta.api.objects.ApiResponse; -import org.telegram.telegrambots.meta.exceptions.TelegramApiRequestException; +import org.telegram.telegrambots.meta.api.methods.BotApiMethodBoolean; import org.telegram.telegrambots.meta.exceptions.TelegramApiValidationException; -import java.io.IOException; - /** * @author Ruben Bermudez * @version 1.0 @@ -34,7 +29,7 @@ import java.io.IOException; @NoArgsConstructor @AllArgsConstructor @Builder -public class SendChatAction extends BotApiMethod { +public class SendChatAction extends BotApiMethodBoolean { public static final String PATH = "sendChatAction"; @@ -80,21 +75,6 @@ public class SendChatAction extends BotApiMethod { return PATH; } - @Override - public Boolean deserializeResponse(String answer) throws TelegramApiRequestException { - try { - ApiResponse result = OBJECT_MAPPER.readValue(answer, - new TypeReference>(){}); - if (result.getOk()) { - return result.getResult(); - } else { - throw new TelegramApiRequestException("Error sending chat action", result); - } - } catch (IOException e) { - throw new TelegramApiRequestException("Unable to deserialize response", e); - } - } - @Override public void validate() throws TelegramApiValidationException { if (chatId.isEmpty()) { diff --git a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/send/SendContact.java b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/send/SendContact.java index e103db52..0bd123f0 100644 --- a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/send/SendContact.java +++ b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/send/SendContact.java @@ -1,7 +1,6 @@ package org.telegram.telegrambots.meta.api.methods.send; import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.core.type.TypeReference; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.EqualsAndHashCode; @@ -12,15 +11,10 @@ import lombok.RequiredArgsConstructor; import lombok.Setter; import lombok.ToString; import lombok.experimental.Tolerate; -import org.telegram.telegrambots.meta.api.methods.BotApiMethod; -import org.telegram.telegrambots.meta.api.objects.ApiResponse; -import org.telegram.telegrambots.meta.api.objects.Message; +import org.telegram.telegrambots.meta.api.methods.BotApiMethodMessage; import org.telegram.telegrambots.meta.api.objects.replykeyboard.ReplyKeyboard; -import org.telegram.telegrambots.meta.exceptions.TelegramApiRequestException; import org.telegram.telegrambots.meta.exceptions.TelegramApiValidationException; -import java.io.IOException; - /** * @author Ruben Bermudez * @version 1.0 @@ -35,7 +29,7 @@ import java.io.IOException; @NoArgsConstructor @AllArgsConstructor @Builder -public class SendContact extends BotApiMethod { +public class SendContact extends BotApiMethodMessage { public static final String PATH = "sendContact"; private static final String CHATID_FIELD = "chat_id"; @@ -91,21 +85,6 @@ public class SendContact extends BotApiMethod { return PATH; } - @Override - public Message deserializeResponse(String answer) throws TelegramApiRequestException { - try { - ApiResponse result = OBJECT_MAPPER.readValue(answer, - new TypeReference>(){}); - if (result.getOk()) { - return result.getResult(); - } else { - throw new TelegramApiRequestException("Error sending contact", result); - } - } catch (IOException e) { - throw new TelegramApiRequestException("Unable to deserialize response", e); - } - } - @Override public void validate() throws TelegramApiValidationException { if (chatId.isEmpty()) { diff --git a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/send/SendDice.java b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/send/SendDice.java index c0875494..b81ba841 100644 --- a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/send/SendDice.java +++ b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/send/SendDice.java @@ -1,7 +1,6 @@ package org.telegram.telegrambots.meta.api.methods.send; import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.core.type.TypeReference; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.EqualsAndHashCode; @@ -12,14 +11,10 @@ import lombok.RequiredArgsConstructor; import lombok.Setter; import lombok.ToString; import lombok.experimental.Tolerate; -import org.telegram.telegrambots.meta.api.methods.BotApiMethod; -import org.telegram.telegrambots.meta.api.objects.ApiResponse; -import org.telegram.telegrambots.meta.api.objects.Message; +import org.telegram.telegrambots.meta.api.methods.BotApiMethodMessage; import org.telegram.telegrambots.meta.api.objects.replykeyboard.ReplyKeyboard; -import org.telegram.telegrambots.meta.exceptions.TelegramApiRequestException; import org.telegram.telegrambots.meta.exceptions.TelegramApiValidationException; -import java.io.IOException; import java.util.Arrays; import java.util.Collections; import java.util.List; @@ -37,7 +32,7 @@ import java.util.List; @NoArgsConstructor @AllArgsConstructor @Builder -public class SendDice extends BotApiMethod { +public class SendDice extends BotApiMethodMessage { private static final List VALIDEMOJIS = Collections.unmodifiableList(Arrays.asList("🎲", "🎯", "🏀", "⚽", "🎳", "🎰")); public static final String PATH = "sendDice"; @@ -95,21 +90,6 @@ public class SendDice extends BotApiMethod { return PATH; } - @Override - public Message deserializeResponse(String answer) throws TelegramApiRequestException { - try { - ApiResponse result = OBJECT_MAPPER.readValue(answer, - new TypeReference>(){}); - if (result.getOk()) { - return result.getResult(); - } else { - throw new TelegramApiRequestException("Error sending dice", result); - } - } catch (IOException e) { - throw new TelegramApiRequestException("Unable to deserialize response", e); - } - } - @Override public void validate() throws TelegramApiValidationException { if (chatId.isEmpty()) { diff --git a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/send/SendDocument.java b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/send/SendDocument.java index 4abb1651..1349bf3c 100644 --- a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/send/SendDocument.java +++ b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/send/SendDocument.java @@ -1,6 +1,5 @@ package org.telegram.telegrambots.meta.api.methods.send; -import com.fasterxml.jackson.core.type.TypeReference; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.EqualsAndHashCode; @@ -13,7 +12,6 @@ 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.ApiResponse; import org.telegram.telegrambots.meta.api.objects.InputFile; import org.telegram.telegrambots.meta.api.objects.Message; import org.telegram.telegrambots.meta.api.objects.MessageEntity; @@ -21,7 +19,6 @@ import org.telegram.telegrambots.meta.api.objects.replykeyboard.ReplyKeyboard; import org.telegram.telegrambots.meta.exceptions.TelegramApiRequestException; import org.telegram.telegrambots.meta.exceptions.TelegramApiValidationException; -import java.io.IOException; import java.util.List; /** @@ -92,19 +89,8 @@ public class SendDocument extends PartialBotApiMethod { @Override public Message deserializeResponse(String answer) throws TelegramApiRequestException { - try { - ApiResponse result = OBJECT_MAPPER.readValue(answer, - new TypeReference>(){}); - if (result.getOk()) { - return result.getResult(); - } else { - throw new TelegramApiRequestException("Error sending document", result); - } - } catch (IOException e) { - throw new TelegramApiRequestException("Unable to deserialize response", e); - } + return deserializeResponse(answer, Message.class); } - @Override public void validate() throws TelegramApiValidationException { if (chatId.isEmpty()) { diff --git a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/send/SendGame.java b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/send/SendGame.java index a122ae82..25938eb5 100644 --- a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/send/SendGame.java +++ b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/send/SendGame.java @@ -18,7 +18,6 @@ package org.telegram.telegrambots.meta.api.methods.send; import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.core.type.TypeReference; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.EqualsAndHashCode; @@ -29,15 +28,10 @@ import lombok.RequiredArgsConstructor; import lombok.Setter; import lombok.ToString; import lombok.experimental.Tolerate; -import org.telegram.telegrambots.meta.api.methods.BotApiMethod; -import org.telegram.telegrambots.meta.api.objects.ApiResponse; -import org.telegram.telegrambots.meta.api.objects.Message; +import org.telegram.telegrambots.meta.api.methods.BotApiMethodMessage; import org.telegram.telegrambots.meta.api.objects.replykeyboard.ReplyKeyboard; -import org.telegram.telegrambots.meta.exceptions.TelegramApiRequestException; import org.telegram.telegrambots.meta.exceptions.TelegramApiValidationException; -import java.io.IOException; - /** * @author Ruben Bermudez * @version 1.0 @@ -51,7 +45,7 @@ import java.io.IOException; @NoArgsConstructor @AllArgsConstructor @Builder -public class SendGame extends BotApiMethod { +public class SendGame extends BotApiMethodMessage { public static final String PATH = "sendGame"; private static final String CHATID_FIELD = "chat_id"; @@ -97,21 +91,6 @@ public class SendGame extends BotApiMethod { return PATH; } - @Override - public Message deserializeResponse(String answer) throws TelegramApiRequestException { - try { - ApiResponse result = OBJECT_MAPPER.readValue(answer, - new TypeReference>(){}); - if (result.getOk()) { - return result.getResult(); - } else { - throw new TelegramApiRequestException("Error sending game", result); - } - } catch (IOException e) { - throw new TelegramApiRequestException("Unable to deserialize response", e); - } - } - @Override public void validate() throws TelegramApiValidationException { if (chatId.isEmpty()) { diff --git a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/send/SendInvoice.java b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/send/SendInvoice.java index 7ac363c0..52e28f92 100644 --- a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/send/SendInvoice.java +++ b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/send/SendInvoice.java @@ -1,7 +1,6 @@ package org.telegram.telegrambots.meta.api.methods.send; import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.core.type.TypeReference; import com.google.common.base.Strings; import lombok.AllArgsConstructor; import lombok.Builder; @@ -14,15 +13,11 @@ import lombok.Setter; import lombok.Singular; import lombok.ToString; import lombok.experimental.Tolerate; -import org.telegram.telegrambots.meta.api.methods.BotApiMethod; -import org.telegram.telegrambots.meta.api.objects.ApiResponse; -import org.telegram.telegrambots.meta.api.objects.Message; +import org.telegram.telegrambots.meta.api.methods.BotApiMethodMessage; import org.telegram.telegrambots.meta.api.objects.payments.LabeledPrice; import org.telegram.telegrambots.meta.api.objects.replykeyboard.InlineKeyboardMarkup; -import org.telegram.telegrambots.meta.exceptions.TelegramApiRequestException; import org.telegram.telegrambots.meta.exceptions.TelegramApiValidationException; -import java.io.IOException; import java.util.List; /** @@ -38,7 +33,7 @@ import java.util.List; @NoArgsConstructor @AllArgsConstructor @Builder -public class SendInvoice extends BotApiMethod { +public class SendInvoice extends BotApiMethodMessage { public static final String PATH = "sendinvoice"; private static final String CHATID_FIELD = "chat_id"; @@ -176,21 +171,6 @@ public class SendInvoice extends BotApiMethod { return PATH; } - @Override - public Message deserializeResponse(String answer) throws TelegramApiRequestException { - try { - ApiResponse result = OBJECT_MAPPER.readValue(answer, - new TypeReference>(){}); - if (result.getOk()) { - return result.getResult(); - } else { - throw new TelegramApiRequestException("Error sending invoice", result); - } - } catch (IOException e) { - throw new TelegramApiRequestException("Unable to deserialize response", e); - } - } - @Override public void validate() throws TelegramApiValidationException { if (Strings.isNullOrEmpty(chatId)) { diff --git a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/send/SendLocation.java b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/send/SendLocation.java index 0da14eda..324c6567 100644 --- a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/send/SendLocation.java +++ b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/send/SendLocation.java @@ -1,7 +1,6 @@ package org.telegram.telegrambots.meta.api.methods.send; import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.core.type.TypeReference; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.EqualsAndHashCode; @@ -12,15 +11,10 @@ import lombok.RequiredArgsConstructor; import lombok.Setter; import lombok.ToString; import lombok.experimental.Tolerate; -import org.telegram.telegrambots.meta.api.methods.BotApiMethod; -import org.telegram.telegrambots.meta.api.objects.ApiResponse; -import org.telegram.telegrambots.meta.api.objects.Message; +import org.telegram.telegrambots.meta.api.methods.BotApiMethodMessage; import org.telegram.telegrambots.meta.api.objects.replykeyboard.ReplyKeyboard; -import org.telegram.telegrambots.meta.exceptions.TelegramApiRequestException; import org.telegram.telegrambots.meta.exceptions.TelegramApiValidationException; -import java.io.IOException; - /** * @author Ruben Bermudez * @version 1.0 @@ -34,7 +28,7 @@ import java.io.IOException; @NoArgsConstructor @AllArgsConstructor @Builder -public class SendLocation extends BotApiMethod { +public class SendLocation extends BotApiMethodMessage { public static final String PATH = "sendlocation"; private static final String CHATID_FIELD = "chat_id"; @@ -110,21 +104,6 @@ public class SendLocation extends BotApiMethod { return PATH; } - @Override - public Message deserializeResponse(String answer) throws TelegramApiRequestException { - try { - ApiResponse result = OBJECT_MAPPER.readValue(answer, - new TypeReference>(){}); - if (result.getOk()) { - return result.getResult(); - } else { - throw new TelegramApiRequestException("Error sending location", result); - } - } catch (IOException e) { - throw new TelegramApiRequestException("Unable to deserialize response", e); - } - } - @Override public void validate() throws TelegramApiValidationException { if (chatId.isEmpty()) { diff --git a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/send/SendMediaGroup.java b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/send/SendMediaGroup.java index eaddb984..f8fe3f1a 100644 --- a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/send/SendMediaGroup.java +++ b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/send/SendMediaGroup.java @@ -1,7 +1,6 @@ package org.telegram.telegrambots.meta.api.methods.send; import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.core.type.TypeReference; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.EqualsAndHashCode; @@ -13,7 +12,6 @@ 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.ApiResponse; import org.telegram.telegrambots.meta.api.objects.Message; import org.telegram.telegrambots.meta.api.objects.media.InputMedia; import org.telegram.telegrambots.meta.api.objects.media.InputMediaAnimation; @@ -22,7 +20,6 @@ import org.telegram.telegrambots.meta.api.objects.media.InputMediaDocument; import org.telegram.telegrambots.meta.exceptions.TelegramApiRequestException; import org.telegram.telegrambots.meta.exceptions.TelegramApiValidationException; -import java.io.IOException; import java.util.ArrayList; import java.util.List; @@ -82,18 +79,7 @@ public class SendMediaGroup extends PartialBotApiMethod> { @Override public ArrayList deserializeResponse(String answer) throws TelegramApiRequestException { - try { - ApiResponse> result = OBJECT_MAPPER.readValue(answer, - new TypeReference>>() { - }); - if (result.getOk()) { - return result.getResult(); - } else { - throw new TelegramApiRequestException("Error sending media group", result); - } - } catch (IOException e) { - throw new TelegramApiRequestException("Unable to deserialize response", e); - } + return deserializeResponseArray(answer, Message.class); } @Override diff --git a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/send/SendMessage.java b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/send/SendMessage.java index 1388f11c..bc29c8e5 100644 --- a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/send/SendMessage.java +++ b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/send/SendMessage.java @@ -1,7 +1,6 @@ package org.telegram.telegrambots.meta.api.methods.send; import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import lombok.AllArgsConstructor; import lombok.Builder; @@ -13,16 +12,12 @@ import lombok.RequiredArgsConstructor; import lombok.Setter; import lombok.ToString; import lombok.experimental.Tolerate; -import org.telegram.telegrambots.meta.api.methods.BotApiMethod; +import org.telegram.telegrambots.meta.api.methods.BotApiMethodMessage; import org.telegram.telegrambots.meta.api.methods.ParseMode; -import org.telegram.telegrambots.meta.api.objects.ApiResponse; -import org.telegram.telegrambots.meta.api.objects.Message; import org.telegram.telegrambots.meta.api.objects.MessageEntity; import org.telegram.telegrambots.meta.api.objects.replykeyboard.ReplyKeyboard; -import org.telegram.telegrambots.meta.exceptions.TelegramApiRequestException; import org.telegram.telegrambots.meta.exceptions.TelegramApiValidationException; -import java.io.IOException; import java.util.List; /** @@ -39,7 +34,7 @@ import java.util.List; @NoArgsConstructor @AllArgsConstructor @Builder -public class SendMessage extends BotApiMethod { +public class SendMessage extends BotApiMethodMessage { public static final String PATH = "sendmessage"; private static final String CHATID_FIELD = "chat_id"; @@ -127,21 +122,6 @@ public class SendMessage extends BotApiMethod { return PATH; } - @Override - public Message deserializeResponse(String answer) throws TelegramApiRequestException { - try { - ApiResponse result = OBJECT_MAPPER.readValue(answer, - new TypeReference>(){}); - if (result.getOk()) { - return result.getResult(); - } else { - throw new TelegramApiRequestException("Error sending message", result); - } - } catch (IOException e) { - throw new TelegramApiRequestException("Unable to deserialize response", e); - } - } - @Override public void validate() throws TelegramApiValidationException { if (chatId.isEmpty()) { diff --git a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/send/SendPhoto.java b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/send/SendPhoto.java index f45eeb48..752f7f2c 100644 --- a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/send/SendPhoto.java +++ b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/send/SendPhoto.java @@ -1,6 +1,5 @@ package org.telegram.telegrambots.meta.api.methods.send; -import com.fasterxml.jackson.core.type.TypeReference; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.EqualsAndHashCode; @@ -13,7 +12,6 @@ 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.ApiResponse; import org.telegram.telegrambots.meta.api.objects.InputFile; import org.telegram.telegrambots.meta.api.objects.Message; import org.telegram.telegrambots.meta.api.objects.MessageEntity; @@ -21,7 +19,6 @@ import org.telegram.telegrambots.meta.api.objects.replykeyboard.ReplyKeyboard; import org.telegram.telegrambots.meta.exceptions.TelegramApiRequestException; import org.telegram.telegrambots.meta.exceptions.TelegramApiValidationException; -import java.io.IOException; import java.util.List; import java.util.Objects; @@ -86,17 +83,7 @@ public class SendPhoto extends PartialBotApiMethod { @Override public Message deserializeResponse(String answer) throws TelegramApiRequestException { - try { - ApiResponse result = OBJECT_MAPPER.readValue(answer, - new TypeReference>(){}); - if (result.getOk()) { - return result.getResult(); - } else { - throw new TelegramApiRequestException("Error sending photo", result); - } - } catch (IOException e) { - throw new TelegramApiRequestException("Unable to deserialize response", e); - } + return deserializeResponse(answer, Message.class); } @Override diff --git a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/send/SendSticker.java b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/send/SendSticker.java index 4b26df7a..91d1c741 100644 --- a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/send/SendSticker.java +++ b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/send/SendSticker.java @@ -1,6 +1,5 @@ package org.telegram.telegrambots.meta.api.methods.send; -import com.fasterxml.jackson.core.type.TypeReference; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.EqualsAndHashCode; @@ -12,15 +11,12 @@ 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.ApiResponse; 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; import org.telegram.telegrambots.meta.exceptions.TelegramApiRequestException; import org.telegram.telegrambots.meta.exceptions.TelegramApiValidationException; -import java.io.IOException; - /** * @author Ruben Bermudez * @version 1.0 @@ -75,17 +71,7 @@ public class SendSticker extends PartialBotApiMethod { @Override public Message deserializeResponse(String answer) throws TelegramApiRequestException { - try { - ApiResponse result = OBJECT_MAPPER.readValue(answer, - new TypeReference>(){}); - if (result.getOk()) { - return result.getResult(); - } else { - throw new TelegramApiRequestException("Error sending sticker", result); - } - } catch (IOException e) { - throw new TelegramApiRequestException("Unable to deserialize response", e); - } + return deserializeResponse(answer, Message.class); } @Override diff --git a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/send/SendVenue.java b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/send/SendVenue.java index 0c55d174..6ebc6765 100644 --- a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/send/SendVenue.java +++ b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/send/SendVenue.java @@ -1,7 +1,6 @@ package org.telegram.telegrambots.meta.api.methods.send; import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.core.type.TypeReference; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.EqualsAndHashCode; @@ -12,15 +11,10 @@ import lombok.RequiredArgsConstructor; import lombok.Setter; import lombok.ToString; import lombok.experimental.Tolerate; -import org.telegram.telegrambots.meta.api.methods.BotApiMethod; -import org.telegram.telegrambots.meta.api.objects.ApiResponse; -import org.telegram.telegrambots.meta.api.objects.Message; +import org.telegram.telegrambots.meta.api.methods.BotApiMethodMessage; import org.telegram.telegrambots.meta.api.objects.replykeyboard.ReplyKeyboard; -import org.telegram.telegrambots.meta.exceptions.TelegramApiRequestException; import org.telegram.telegrambots.meta.exceptions.TelegramApiValidationException; -import java.io.IOException; - /** * @author Ruben Bermudez * @version 1.0 @@ -35,7 +29,7 @@ import java.io.IOException; @NoArgsConstructor @AllArgsConstructor @Builder -public class SendVenue extends BotApiMethod { +public class SendVenue extends BotApiMethodMessage { public static final String PATH = "sendVenue"; private static final String CHATID_FIELD = "chat_id"; @@ -105,21 +99,6 @@ public class SendVenue extends BotApiMethod { return PATH; } - @Override - public Message deserializeResponse(String answer) throws TelegramApiRequestException { - try { - ApiResponse result = OBJECT_MAPPER.readValue(answer, - new TypeReference>(){}); - if (result.getOk()) { - return result.getResult(); - } else { - throw new TelegramApiRequestException("Error sending venue", result); - } - } catch (IOException e) { - throw new TelegramApiRequestException("Unable to deserialize response", e); - } - } - @Override public void validate() throws TelegramApiValidationException { if (chatId.isEmpty()) { diff --git a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/send/SendVideo.java b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/send/SendVideo.java index 71e2da65..ab13b851 100644 --- a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/send/SendVideo.java +++ b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/send/SendVideo.java @@ -1,6 +1,5 @@ package org.telegram.telegrambots.meta.api.methods.send; -import com.fasterxml.jackson.core.type.TypeReference; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.EqualsAndHashCode; @@ -13,7 +12,6 @@ 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.ApiResponse; import org.telegram.telegrambots.meta.api.objects.InputFile; import org.telegram.telegrambots.meta.api.objects.Message; import org.telegram.telegrambots.meta.api.objects.MessageEntity; @@ -21,7 +19,6 @@ import org.telegram.telegrambots.meta.api.objects.replykeyboard.ReplyKeyboard; import org.telegram.telegrambots.meta.exceptions.TelegramApiRequestException; import org.telegram.telegrambots.meta.exceptions.TelegramApiValidationException; -import java.io.IOException; import java.util.List; /** @@ -99,17 +96,7 @@ public class SendVideo extends PartialBotApiMethod { @Override public Message deserializeResponse(String answer) throws TelegramApiRequestException { - try { - ApiResponse result = OBJECT_MAPPER.readValue(answer, - new TypeReference>(){}); - if (result.getOk()) { - return result.getResult(); - } else { - throw new TelegramApiRequestException("Error sending video", result); - } - } catch (IOException e) { - throw new TelegramApiRequestException("Unable to deserialize response", e); - } + return deserializeResponse(answer, Message.class); } @Override diff --git a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/send/SendVideoNote.java b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/send/SendVideoNote.java index 5ea46f92..673ce3b4 100644 --- a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/send/SendVideoNote.java +++ b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/send/SendVideoNote.java @@ -1,6 +1,5 @@ package org.telegram.telegrambots.meta.api.methods.send; -import com.fasterxml.jackson.core.type.TypeReference; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.EqualsAndHashCode; @@ -12,15 +11,12 @@ 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.ApiResponse; 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; import org.telegram.telegrambots.meta.exceptions.TelegramApiRequestException; import org.telegram.telegrambots.meta.exceptions.TelegramApiValidationException; -import java.io.IOException; - /** * @author Ruben Bermudez * @version 1.0 @@ -85,17 +81,7 @@ public class SendVideoNote extends PartialBotApiMethod { @Override public Message deserializeResponse(String answer) throws TelegramApiRequestException { - try { - ApiResponse result = OBJECT_MAPPER.readValue(answer, - new TypeReference>(){}); - if (result.getOk()) { - return result.getResult(); - } else { - throw new TelegramApiRequestException("Error sending video note", result); - } - } catch (IOException e) { - throw new TelegramApiRequestException("Unable to deserialize response", e); - } + return deserializeResponse(answer, Message.class); } @Override diff --git a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/send/SendVoice.java b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/send/SendVoice.java index eba8280f..b36f72d7 100644 --- a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/send/SendVoice.java +++ b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/send/SendVoice.java @@ -1,6 +1,5 @@ package org.telegram.telegrambots.meta.api.methods.send; -import com.fasterxml.jackson.core.type.TypeReference; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.EqualsAndHashCode; @@ -13,7 +12,6 @@ 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.ApiResponse; import org.telegram.telegrambots.meta.api.objects.InputFile; import org.telegram.telegrambots.meta.api.objects.Message; import org.telegram.telegrambots.meta.api.objects.MessageEntity; @@ -21,7 +19,6 @@ import org.telegram.telegrambots.meta.api.objects.replykeyboard.ReplyKeyboard; import org.telegram.telegrambots.meta.exceptions.TelegramApiRequestException; import org.telegram.telegrambots.meta.exceptions.TelegramApiValidationException; -import java.io.IOException; import java.util.List; /** @@ -84,17 +81,7 @@ public class SendVoice extends PartialBotApiMethod { @Override public Message deserializeResponse(String answer) throws TelegramApiRequestException { - try { - ApiResponse result = OBJECT_MAPPER.readValue(answer, - new TypeReference>(){}); - if (result.getOk()) { - return result.getResult(); - } else { - throw new TelegramApiRequestException("Error sending voice", result); - } - } catch (IOException e) { - throw new TelegramApiRequestException("Unable to deserialize response", e); - } + return deserializeResponse(answer, Message.class); } @Override diff --git a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/stickers/AddStickerToSet.java b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/stickers/AddStickerToSet.java index 6b021678..80f1f0dd 100644 --- a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/stickers/AddStickerToSet.java +++ b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/stickers/AddStickerToSet.java @@ -1,6 +1,5 @@ package org.telegram.telegrambots.meta.api.methods.stickers; -import com.fasterxml.jackson.core.type.TypeReference; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.EqualsAndHashCode; @@ -11,14 +10,11 @@ import lombok.RequiredArgsConstructor; import lombok.Setter; import lombok.ToString; import org.telegram.telegrambots.meta.api.methods.PartialBotApiMethod; -import org.telegram.telegrambots.meta.api.objects.ApiResponse; import org.telegram.telegrambots.meta.api.objects.InputFile; import org.telegram.telegrambots.meta.api.objects.stickers.MaskPosition; import org.telegram.telegrambots.meta.exceptions.TelegramApiRequestException; import org.telegram.telegrambots.meta.exceptions.TelegramApiValidationException; -import java.io.IOException; - /** * @author Ruben Bermudez * @version 1.0 @@ -77,17 +73,7 @@ public class AddStickerToSet extends PartialBotApiMethod { @Override public Boolean deserializeResponse(String answer) throws TelegramApiRequestException { - try { - ApiResponse result = OBJECT_MAPPER.readValue(answer, - new TypeReference>(){}); - if (result.getOk()) { - return result.getResult(); - } else { - throw new TelegramApiRequestException("Error creating new sticker set", result); - } - } catch (IOException e) { - throw new TelegramApiRequestException("Unable to deserialize response", e); - } + return deserializeResponse(answer, Boolean.class); } @Override diff --git a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/stickers/CreateNewStickerSet.java b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/stickers/CreateNewStickerSet.java index 58b180fa..52740b67 100644 --- a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/stickers/CreateNewStickerSet.java +++ b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/stickers/CreateNewStickerSet.java @@ -1,6 +1,5 @@ package org.telegram.telegrambots.meta.api.methods.stickers; -import com.fasterxml.jackson.core.type.TypeReference; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.EqualsAndHashCode; @@ -11,14 +10,11 @@ import lombok.RequiredArgsConstructor; import lombok.Setter; import lombok.ToString; import org.telegram.telegrambots.meta.api.methods.PartialBotApiMethod; -import org.telegram.telegrambots.meta.api.objects.ApiResponse; import org.telegram.telegrambots.meta.api.objects.InputFile; import org.telegram.telegrambots.meta.api.objects.stickers.MaskPosition; import org.telegram.telegrambots.meta.exceptions.TelegramApiRequestException; import org.telegram.telegrambots.meta.exceptions.TelegramApiValidationException; -import java.io.IOException; - /** * @author Ruben Bermudez * @version 1.0 @@ -90,17 +86,7 @@ public class CreateNewStickerSet extends PartialBotApiMethod { @Override public Boolean deserializeResponse(String answer) throws TelegramApiRequestException { - try { - ApiResponse result = OBJECT_MAPPER.readValue(answer, - new TypeReference>(){}); - if (result.getOk()) { - return result.getResult(); - } else { - throw new TelegramApiRequestException("Error creating new sticker set", result); - } - } catch (IOException e) { - throw new TelegramApiRequestException("Unable to deserialize response", e); - } + return deserializeResponse(answer, Boolean.class); } @Override diff --git a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/stickers/DeleteStickerFromSet.java b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/stickers/DeleteStickerFromSet.java index 4f447fa5..9c4a52da 100644 --- a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/stickers/DeleteStickerFromSet.java +++ b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/stickers/DeleteStickerFromSet.java @@ -1,7 +1,6 @@ package org.telegram.telegrambots.meta.api.methods.stickers; import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.core.type.TypeReference; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.EqualsAndHashCode; @@ -10,13 +9,9 @@ import lombok.NoArgsConstructor; import lombok.NonNull; import lombok.Setter; import lombok.ToString; -import org.telegram.telegrambots.meta.api.methods.BotApiMethod; -import org.telegram.telegrambots.meta.api.objects.ApiResponse; -import org.telegram.telegrambots.meta.exceptions.TelegramApiRequestException; +import org.telegram.telegrambots.meta.api.methods.BotApiMethodBoolean; import org.telegram.telegrambots.meta.exceptions.TelegramApiValidationException; -import java.io.IOException; - /** * @author Ruben Bermudez * @version 1.0 @@ -29,7 +24,7 @@ import java.io.IOException; @NoArgsConstructor @AllArgsConstructor @Builder -public class DeleteStickerFromSet extends BotApiMethod { +public class DeleteStickerFromSet extends BotApiMethodBoolean { private static final String PATH = "deleteStickerFromSet"; private static final String STICKER_FIELD = "sticker"; @@ -43,24 +38,9 @@ public class DeleteStickerFromSet extends BotApiMethod { return PATH; } - @Override - public Boolean deserializeResponse(String answer) throws TelegramApiRequestException { - try { - ApiResponse result = OBJECT_MAPPER.readValue(answer, - new TypeReference>(){}); - if (result.getOk()) { - return result.getResult(); - } else { - throw new TelegramApiRequestException("Error deleting sticker from set", result); - } - } catch (IOException e) { - throw new TelegramApiRequestException("Unable to deserialize response", e); - } - } - @Override public void validate() throws TelegramApiValidationException { - if (sticker == null || sticker.isEmpty()) { + if (sticker.isEmpty()) { throw new TelegramApiValidationException("sticker can't be null", this); } } diff --git a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/stickers/GetStickerSet.java b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/stickers/GetStickerSet.java index fa7fc277..cdb56ff0 100644 --- a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/stickers/GetStickerSet.java +++ b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/stickers/GetStickerSet.java @@ -1,7 +1,6 @@ package org.telegram.telegrambots.meta.api.methods.stickers; import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.core.type.TypeReference; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.EqualsAndHashCode; @@ -11,13 +10,10 @@ import lombok.NonNull; import lombok.Setter; import lombok.ToString; import org.telegram.telegrambots.meta.api.methods.BotApiMethod; -import org.telegram.telegrambots.meta.api.objects.ApiResponse; import org.telegram.telegrambots.meta.api.objects.stickers.StickerSet; import org.telegram.telegrambots.meta.exceptions.TelegramApiRequestException; import org.telegram.telegrambots.meta.exceptions.TelegramApiValidationException; -import java.io.IOException; - /** * @author Ruben Bermudez * @version 1.0 @@ -46,22 +42,12 @@ public class GetStickerSet extends BotApiMethod { @Override public StickerSet deserializeResponse(String answer) throws TelegramApiRequestException { - try { - ApiResponse result = OBJECT_MAPPER.readValue(answer, - new TypeReference>(){}); - if (result.getOk()) { - return result.getResult(); - } else { - throw new TelegramApiRequestException("Error getting sticker set", result); - } - } catch (IOException e) { - throw new TelegramApiRequestException("Unable to deserialize response", e); - } + return deserializeResponse(answer, StickerSet.class); } @Override public void validate() throws TelegramApiValidationException { - if (name == null || name.isEmpty()) { + if (name.isEmpty()) { throw new TelegramApiValidationException("Name can't be null", this); } } diff --git a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/stickers/SetStickerPositionInSet.java b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/stickers/SetStickerPositionInSet.java index 43c8ffb7..b838cef3 100644 --- a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/stickers/SetStickerPositionInSet.java +++ b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/stickers/SetStickerPositionInSet.java @@ -1,7 +1,6 @@ package org.telegram.telegrambots.meta.api.methods.stickers; import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.core.type.TypeReference; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.EqualsAndHashCode; @@ -10,13 +9,9 @@ import lombok.NoArgsConstructor; import lombok.NonNull; import lombok.Setter; import lombok.ToString; -import org.telegram.telegrambots.meta.api.methods.BotApiMethod; -import org.telegram.telegrambots.meta.api.objects.ApiResponse; -import org.telegram.telegrambots.meta.exceptions.TelegramApiRequestException; +import org.telegram.telegrambots.meta.api.methods.BotApiMethodBoolean; import org.telegram.telegrambots.meta.exceptions.TelegramApiValidationException; -import java.io.IOException; - /** * @author Ruben Bermudez * @version 1.0 @@ -29,7 +24,7 @@ import java.io.IOException; @NoArgsConstructor @AllArgsConstructor @Builder -public class SetStickerPositionInSet extends BotApiMethod { +public class SetStickerPositionInSet extends BotApiMethodBoolean { private static final String PATH = "setStickerPositionInSet"; private static final String STICKER_FIELD = "sticker"; @@ -47,27 +42,13 @@ public class SetStickerPositionInSet extends BotApiMethod { return PATH; } - @Override - public Boolean deserializeResponse(String answer) throws TelegramApiRequestException { - try { - ApiResponse result = OBJECT_MAPPER.readValue(answer, - new TypeReference>(){}); - if (result.getOk()) { - return result.getResult(); - } else { - throw new TelegramApiRequestException("Error setting sticker position in set", result); - } - } catch (IOException e) { - throw new TelegramApiRequestException("Unable to deserialize response", e); - } - } @Override public void validate() throws TelegramApiValidationException { - if (sticker == null || sticker.isEmpty()) { + if (sticker.isEmpty()) { throw new TelegramApiValidationException("sticker can't be null", this); } - if (position == null || position < 0) { + if (position < 0) { throw new TelegramApiValidationException("position can't be null", this); } } diff --git a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/stickers/SetStickerSetThumb.java b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/stickers/SetStickerSetThumb.java index dd4f8b40..1979ee56 100644 --- a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/stickers/SetStickerSetThumb.java +++ b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/stickers/SetStickerSetThumb.java @@ -1,6 +1,5 @@ package org.telegram.telegrambots.meta.api.methods.stickers; -import com.fasterxml.jackson.core.type.TypeReference; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.EqualsAndHashCode; @@ -9,14 +8,11 @@ import lombok.NoArgsConstructor; import lombok.NonNull; import lombok.Setter; import lombok.ToString; -import org.telegram.telegrambots.meta.api.methods.BotApiMethod; -import org.telegram.telegrambots.meta.api.objects.ApiResponse; +import org.telegram.telegrambots.meta.api.methods.BotApiMethodBoolean; import org.telegram.telegrambots.meta.api.objects.InputFile; import org.telegram.telegrambots.meta.exceptions.TelegramApiRequestException; import org.telegram.telegrambots.meta.exceptions.TelegramApiValidationException; -import java.io.IOException; - /** * @author Ruben Bermudez * @version 1.0 @@ -31,7 +27,7 @@ import java.io.IOException; @NoArgsConstructor @AllArgsConstructor @Builder -public class SetStickerSetThumb extends BotApiMethod { +public class SetStickerSetThumb extends BotApiMethodBoolean { public static final String PATH = "setStickerSetThumb"; public static final String NAME_FIELD = "name"; @@ -63,17 +59,7 @@ public class SetStickerSetThumb extends BotApiMethod { @Override public Boolean deserializeResponse(String answer) throws TelegramApiRequestException { - try { - ApiResponse result = OBJECT_MAPPER.readValue(answer, - new TypeReference>(){}); - if (result.getOk()) { - return result.getResult(); - } else { - throw new TelegramApiRequestException("Error setting sticker thumb in set", result); - } - } catch (IOException e) { - throw new TelegramApiRequestException("Unable to deserialize response", e); - } + return deserializeResponse(answer, Boolean.class); } @Override diff --git a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/stickers/UploadStickerFile.java b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/stickers/UploadStickerFile.java index 8dd5b304..840b3959 100644 --- a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/stickers/UploadStickerFile.java +++ b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/stickers/UploadStickerFile.java @@ -1,6 +1,5 @@ package org.telegram.telegrambots.meta.api.methods.stickers; -import com.fasterxml.jackson.core.type.TypeReference; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.EqualsAndHashCode; @@ -10,14 +9,11 @@ import lombok.NonNull; import lombok.Setter; import lombok.ToString; import org.telegram.telegrambots.meta.api.methods.PartialBotApiMethod; -import org.telegram.telegrambots.meta.api.objects.ApiResponse; import org.telegram.telegrambots.meta.api.objects.File; import org.telegram.telegrambots.meta.api.objects.InputFile; import org.telegram.telegrambots.meta.exceptions.TelegramApiRequestException; import org.telegram.telegrambots.meta.exceptions.TelegramApiValidationException; -import java.io.IOException; - /** * @author Ruben Bermudez * @version 1.0 @@ -48,29 +44,15 @@ public class UploadStickerFile extends PartialBotApiMethod { @Override public File deserializeResponse(String answer) throws TelegramApiRequestException { - try { - ApiResponse result = OBJECT_MAPPER.readValue(answer, - new TypeReference>(){}); - if (result.getOk()) { - return result.getResult(); - } else { - throw new TelegramApiRequestException("Error uploading sticker set", result); - } - } catch (IOException e) { - throw new TelegramApiRequestException("Unable to deserialize response", e); - } + return deserializeResponse(answer, File.class); } @Override public void validate() throws TelegramApiValidationException { - if (userId == null || userId <= 0) { + if (userId <= 0) { throw new TelegramApiValidationException("userId can't be empty", this); } - if (pngSticker == null) { - throw new TelegramApiValidationException("PngSticker parameter can't be empty", this); - } - pngSticker.validate(); } } diff --git a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/updates/Close.java b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/updates/Close.java index 73f461c4..98c7f0f3 100644 --- a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/updates/Close.java +++ b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/updates/Close.java @@ -1,18 +1,12 @@ package org.telegram.telegrambots.meta.api.methods.updates; -import com.fasterxml.jackson.core.type.TypeReference; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.EqualsAndHashCode; import lombok.Getter; import lombok.Setter; import lombok.ToString; -import org.telegram.telegrambots.meta.api.methods.BotApiMethod; -import org.telegram.telegrambots.meta.api.objects.ApiResponse; -import org.telegram.telegrambots.meta.exceptions.TelegramApiRequestException; -import org.telegram.telegrambots.meta.exceptions.TelegramApiValidationException; - -import java.io.IOException; +import org.telegram.telegrambots.meta.api.methods.BotApiMethodBoolean; /** * @author Ruben Bermudez @@ -29,31 +23,11 @@ import java.io.IOException; @ToString @AllArgsConstructor @Builder -public class Close extends BotApiMethod { +public class Close extends BotApiMethodBoolean { public static final String PATH = "close"; @Override public String getMethod() { return PATH; } - - @Override - public Boolean deserializeResponse(String answer) throws TelegramApiRequestException { - try { - ApiResponse result = OBJECT_MAPPER.readValue(answer, - new TypeReference>() { - }); - if (result.getOk()) { - return result.getResult(); - } else { - throw new TelegramApiRequestException("Error closing", result); - } - } catch (IOException e2) { - throw new TelegramApiRequestException("Unable to deserialize response", e2); - } - } - - @Override - public void validate() throws TelegramApiValidationException { - } } diff --git a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/updates/DeleteWebhook.java b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/updates/DeleteWebhook.java index 7a471cd2..a976b046 100644 --- a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/updates/DeleteWebhook.java +++ b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/updates/DeleteWebhook.java @@ -1,7 +1,6 @@ package org.telegram.telegrambots.meta.api.methods.updates; import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.core.type.TypeReference; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.EqualsAndHashCode; @@ -9,12 +8,7 @@ import lombok.Getter; import lombok.NoArgsConstructor; import lombok.Setter; import lombok.ToString; -import org.telegram.telegrambots.meta.api.methods.BotApiMethod; -import org.telegram.telegrambots.meta.api.objects.ApiResponse; -import org.telegram.telegrambots.meta.exceptions.TelegramApiRequestException; -import org.telegram.telegrambots.meta.exceptions.TelegramApiValidationException; - -import java.io.IOException; +import org.telegram.telegrambots.meta.api.methods.BotApiMethodBoolean; /** * @author Ruben Bermudez @@ -29,7 +23,7 @@ import java.io.IOException; @NoArgsConstructor @AllArgsConstructor @Builder -public class DeleteWebhook extends BotApiMethod{ +public class DeleteWebhook extends BotApiMethodBoolean { public static final String PATH = "deleteWebhook"; private static final String DROPPENDINGUPDATES_FIELD = "drop_pending_updates"; @@ -41,24 +35,4 @@ public class DeleteWebhook extends BotApiMethod{ public String getMethod() { return PATH; } - - @Override - public Boolean deserializeResponse(String answer) throws - TelegramApiRequestException { - try { - ApiResponse result = OBJECT_MAPPER.readValue(answer, - new TypeReference>(){}); - if (result.getOk()) { - return result.getResult(); - } else { - throw new TelegramApiRequestException("Error deleting webhook", result); - } - } catch (IOException e) { - throw new TelegramApiRequestException("Unable to deserialize response", e); - } - } - - @Override - public void validate() throws TelegramApiValidationException { - } } diff --git a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/updates/GetUpdates.java b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/updates/GetUpdates.java index 5da3e8f2..bea6d22d 100644 --- a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/updates/GetUpdates.java +++ b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/updates/GetUpdates.java @@ -1,7 +1,6 @@ package org.telegram.telegrambots.meta.api.methods.updates; import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.core.type.TypeReference; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.EqualsAndHashCode; @@ -11,12 +10,9 @@ import lombok.Setter; import lombok.Singular; import lombok.ToString; import org.telegram.telegrambots.meta.api.methods.BotApiMethod; -import org.telegram.telegrambots.meta.api.objects.ApiResponse; import org.telegram.telegrambots.meta.api.objects.Update; import org.telegram.telegrambots.meta.exceptions.TelegramApiRequestException; -import org.telegram.telegrambots.meta.exceptions.TelegramApiValidationException; -import java.io.IOException; import java.util.ArrayList; import java.util.List; @@ -81,23 +77,9 @@ public class GetUpdates extends BotApiMethod>{ return PATH; } - @Override - public ArrayList deserializeResponse(String answer) throws - TelegramApiRequestException { - try { - ApiResponse> result = OBJECT_MAPPER.readValue(answer, - new TypeReference>>(){}); - if (result.getOk()) { - return result.getResult(); - } else { - throw new TelegramApiRequestException("Error getting updates", result); - } - } catch (IOException e) { - throw new TelegramApiRequestException("Unable to deserialize response", e); - } - } @Override - public void validate() throws TelegramApiValidationException { + public ArrayList deserializeResponse(String answer) throws TelegramApiRequestException { + return deserializeResponseArray(answer, Update.class); } } diff --git a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/updates/GetWebhookInfo.java b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/updates/GetWebhookInfo.java index ffd0d242..780b0e91 100644 --- a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/updates/GetWebhookInfo.java +++ b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/updates/GetWebhookInfo.java @@ -1,6 +1,5 @@ package org.telegram.telegrambots.meta.api.methods.updates; -import com.fasterxml.jackson.core.type.TypeReference; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.EqualsAndHashCode; @@ -8,12 +7,8 @@ import lombok.Getter; import lombok.Setter; import lombok.ToString; import org.telegram.telegrambots.meta.api.methods.BotApiMethod; -import org.telegram.telegrambots.meta.api.objects.ApiResponse; import org.telegram.telegrambots.meta.api.objects.WebhookInfo; import org.telegram.telegrambots.meta.exceptions.TelegramApiRequestException; -import org.telegram.telegrambots.meta.exceptions.TelegramApiValidationException; - -import java.io.IOException; /** * @author Ruben Bermudez @@ -37,23 +32,9 @@ public class GetWebhookInfo extends BotApiMethod { return PATH; } - @Override - public WebhookInfo deserializeResponse(String answer) throws TelegramApiRequestException { - try { - ApiResponse result = OBJECT_MAPPER.readValue(answer, - new TypeReference>() { - }); - if (result.getOk()) { - return result.getResult(); - } else { - throw new TelegramApiRequestException("Error getting webhook info", result); - } - } catch (IOException e2) { - throw new TelegramApiRequestException("Unable to deserialize response", e2); - } - } @Override - public void validate() throws TelegramApiValidationException { + public WebhookInfo deserializeResponse(String answer) throws TelegramApiRequestException { + return deserializeResponse(answer, WebhookInfo.class); } } diff --git a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/updates/LogOut.java b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/updates/LogOut.java index bf549d1c..4b2dd3c8 100644 --- a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/updates/LogOut.java +++ b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/updates/LogOut.java @@ -1,18 +1,12 @@ package org.telegram.telegrambots.meta.api.methods.updates; -import com.fasterxml.jackson.core.type.TypeReference; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.EqualsAndHashCode; import lombok.Getter; import lombok.Setter; import lombok.ToString; -import org.telegram.telegrambots.meta.api.methods.BotApiMethod; -import org.telegram.telegrambots.meta.api.objects.ApiResponse; -import org.telegram.telegrambots.meta.exceptions.TelegramApiRequestException; -import org.telegram.telegrambots.meta.exceptions.TelegramApiValidationException; - -import java.io.IOException; +import org.telegram.telegrambots.meta.api.methods.BotApiMethodBoolean; /** * @author Ruben Bermudez @@ -29,31 +23,11 @@ import java.io.IOException; @ToString @AllArgsConstructor @Builder -public class LogOut extends BotApiMethod { +public class LogOut extends BotApiMethodBoolean { public static final String PATH = "logOut"; @Override public String getMethod() { return PATH; } - - @Override - public Boolean deserializeResponse(String answer) throws TelegramApiRequestException { - try { - ApiResponse result = OBJECT_MAPPER.readValue(answer, - new TypeReference>() { - }); - if (result.getOk()) { - return result.getResult(); - } else { - throw new TelegramApiRequestException("Error logging out", result); - } - } catch (IOException e2) { - throw new TelegramApiRequestException("Unable to deserialize response", e2); - } - } - - @Override - public void validate() throws TelegramApiValidationException { - } } diff --git a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/updates/SetWebhook.java b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/updates/SetWebhook.java index e660d775..b20fc6ee 100644 --- a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/updates/SetWebhook.java +++ b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/updates/SetWebhook.java @@ -1,7 +1,6 @@ package org.telegram.telegrambots.meta.api.methods.updates; import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.core.type.TypeReference; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.EqualsAndHashCode; @@ -12,13 +11,11 @@ import lombok.RequiredArgsConstructor; import lombok.Setter; import lombok.Singular; import lombok.ToString; -import org.telegram.telegrambots.meta.api.methods.BotApiMethod; -import org.telegram.telegrambots.meta.api.objects.ApiResponse; +import org.telegram.telegrambots.meta.api.methods.BotApiMethodBoolean; import org.telegram.telegrambots.meta.api.objects.InputFile; import org.telegram.telegrambots.meta.exceptions.TelegramApiRequestException; import org.telegram.telegrambots.meta.exceptions.TelegramApiValidationException; -import java.io.IOException; import java.util.List; /** @@ -38,7 +35,7 @@ import java.util.List; @NoArgsConstructor @AllArgsConstructor @Builder -public class SetWebhook extends BotApiMethod { +public class SetWebhook extends BotApiMethodBoolean { public static final String PATH = "setWebhook"; public static final String URL_FIELD = "url"; @@ -84,22 +81,12 @@ public class SetWebhook extends BotApiMethod { @Override public Boolean deserializeResponse(String answer) throws TelegramApiRequestException { - try { - ApiResponse result = OBJECT_MAPPER.readValue(answer, - new TypeReference>(){}); - if (result.getOk()) { - return result.getResult(); - } else { - throw new TelegramApiRequestException("Error setting webhook", result); - } - } catch (IOException e) { - throw new TelegramApiRequestException("Unable to deserialize response", e); - } + return deserializeResponse(answer, Boolean.class); } @Override public void validate() throws TelegramApiValidationException { - if (url == null || url.isEmpty()) { + if (url.isEmpty()) { throw new TelegramApiValidationException("URL parameter can't be empty", this); } if (certificate != null) { diff --git a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/updatingmessages/DeleteMessage.java b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/updatingmessages/DeleteMessage.java index 71673c5b..2a8f6f41 100644 --- a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/updatingmessages/DeleteMessage.java +++ b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/updatingmessages/DeleteMessage.java @@ -1,7 +1,6 @@ package org.telegram.telegrambots.meta.api.methods.updatingmessages; import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.core.type.TypeReference; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.EqualsAndHashCode; @@ -11,13 +10,9 @@ import lombok.NonNull; import lombok.Setter; import lombok.ToString; import lombok.experimental.Tolerate; -import org.telegram.telegrambots.meta.api.methods.BotApiMethod; -import org.telegram.telegrambots.meta.api.objects.ApiResponse; -import org.telegram.telegrambots.meta.exceptions.TelegramApiRequestException; +import org.telegram.telegrambots.meta.api.methods.BotApiMethodBoolean; import org.telegram.telegrambots.meta.exceptions.TelegramApiValidationException; -import java.io.IOException; - /** * @author Ruben Bermudez * @version 1.0 @@ -38,7 +33,7 @@ import java.io.IOException; @NoArgsConstructor @AllArgsConstructor @Builder -public class DeleteMessage extends BotApiMethod { +public class DeleteMessage extends BotApiMethodBoolean { public static final String PATH = "deleteMessage"; private static final String CHATID_FIELD = "chat_id"; @@ -67,22 +62,6 @@ public class DeleteMessage extends BotApiMethod { return PATH; } - @Override - public Boolean deserializeResponse(String answer) throws TelegramApiRequestException { - try { - ApiResponse result = OBJECT_MAPPER.readValue(answer, - new TypeReference>() { - }); - if (result.getOk()) { - return result.getResult(); - } else { - throw new TelegramApiRequestException("Error deleting message", result); - } - } catch (IOException e) { - throw new TelegramApiRequestException("Unable to deserialize response", e); - } - } - @Override public void validate() throws TelegramApiValidationException { if (chatId.isEmpty()) { diff --git a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/updatingmessages/EditMessageCaption.java b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/updatingmessages/EditMessageCaption.java index f83a9c1b..13f47200 100644 --- a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/updatingmessages/EditMessageCaption.java +++ b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/updatingmessages/EditMessageCaption.java @@ -1,7 +1,6 @@ package org.telegram.telegrambots.meta.api.methods.updatingmessages; import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.core.type.TypeReference; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.EqualsAndHashCode; @@ -11,15 +10,12 @@ import lombok.Setter; import lombok.Singular; import lombok.ToString; import lombok.experimental.Tolerate; -import org.telegram.telegrambots.meta.api.methods.BotApiMethod; -import org.telegram.telegrambots.meta.api.objects.ApiResponse; -import org.telegram.telegrambots.meta.api.objects.Message; +import org.telegram.telegrambots.meta.api.methods.BotApiMethodSerializable; import org.telegram.telegrambots.meta.api.objects.MessageEntity; import org.telegram.telegrambots.meta.api.objects.replykeyboard.InlineKeyboardMarkup; import org.telegram.telegrambots.meta.exceptions.TelegramApiRequestException; import org.telegram.telegrambots.meta.exceptions.TelegramApiValidationException; -import java.io.IOException; import java.io.Serializable; import java.util.List; @@ -36,7 +32,7 @@ import java.util.List; @NoArgsConstructor @AllArgsConstructor @Builder -public class EditMessageCaption extends BotApiMethod { +public class EditMessageCaption extends BotApiMethodSerializable { public static final String PATH = "editmessagecaption"; private static final String CHATID_FIELD = "chat_id"; @@ -85,28 +81,7 @@ public class EditMessageCaption extends BotApiMethod { @Override public Serializable deserializeResponse(String answer) throws TelegramApiRequestException { - try { - ApiResponse result = OBJECT_MAPPER.readValue(answer, - new TypeReference>(){}); - if (result.getOk()) { - return result.getResult(); - } else { - throw new TelegramApiRequestException("Error editing message caption", result); - } - } catch (IOException e) { - try { - ApiResponse result = OBJECT_MAPPER.readValue(answer, - new TypeReference>() { - }); - if (result.getOk()) { - return result.getResult(); - } else { - throw new TelegramApiRequestException("Error editing message caption", result); - } - } catch (IOException e2) { - throw new TelegramApiRequestException("Unable to deserialize response", e); - } - } + return deserializeResponseMessageOrBoolean(answer); } @Override diff --git a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/updatingmessages/EditMessageLiveLocation.java b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/updatingmessages/EditMessageLiveLocation.java index 01dd8475..0ecb5a76 100644 --- a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/updatingmessages/EditMessageLiveLocation.java +++ b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/updatingmessages/EditMessageLiveLocation.java @@ -1,7 +1,6 @@ package org.telegram.telegrambots.meta.api.methods.updatingmessages; import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.core.type.TypeReference; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.EqualsAndHashCode; @@ -11,14 +10,11 @@ import lombok.NonNull; import lombok.Setter; import lombok.ToString; import lombok.experimental.Tolerate; -import org.telegram.telegrambots.meta.api.methods.BotApiMethod; -import org.telegram.telegrambots.meta.api.objects.ApiResponse; -import org.telegram.telegrambots.meta.api.objects.Message; +import org.telegram.telegrambots.meta.api.methods.BotApiMethodSerializable; import org.telegram.telegrambots.meta.api.objects.replykeyboard.InlineKeyboardMarkup; import org.telegram.telegrambots.meta.exceptions.TelegramApiRequestException; import org.telegram.telegrambots.meta.exceptions.TelegramApiValidationException; -import java.io.IOException; import java.io.Serializable; /** @@ -36,7 +32,7 @@ import java.io.Serializable; @NoArgsConstructor @AllArgsConstructor @Builder -public class EditMessageLiveLocation extends BotApiMethod { +public class EditMessageLiveLocation extends BotApiMethodSerializable { public static final String PATH = "editMessageLiveLocation"; private static final String CHATID_FIELD = "chat_id"; @@ -106,28 +102,7 @@ public class EditMessageLiveLocation extends BotApiMethod { @Override public Serializable deserializeResponse(String answer) throws TelegramApiRequestException { - try { - ApiResponse result = OBJECT_MAPPER.readValue(answer, - new TypeReference>(){}); - if (result.getOk()) { - return result.getResult(); - } else { - throw new TelegramApiRequestException("Error editing message live location", result); - } - } catch (IOException e) { - try { - ApiResponse result = OBJECT_MAPPER.readValue(answer, - new TypeReference>() { - }); - if (result.getOk()) { - return result.getResult(); - } else { - throw new TelegramApiRequestException("Error editing message live location", result); - } - } catch (IOException e2) { - throw new TelegramApiRequestException("Unable to deserialize response", e); - } - } + return deserializeResponseMessageOrBoolean(answer); } @Override diff --git a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/updatingmessages/EditMessageReplyMarkup.java b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/updatingmessages/EditMessageReplyMarkup.java index 030d972a..c2362eab 100644 --- a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/updatingmessages/EditMessageReplyMarkup.java +++ b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/updatingmessages/EditMessageReplyMarkup.java @@ -1,7 +1,6 @@ package org.telegram.telegrambots.meta.api.methods.updatingmessages; import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.core.type.TypeReference; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.EqualsAndHashCode; @@ -10,14 +9,11 @@ import lombok.NoArgsConstructor; import lombok.Setter; import lombok.ToString; import lombok.experimental.Tolerate; -import org.telegram.telegrambots.meta.api.methods.BotApiMethod; -import org.telegram.telegrambots.meta.api.objects.ApiResponse; -import org.telegram.telegrambots.meta.api.objects.Message; +import org.telegram.telegrambots.meta.api.methods.BotApiMethodSerializable; import org.telegram.telegrambots.meta.api.objects.replykeyboard.InlineKeyboardMarkup; import org.telegram.telegrambots.meta.exceptions.TelegramApiRequestException; import org.telegram.telegrambots.meta.exceptions.TelegramApiValidationException; -import java.io.IOException; import java.io.Serializable; /** @@ -34,7 +30,7 @@ import java.io.Serializable; @NoArgsConstructor @AllArgsConstructor @Builder -public class EditMessageReplyMarkup extends BotApiMethod { +public class EditMessageReplyMarkup extends BotApiMethodSerializable { public static final String PATH = "editmessagereplymarkup"; private static final String CHATID_FIELD = "chat_id"; @@ -73,28 +69,7 @@ public class EditMessageReplyMarkup extends BotApiMethod { @Override public Serializable deserializeResponse(String answer) throws TelegramApiRequestException { - try { - ApiResponse result = OBJECT_MAPPER.readValue(answer, - new TypeReference>(){}); - if (result.getOk()) { - return result.getResult(); - } else { - throw new TelegramApiRequestException("Error editing message reply markup", result); - } - } catch (IOException e) { - try { - ApiResponse result = OBJECT_MAPPER.readValue(answer, - new TypeReference>() { - }); - if (result.getOk()) { - return result.getResult(); - } else { - throw new TelegramApiRequestException("Error editing message reply markup", result); - } - } catch (IOException e2) { - throw new TelegramApiRequestException("Unable to deserialize response", e); - } - } + return deserializeResponseMessageOrBoolean(answer); } @Override diff --git a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/updatingmessages/EditMessageText.java b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/updatingmessages/EditMessageText.java index 237af7d5..3e486ba2 100644 --- a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/updatingmessages/EditMessageText.java +++ b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/updatingmessages/EditMessageText.java @@ -1,7 +1,6 @@ package org.telegram.telegrambots.meta.api.methods.updatingmessages; import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.core.type.TypeReference; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.EqualsAndHashCode; @@ -12,16 +11,13 @@ import lombok.RequiredArgsConstructor; import lombok.Setter; import lombok.ToString; import lombok.experimental.Tolerate; -import org.telegram.telegrambots.meta.api.methods.BotApiMethod; +import org.telegram.telegrambots.meta.api.methods.BotApiMethodSerializable; import org.telegram.telegrambots.meta.api.methods.ParseMode; -import org.telegram.telegrambots.meta.api.objects.ApiResponse; -import org.telegram.telegrambots.meta.api.objects.Message; import org.telegram.telegrambots.meta.api.objects.MessageEntity; import org.telegram.telegrambots.meta.api.objects.replykeyboard.InlineKeyboardMarkup; import org.telegram.telegrambots.meta.exceptions.TelegramApiRequestException; import org.telegram.telegrambots.meta.exceptions.TelegramApiValidationException; -import java.io.IOException; import java.io.Serializable; import java.util.List; @@ -40,7 +36,7 @@ import java.util.List; @NoArgsConstructor @AllArgsConstructor @Builder -public class EditMessageText extends BotApiMethod { +public class EditMessageText extends BotApiMethodSerializable { public static final String PATH = "editmessagetext"; private static final String CHATID_FIELD = "chat_id"; @@ -123,28 +119,7 @@ public class EditMessageText extends BotApiMethod { @Override public Serializable deserializeResponse(String answer) throws TelegramApiRequestException { - try { - ApiResponse result = OBJECT_MAPPER.readValue(answer, - new TypeReference>(){}); - if (result.getOk()) { - return result.getResult(); - } else { - throw new TelegramApiRequestException("Error editing message text", result); - } - } catch (IOException e) { - try { - ApiResponse result = OBJECT_MAPPER.readValue(answer, - new TypeReference>() { - }); - if (result.getOk()) { - return result.getResult(); - } else { - throw new TelegramApiRequestException("Error editing message text", result); - } - } catch (IOException e2) { - throw new TelegramApiRequestException("Unable to deserialize response", e); - } - } + return deserializeResponseMessageOrBoolean(answer); } @Override diff --git a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/webapp/AnswerWebAppQuery.java b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/webapp/AnswerWebAppQuery.java index 682b939e..8efdadb9 100644 --- a/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/webapp/AnswerWebAppQuery.java +++ b/telegrambots-meta/src/main/java/org/telegram/telegrambots/meta/api/methods/webapp/AnswerWebAppQuery.java @@ -1,18 +1,20 @@ package org.telegram.telegrambots.meta.api.methods.webapp; import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.core.type.TypeReference; -import lombok.*; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.EqualsAndHashCode; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.NonNull; +import lombok.Setter; +import lombok.ToString; import org.telegram.telegrambots.meta.api.methods.BotApiMethod; -import org.telegram.telegrambots.meta.api.objects.ApiResponse; import org.telegram.telegrambots.meta.api.objects.inlinequery.result.InlineQueryResult; -import org.telegram.telegrambots.meta.api.objects.payments.ShippingOption; import org.telegram.telegrambots.meta.api.objects.webapp.SentWebAppMessage; import org.telegram.telegrambots.meta.exceptions.TelegramApiRequestException; import org.telegram.telegrambots.meta.exceptions.TelegramApiValidationException; -import java.io.IOException; - /** * @author Ruben Bermudez * @version 6.0 @@ -57,18 +59,9 @@ public class AnswerWebAppQuery extends BotApiMethod { return PATH; } + @Override public SentWebAppMessage deserializeResponse(String answer) throws TelegramApiRequestException { - try { - ApiResponse result = OBJECT_MAPPER.readValue(answer, - new TypeReference>(){}); - if (result.getOk()) { - return result.getResult(); - } else { - throw new TelegramApiRequestException("Error answering web app query query", result); - } - } catch (IOException e) { - throw new TelegramApiRequestException("Unable to deserialize response", e); - } + return deserializeResponse(answer, SentWebAppMessage.class); } }