You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ac...@apache.org on 2019/02/12 14:38:52 UTC
[camel] branch master updated: CAMEL-11541 Add sendVenue and
stopMessageLiveLocation support
This is an automated email from the ASF dual-hosted git repository.
acosentino pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel.git
The following commit(s) were added to refs/heads/master by this push:
new fb47ebd CAMEL-11541 Add sendVenue and stopMessageLiveLocation support
fb47ebd is described below
commit fb47ebd3e2b67f2d7fabf1aa0325ebdec11d049c
Author: Denis Istomin <is...@gmail.com>
AuthorDate: Tue Feb 12 01:01:44 2019 +0500
CAMEL-11541 Add sendVenue and stopMessageLiveLocation support
---
.../src/main/docs/telegram-component.adoc | 2 +
.../telegram/model/SendLocationMessage.java | 11 ----
...dLocationMessage.java => SendVenueMessage.java} | 65 +++++++++++++++++-----
...ge.java => StopMessageLiveLocationMessage.java} | 50 ++++++-----------
.../component/telegram/service/RestBotAPI.java | 18 +++++-
.../service/TelegramServiceRestBotAPIAdapter.java | 6 ++
.../telegram/TelegramProducerLocationTest.java | 26 +++++++++
7 files changed, 119 insertions(+), 59 deletions(-)
diff --git a/components/camel-telegram/src/main/docs/telegram-component.adoc b/components/camel-telegram/src/main/docs/telegram-component.adoc
index bc928b0..1d9f3ba 100644
--- a/components/camel-telegram/src/main/docs/telegram-component.adoc
+++ b/components/camel-telegram/src/main/docs/telegram-component.adoc
@@ -194,6 +194,8 @@ The following message bodies are allowed for a producer endpoint (messages of ty
| `OutgoingDocumentMessage` | To send a file to a chat (any media type)
| `SendLocationMessage` | To send a location (setSendLocation)
| `EditMessageLiveLocationMessage` | To send changes to a live location (editMessageLiveLocation)
+| `StopMessageLiveLocationMessage` | To stop updating a live location message sent by the bot or via the bot (for inline bots) before live_period expires (stopMessageLiveLocation)
+| `SendVenueMessage` | To send information about a venue (sendVenue)
| `byte[]` | To send any media type supported. It requires the `CamelTelegramMediaType` header to be set to the appropriate media type
| `String` | To send a text message to a chat. It gets converted automatically into a `OutgoingTextMessage`
diff --git a/components/camel-telegram/src/main/java/org/apache/camel/component/telegram/model/SendLocationMessage.java b/components/camel-telegram/src/main/java/org/apache/camel/component/telegram/model/SendLocationMessage.java
index 67391a8..8556a50 100644
--- a/components/camel-telegram/src/main/java/org/apache/camel/component/telegram/model/SendLocationMessage.java
+++ b/components/camel-telegram/src/main/java/org/apache/camel/component/telegram/model/SendLocationMessage.java
@@ -28,9 +28,6 @@ public class SendLocationMessage extends OutgoingMessage {
@JsonProperty("live_period")
private Integer livePeriod;
- @JsonProperty("disable_notification")
- private boolean disableNotification;
-
@JsonProperty("reply_markup")
private ReplyKeyboardMarkup replyKeyboardMarkup;
@@ -51,14 +48,6 @@ public class SendLocationMessage extends OutgoingMessage {
this.livePeriod = livePeriod;
}
- public boolean isDisableNotification() {
- return disableNotification;
- }
-
- public void setDisableNotification(boolean disableNotification) {
- this.disableNotification = disableNotification;
- }
-
public ReplyKeyboardMarkup getReplyKeyboardMarkup() {
return replyKeyboardMarkup;
}
diff --git a/components/camel-telegram/src/main/java/org/apache/camel/component/telegram/model/SendLocationMessage.java b/components/camel-telegram/src/main/java/org/apache/camel/component/telegram/model/SendVenueMessage.java
similarity index 59%
copy from components/camel-telegram/src/main/java/org/apache/camel/component/telegram/model/SendLocationMessage.java
copy to components/camel-telegram/src/main/java/org/apache/camel/component/telegram/model/SendVenueMessage.java
index 67391a8..6ff2d71 100644
--- a/components/camel-telegram/src/main/java/org/apache/camel/component/telegram/model/SendLocationMessage.java
+++ b/components/camel-telegram/src/main/java/org/apache/camel/component/telegram/model/SendVenueMessage.java
@@ -18,25 +18,33 @@ package org.apache.camel.component.telegram.model;
import com.fasterxml.jackson.annotation.JsonProperty;
-public class SendLocationMessage extends OutgoingMessage {
+public class SendVenueMessage extends OutgoingMessage {
@JsonProperty("longitude")
private double longitude;
@JsonProperty("latitude")
private double latitude;
- @JsonProperty("live_period")
- private Integer livePeriod;
+ @JsonProperty("title")
+ private String title;
- @JsonProperty("disable_notification")
- private boolean disableNotification;
+ @JsonProperty("address")
+ private String address;
+
+ @JsonProperty("foursquare_id")
+ private String foursquareId;
+
+ @JsonProperty("foursquare_type")
+ private String foursquareType;
@JsonProperty("reply_markup")
private ReplyKeyboardMarkup replyKeyboardMarkup;
- public SendLocationMessage(double latitude, double longitude) {
+ public SendVenueMessage(double latitude, double longitude, String title, String address) {
this.setLatitude(latitude);
this.setLongitude(longitude);
+ this.setTitle(title);
+ this.setAddress(address);
}
public void setLatitude(double latitude) {
@@ -47,16 +55,44 @@ public class SendLocationMessage extends OutgoingMessage {
this.longitude = longitude;
}
- public void setLivePeriod(Integer livePeriod) {
- this.livePeriod = livePeriod;
+ public double getLongitude() {
+ return longitude;
+ }
+
+ public double getLatitude() {
+ return latitude;
+ }
+
+ public String getTitle() {
+ return title;
+ }
+
+ public void setTitle(String title) {
+ this.title = title;
+ }
+
+ public String getAddress() {
+ return address;
+ }
+
+ public void setAddress(String address) {
+ this.address = address;
+ }
+
+ public String getFoursquareId() {
+ return foursquareId;
+ }
+
+ public void setFoursquareId(String foursquareId) {
+ this.foursquareId = foursquareId;
}
- public boolean isDisableNotification() {
- return disableNotification;
+ public String getFoursquareType() {
+ return foursquareType;
}
- public void setDisableNotification(boolean disableNotification) {
- this.disableNotification = disableNotification;
+ public void setFoursquareType(String foursquareType) {
+ this.foursquareType = foursquareType;
}
public ReplyKeyboardMarkup getReplyKeyboardMarkup() {
@@ -72,7 +108,10 @@ public class SendLocationMessage extends OutgoingMessage {
final StringBuilder sb = new StringBuilder("SendLocationMessage{");
sb.append("latitude=").append(latitude).append('\'');
sb.append(", longitude=").append(longitude).append('\'');
- sb.append(", livePeriod=").append(livePeriod).append('\'');
+ sb.append(", title=").append(title).append('\'');
+ sb.append(", address=").append(address).append('\'');
+ sb.append(", foursquareId=").append(foursquareId).append('\'');
+ sb.append(", foursquareType=").append(foursquareType).append('\'');
sb.append(", disableNotification=").append(disableNotification).append('\'');
sb.append(", replyToMessageId=").append(replyToMessageId).append('\'');
sb.append(", replyKeyboardMarkup=").append(replyKeyboardMarkup);
diff --git a/components/camel-telegram/src/main/java/org/apache/camel/component/telegram/model/SendLocationMessage.java b/components/camel-telegram/src/main/java/org/apache/camel/component/telegram/model/StopMessageLiveLocationMessage.java
similarity index 51%
copy from components/camel-telegram/src/main/java/org/apache/camel/component/telegram/model/SendLocationMessage.java
copy to components/camel-telegram/src/main/java/org/apache/camel/component/telegram/model/StopMessageLiveLocationMessage.java
index 67391a8..cc536e5 100644
--- a/components/camel-telegram/src/main/java/org/apache/camel/component/telegram/model/SendLocationMessage.java
+++ b/components/camel-telegram/src/main/java/org/apache/camel/component/telegram/model/StopMessageLiveLocationMessage.java
@@ -18,45 +18,31 @@ package org.apache.camel.component.telegram.model;
import com.fasterxml.jackson.annotation.JsonProperty;
-public class SendLocationMessage extends OutgoingMessage {
- @JsonProperty("longitude")
- private double longitude;
+public class StopMessageLiveLocationMessage extends OutgoingMessage {
- @JsonProperty("latitude")
- private double latitude;
+ @JsonProperty("message_id")
+ private Long messageId;
- @JsonProperty("live_period")
- private Integer livePeriod;
-
- @JsonProperty("disable_notification")
- private boolean disableNotification;
+ @JsonProperty("inline_message_id")
+ private String inlineMessageId;
@JsonProperty("reply_markup")
private ReplyKeyboardMarkup replyKeyboardMarkup;
- public SendLocationMessage(double latitude, double longitude) {
- this.setLatitude(latitude);
- this.setLongitude(longitude);
- }
-
- public void setLatitude(double latitude) {
- this.latitude = latitude;
+ public Long getMessageId() {
+ return messageId;
}
- public void setLongitude(double longitude) {
- this.longitude = longitude;
+ public void setMessageId(Long messageId) {
+ this.messageId = messageId;
}
- public void setLivePeriod(Integer livePeriod) {
- this.livePeriod = livePeriod;
+ public String getInlineMessageId() {
+ return inlineMessageId;
}
- public boolean isDisableNotification() {
- return disableNotification;
- }
-
- public void setDisableNotification(boolean disableNotification) {
- this.disableNotification = disableNotification;
+ public void setInlineMessageId(String inlineMessageId) {
+ this.inlineMessageId = inlineMessageId;
}
public ReplyKeyboardMarkup getReplyKeyboardMarkup() {
@@ -69,14 +55,12 @@ public class SendLocationMessage extends OutgoingMessage {
@Override
public String toString() {
- final StringBuilder sb = new StringBuilder("SendLocationMessage{");
- sb.append("latitude=").append(latitude).append('\'');
- sb.append(", longitude=").append(longitude).append('\'');
- sb.append(", livePeriod=").append(livePeriod).append('\'');
- sb.append(", disableNotification=").append(disableNotification).append('\'');
- sb.append(", replyToMessageId=").append(replyToMessageId).append('\'');
+ final StringBuilder sb = new StringBuilder("StopMessageLiveLocationMessage{");
+ sb.append("message_id='").append(messageId).append('\'');
+ sb.append(", inlineMessageId=").append(inlineMessageId).append('\'');
sb.append(", replyKeyboardMarkup=").append(replyKeyboardMarkup);
sb.append('}');
return sb.toString();
}
}
+
diff --git a/components/camel-telegram/src/main/java/org/apache/camel/component/telegram/service/RestBotAPI.java b/components/camel-telegram/src/main/java/org/apache/camel/component/telegram/service/RestBotAPI.java
index 422c3ff..26fcc72 100644
--- a/components/camel-telegram/src/main/java/org/apache/camel/component/telegram/service/RestBotAPI.java
+++ b/components/camel-telegram/src/main/java/org/apache/camel/component/telegram/service/RestBotAPI.java
@@ -31,6 +31,8 @@ import org.apache.camel.component.telegram.model.EditMessageLiveLocationMessage;
import org.apache.camel.component.telegram.model.MessageResult;
import org.apache.camel.component.telegram.model.OutgoingTextMessage;
import org.apache.camel.component.telegram.model.SendLocationMessage;
+import org.apache.camel.component.telegram.model.SendVenueMessage;
+import org.apache.camel.component.telegram.model.StopMessageLiveLocationMessage;
import org.apache.camel.component.telegram.model.UpdateResult;
import org.apache.cxf.jaxrs.ext.multipart.Attachment;
@@ -93,5 +95,17 @@ public interface RestBotAPI {
@Path("/bot{authorizationToken}/editMessageLiveLocation")
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
- MessageResult editMessageLiveLocation(@PathParam("authorizationToken") String authorizationToken, EditMessageLiveLocationMessage location);
-}
+ MessageResult editMessageLiveLocation(@PathParam("authorizationToken") String authorizationToken, EditMessageLiveLocationMessage message);
+
+ @POST
+ @Path("/bot{authorizationToken}/stopMessageLiveLocation")
+ @Consumes(MediaType.APPLICATION_JSON)
+ @Produces(MediaType.APPLICATION_JSON)
+ MessageResult stopMessageLiveLocation(@PathParam("authorizationToken") String authorizationToken, StopMessageLiveLocationMessage message);
+
+ @POST
+ @Path("/bot{authorizationToken}/sendVenue")
+ @Consumes(MediaType.APPLICATION_JSON)
+ @Produces(MediaType.APPLICATION_JSON)
+ MessageResult sendVenue(@PathParam("authorizationToken") String authorizationToken, SendVenueMessage location);
+}
\ No newline at end of file
diff --git a/components/camel-telegram/src/main/java/org/apache/camel/component/telegram/service/TelegramServiceRestBotAPIAdapter.java b/components/camel-telegram/src/main/java/org/apache/camel/component/telegram/service/TelegramServiceRestBotAPIAdapter.java
index d337ffc..639a8ad 100644
--- a/components/camel-telegram/src/main/java/org/apache/camel/component/telegram/service/TelegramServiceRestBotAPIAdapter.java
+++ b/components/camel-telegram/src/main/java/org/apache/camel/component/telegram/service/TelegramServiceRestBotAPIAdapter.java
@@ -37,6 +37,8 @@ import org.apache.camel.component.telegram.model.OutgoingPhotoMessage;
import org.apache.camel.component.telegram.model.OutgoingTextMessage;
import org.apache.camel.component.telegram.model.OutgoingVideoMessage;
import org.apache.camel.component.telegram.model.SendLocationMessage;
+import org.apache.camel.component.telegram.model.SendVenueMessage;
+import org.apache.camel.component.telegram.model.StopMessageLiveLocationMessage;
import org.apache.camel.component.telegram.model.UpdateResult;
import org.apache.cxf.jaxrs.client.JAXRSClientFactory;
import org.apache.cxf.jaxrs.client.WebClient;
@@ -82,6 +84,10 @@ public class TelegramServiceRestBotAPIAdapter implements TelegramService {
resultMessage = api.sendLocation(authorizationToken, (SendLocationMessage) message);
} else if (message instanceof EditMessageLiveLocationMessage) {
resultMessage = api.editMessageLiveLocation(authorizationToken, (EditMessageLiveLocationMessage) message);
+ } else if (message instanceof StopMessageLiveLocationMessage) {
+ resultMessage = api.stopMessageLiveLocation(authorizationToken, (StopMessageLiveLocationMessage) message);
+ } else if (message instanceof SendVenueMessage) {
+ resultMessage = api.sendVenue(authorizationToken, (SendVenueMessage) message);
} else {
throw new IllegalArgumentException("Unsupported message type " + (message != null ? message.getClass().getName() : null));
}
diff --git a/components/camel-telegram/src/test/java/org/apache/camel/component/telegram/TelegramProducerLocationTest.java b/components/camel-telegram/src/test/java/org/apache/camel/component/telegram/TelegramProducerLocationTest.java
index 75dba91..093c943 100644
--- a/components/camel-telegram/src/test/java/org/apache/camel/component/telegram/TelegramProducerLocationTest.java
+++ b/components/camel-telegram/src/test/java/org/apache/camel/component/telegram/TelegramProducerLocationTest.java
@@ -21,6 +21,8 @@ import org.apache.camel.builder.RouteBuilder;
import org.apache.camel.component.telegram.model.EditMessageLiveLocationMessage;
import org.apache.camel.component.telegram.model.MessageResult;
import org.apache.camel.component.telegram.model.SendLocationMessage;
+import org.apache.camel.component.telegram.model.SendVenueMessage;
+import org.apache.camel.component.telegram.model.StopMessageLiveLocationMessage;
import org.apache.camel.component.telegram.service.RestBotAPI;
import org.apache.camel.component.telegram.service.TelegramServiceRestBotAPIAdapter;
import org.apache.camel.component.telegram.util.TelegramTestSupport;
@@ -67,6 +69,18 @@ public class TelegramProducerLocationTest extends TelegramTestSupport {
}
@Test
+ public void testSendVenue() {
+ MessageResult expected = new MessageResult();
+ expected.setOk(true);
+ when(restBotAPI.sendVenue(anyString(), any(SendVenueMessage.class))).thenReturn(expected);
+
+ SendVenueMessage msg = new SendVenueMessage(latitude, longitude, "title", "address");
+ MessageResult actual = (MessageResult) service.sendMessage("mock-token", msg);
+
+ assertEquals(expected, actual);
+ }
+
+ @Test
public void testEditMessageLiveLocation() {
MessageResult expected = new MessageResult();
expected.setOk(true);
@@ -78,6 +92,18 @@ public class TelegramProducerLocationTest extends TelegramTestSupport {
assertEquals(expected, actual);
}
+ @Test
+ public void testStopMessageLiveLocation() {
+ MessageResult expected = new MessageResult();
+ expected.setOk(true);
+ when(restBotAPI.stopMessageLiveLocation(anyString(), any(StopMessageLiveLocationMessage.class))).thenReturn(expected);
+
+ StopMessageLiveLocationMessage msg = new StopMessageLiveLocationMessage();
+ MessageResult actual = (MessageResult) service.sendMessage("mock-token", msg);
+
+ assertEquals(expected, actual);
+ }
+
@Override
protected RoutesBuilder createRouteBuilder() {
return new RouteBuilder() {