Skip to content

Commit c2ca89a

Browse files
authored
Merge pull request allbegray#37 from kirillsablin/add-threads-support
add threads support
2 parents 8029487 + 7a4bd60 commit c2ca89a

4 files changed

Lines changed: 39 additions & 5 deletions

File tree

.travis.yml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,3 @@
1-
language: java
1+
language: java
2+
jdk:
3+
- oraclejdk8

src/main/java/allbegray/slack/type/Message.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ public class Message {
1212
protected String ts;
1313
protected String user;
1414
protected String text;
15+
protected String thread_ts;
1516

1617
protected Boolean is_starred;
1718
protected String subtype;
@@ -52,6 +53,14 @@ public void setText(String text) {
5253
this.text = text;
5354
}
5455

56+
public String getThread_ts() {
57+
return thread_ts;
58+
}
59+
60+
public void setThread_ts(String thread_ts) {
61+
this.thread_ts = thread_ts;
62+
}
63+
5564
public String getPermalink() {
5665
return permalink;
5766
}

src/main/java/allbegray/slack/webapi/method/chats/ChatPostMessageMethod.java

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ public ChatPostMessageMethod(String channel, String text) {
4141
protected boolean unfurl_media;
4242
protected String icon_url;
4343
protected String icon_emoji;
44+
protected String thread_ts;
4445

4546
public String getChannel() {
4647
return channel;
@@ -125,6 +126,13 @@ public void setIcon_emoji(String icon_emoji) {
125126
this.icon_emoji = icon_emoji;
126127
}
127128

129+
public String getThread_ts() {
130+
return thread_ts;
131+
}
132+
133+
public void setThread_ts(String thread_ts) {
134+
this.thread_ts = thread_ts;
135+
}
128136
@Override
129137
public String getMethodName() {
130138
return SlackWebApiConstants.CHAT_POST_MESSAGE;
@@ -166,6 +174,9 @@ protected void createParameters(Map<String, String> parameters) {
166174
parameters.put("unfurl_media", String.valueOf(unfurl_media));
167175
parameters.put("icon_url", icon_url);
168176
parameters.put("icon_emoji", icon_emoji);
177+
if (thread_ts != null) {
178+
parameters.put("thread_ts", thread_ts);
179+
}
169180
}
170181

171182
}

src/test/java/allbegray/slack/SlackWebApiClientTest.java

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
import org.junit.After;
99
import org.junit.Assert;
1010
import org.junit.Before;
11+
import org.junit.Ignore;
1112
import org.junit.Test;
1213

1314
import allbegray.slack.type.Authentication;
@@ -26,6 +27,7 @@
2627
import allbegray.slack.type.User;
2728
import allbegray.slack.type.UserPresence;
2829
import allbegray.slack.webapi.SlackWebApiClient;
30+
import wiremock.org.apache.commons.lang3.RandomStringUtils;
2931

3032
public class SlackWebApiClientTest {
3133

@@ -48,7 +50,6 @@ public void shutdown() {
4850
public void MultipartyDirectMessageChannelTest() {
4951
String user1 = "userId1";
5052
String user2 = "userId2";
51-
5253
Group group = webApiClient.openMultipartyDirectMessageChannel(user1, user2);
5354

5455
List<Group> messageChannels = webApiClient.getMultipartyDirectMessageChannelList();
@@ -107,13 +108,15 @@ public void basicTest() {
107108
teamAccessLogList = webApiClient.getTeamAccessLogList(1);
108109
Assert.assertTrue(teamAccessLogList.getLogins().size() > 0);
109110
} catch (Exception e) {
110-
Assert.assertTrue(e.getMessage().equals("paid_only"));
111+
Assert.assertTrue(e.getMessage().startsWith("paid_only"));
111112
}
112113

113114
Team team = webApiClient.getTeamInfo();
114115
Assert.assertTrue(team.getId() != null);
115116

116-
Channel channel = webApiClient.createChannel("test_channel");
117+
118+
String channelName = "test_channel_" + RandomStringUtils.randomAlphabetic(5).toLowerCase();
119+
Channel channel = webApiClient.createChannel(channelName);
117120
String channelId = channel.getId();
118121

119122
Assert.assertTrue(channel.getId() != null);
@@ -133,7 +136,8 @@ public void basicTest() {
133136
Assert.assertTrue(channel.getId() != null);
134137
channelId = channel.getId();
135138

136-
channel = webApiClient.renameChannel(channelId, "changed_test_channel");
139+
String newChannelName = RandomStringUtils.randomAlphabetic(5).toLowerCase() + "_changed_test_channel";
140+
channel = webApiClient.renameChannel(channelId, newChannelName);
137141
Assert.assertTrue(channel.getId() != null);
138142
channelId = channel.getId();
139143

@@ -155,6 +159,11 @@ public void basicTest() {
155159
String ts = webApiClient.postMessage(postMessage);
156160
Assert.assertTrue(ts != null);
157161

162+
// threaded message
163+
ChatPostMessageMethod answerMessage = new ChatPostMessageMethod(channelId, "test answer");
164+
answerMessage.setThread_ts(ts);
165+
String tsAnswer = webApiClient.postMessage(answerMessage);
166+
158167
webApiClient.addStarToMessage(channelId, ts);
159168
webApiClient.addReactionToMessage("squirrel", channelId, ts);
160169
webApiClient.pinMessage(channelId, ts);
@@ -198,6 +207,9 @@ public void basicTest() {
198207
Message message = history.getMessages().get(0);
199208
Assert.assertTrue(message.getType() != null);
200209
Assert.assertTrue(message.getTs() != null);
210+
211+
Message answer = history.getMessages().stream().filter(mess -> mess.getTs().equals(tsAnswer)).findFirst().get();
212+
Assert.assertEquals(ts, answer.getThread_ts());
201213
}
202214

203215
@Test

0 commit comments

Comments
 (0)