From commits-return-68269-archive-asf-public=cust-asf.ponee.io@camel.apache.org Mon Jan 7 15:18:02 2019 Return-Path: X-Original-To: archive-asf-public@cust-asf.ponee.io Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by mx-eu-01.ponee.io (Postfix) with SMTP id 31C7C180661 for ; Mon, 7 Jan 2019 15:18:02 +0100 (CET) Received: (qmail 59270 invoked by uid 500); 7 Jan 2019 14:18:01 -0000 Mailing-List: contact commits-help@camel.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@camel.apache.org Delivered-To: mailing list commits@camel.apache.org Received: (qmail 59261 invoked by uid 99); 7 Jan 2019 14:18:01 -0000 Received: from ec2-52-202-80-70.compute-1.amazonaws.com (HELO gitbox.apache.org) (52.202.80.70) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 07 Jan 2019 14:18:01 +0000 Received: by gitbox.apache.org (ASF Mail Server at gitbox.apache.org, from userid 33) id 9024D85BA1; Mon, 7 Jan 2019 14:18:00 +0000 (UTC) Date: Mon, 07 Jan 2019 14:18:00 +0000 To: "commits@camel.apache.org" Subject: [camel] 01/03: CAMEL-13035 update from telegram channel MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit From: acosentino@apache.org In-Reply-To: <154687067895.21202.14979625739120125892@gitbox.apache.org> References: <154687067895.21202.14979625739120125892@gitbox.apache.org> X-Git-Host: gitbox.apache.org X-Git-Repo: camel X-Git-Refname: refs/heads/camel-2.22.x X-Git-Reftype: branch X-Git-Rev: 95b834ee4b831046528d2bfa21d9f3838ef326fc X-Git-NotificationType: diff X-Git-Multimail-Version: 1.5.dev Auto-Submitted: auto-generated Message-Id: <20190107141800.9024D85BA1@gitbox.apache.org> This is an automated email from the ASF dual-hosted git repository. acosentino pushed a commit to branch camel-2.22.x in repository https://gitbox.apache.org/repos/asf/camel.git commit 95b834ee4b831046528d2bfa21d9f3838ef326fc Author: Gandhi AuthorDate: Fri Jan 4 17:22:31 2019 +0530 CAMEL-13035 update from telegram channel --- .../camel/component/telegram/TelegramEndpoint.java | 6 ++ .../camel/component/telegram/model/Update.java | 18 +++++- .../telegram/TelegramConsumerChannelPostTest.java | 71 ++++++++++++++++++++++ .../resources/messages/updates-channelMessage.json | 19 ++++++ 4 files changed, 113 insertions(+), 1 deletion(-) diff --git a/components/camel-telegram/src/main/java/org/apache/camel/component/telegram/TelegramEndpoint.java b/components/camel-telegram/src/main/java/org/apache/camel/component/telegram/TelegramEndpoint.java index f98394c..d90702d 100644 --- a/components/camel-telegram/src/main/java/org/apache/camel/component/telegram/TelegramEndpoint.java +++ b/components/camel-telegram/src/main/java/org/apache/camel/component/telegram/TelegramEndpoint.java @@ -61,6 +61,12 @@ public class TelegramEndpoint extends ScheduledPollEndpoint { if (update.getMessage().getChat() != null) { exchange.getIn().setHeader(TelegramConstants.TELEGRAM_CHAT_ID, update.getMessage().getChat().getId()); } + }else if(update.getChannelPost() != null) { + exchange.getIn().setBody(update.getChannelPost()); + + if (update.getChannelPost().getChat() != null) { + exchange.getIn().setHeader(TelegramConstants.TELEGRAM_CHAT_ID, update.getChannelPost().getChat().getId()); + } } return exchange; diff --git a/components/camel-telegram/src/main/java/org/apache/camel/component/telegram/model/Update.java b/components/camel-telegram/src/main/java/org/apache/camel/component/telegram/model/Update.java index 01b0a99..e7c814a 100644 --- a/components/camel-telegram/src/main/java/org/apache/camel/component/telegram/model/Update.java +++ b/components/camel-telegram/src/main/java/org/apache/camel/component/telegram/model/Update.java @@ -32,9 +32,15 @@ public class Update implements Serializable { @JsonProperty("update_id") private Long updateId; + private IncomingMessage message; + + + @JsonProperty("channel_post") + private IncomingMessage channelpost; - public Update() { + + public Update() { } public Long getUpdateId() { @@ -52,12 +58,22 @@ public class Update implements Serializable { public void setMessage(IncomingMessage message) { this.message = message; } + + public IncomingMessage getChannelPost() { + return channelpost; + } + + public void setChannelpost(IncomingMessage channelpost) { + this.channelpost = channelpost; + } + @Override public String toString() { final StringBuilder sb = new StringBuilder("Update{"); sb.append("updateId=").append(updateId); sb.append(", message=").append(message); + sb.append(", channel_post=").append(channelpost); sb.append('}'); return sb.toString(); } diff --git a/components/camel-telegram/src/test/java/org/apache/camel/component/telegram/TelegramConsumerChannelPostTest.java b/components/camel-telegram/src/test/java/org/apache/camel/component/telegram/TelegramConsumerChannelPostTest.java new file mode 100644 index 0000000..22d15e7 --- /dev/null +++ b/components/camel-telegram/src/test/java/org/apache/camel/component/telegram/TelegramConsumerChannelPostTest.java @@ -0,0 +1,71 @@ +package org.apache.camel.component.telegram; + +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.Mockito.when; + +import java.time.Instant; + +import org.apache.camel.EndpointInject; +import org.apache.camel.Exchange; +import org.apache.camel.RoutesBuilder; +import org.apache.camel.builder.RouteBuilder; +import org.apache.camel.component.mock.MockEndpoint; +import org.apache.camel.component.telegram.model.Chat; +import org.apache.camel.component.telegram.model.IncomingMessage; +import org.apache.camel.component.telegram.model.UpdateResult; +import org.apache.camel.component.telegram.util.TelegramTestSupport; +import org.junit.Before; +import org.junit.Test; + +public class TelegramConsumerChannelPostTest extends TelegramTestSupport{ + + @EndpointInject(uri = "mock:telegram") + private MockEndpoint endpoint; + + @Before + public void mockAPIs() { + TelegramService api = mockTelegramService(); + + UpdateResult res1 = getJSONResource("messages/updates-channelMessage.json", UpdateResult.class); + + UpdateResult defaultRes = getJSONResource("messages/updates-empty.json", UpdateResult.class); + + when(api.getUpdates(any(), any(), any(), any())).thenReturn(res1).thenAnswer((i) -> defaultRes); + } + + @Test + public void testReceptionOfMessageWithAMessage() throws Exception { + endpoint.expectedMinimumMessageCount(1); + endpoint.assertIsSatisfied(); + + Exchange mediaExchange = endpoint.getExchanges().get(0); + IncomingMessage msg = mediaExchange.getIn().getBody(IncomingMessage.class); + + assertEquals("-1001245756934", mediaExchange.getIn().getHeader(TelegramConstants.TELEGRAM_CHAT_ID)); + + //checking body + assertNotNull(msg); + assertEquals("test", msg.getText()); + assertEquals(Long.valueOf(67L), msg.getMessageId()); + assertEquals(Instant.ofEpochSecond(1546505413L), msg.getDate()); + + // checking chat + Chat chat = msg.getChat(); + assertNotNull(chat); + assertEquals("-1001245756934", chat.getId()); + assertEquals("cameltemp", chat.getTitle()); + assertEquals("channel", chat.getType()); + + } + + @Override + protected RoutesBuilder createRouteBuilder() throws Exception { + return new RouteBuilder() { + @Override + public void configure() throws Exception { + from("telegram:bots/mock-token") + .to("mock:telegram"); + } + }; + } +} diff --git a/components/camel-telegram/src/test/resources/messages/updates-channelMessage.json b/components/camel-telegram/src/test/resources/messages/updates-channelMessage.json new file mode 100644 index 0000000..c1d3118 --- /dev/null +++ b/components/camel-telegram/src/test/resources/messages/updates-channelMessage.json @@ -0,0 +1,19 @@ +{ + "ok": true, + "result": [ + { + "update_id": 219398823, + "channel_post": { + "message_id": 67, + "chat": { + "id": -1001245756934, + "title": "cameltemp", + "username": "cameltelegram", + "type": "channel" + }, + "date": 1546505413, + "text": "test" + } + } + ] +} \ No newline at end of file