Skip to content

Commit 0f7dac9

Browse files
authored
Fix #1212 Fails to parse channel_email_addresses in admin.conversations.search API response (#1214)
* Fix #1212 Fails to parse channel_email_addresses in admin.conversations.search API response * Fix tests
1 parent 1a4c198 commit 0f7dac9

File tree

6 files changed

+58
-12
lines changed

6 files changed

+58
-12
lines changed

json-logs/samples/api/admin.conversations.search.json

Lines changed: 21 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,11 +25,24 @@
2525
],
2626
"is_pending_ext_shared": false,
2727
"connected_team_ids": [
28-
""
28+
"",
29+
"T00000000"
2930
],
3031
"conversation_host_id": "E00000000",
3132
"channel_email_addresses": [
32-
""
33+
{
34+
"team_id": "T00000000",
35+
"user_id": "W00000000",
36+
"conversation_id": "C00000000",
37+
"date_created": 12345,
38+
"address": "",
39+
"name": "",
40+
"icons": {
41+
"image_36": "https://www.example.com/",
42+
"image_48": "https://www.example.com/",
43+
"image_72": "https://www.example.com/"
44+
}
45+
}
3346
],
3447
"connected_limited_team_ids": [
3548
""
@@ -56,5 +69,10 @@
5669
"error": "",
5770
"needed": "",
5871
"provided": "",
59-
"total_count": 12345
72+
"total_count": 12345,
73+
"response_metadata": {
74+
"messages": [
75+
""
76+
]
77+
}
6078
}

slack-api-client/src/main/java/com/slack/api/methods/response/admin/conversations/AdminConversationsSearchResponse.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package com.slack.api.methods.response.admin.conversations;
22

33
import com.slack.api.methods.SlackApiTextResponse;
4+
import com.slack.api.model.ChannelEmailAddress;
45
import com.slack.api.model.ErrorResponseMetadata;
56
import lombok.Data;
67

@@ -48,7 +49,7 @@ public static class Conversation {
4849
private List<String> pendingConnectedTeamIds;
4950
private List<String> connectedTeamIds;
5051
private List<String> connectedLimitedTeamIds;
51-
private List<String> channelEmailAddresses;
52+
private List<ChannelEmailAddress> channelEmailAddresses;
5253
private String contextTeamId;
5354
private Boolean isPendingExtShared;
5455
private Boolean isDisconnectInProgress;

slack-api-client/src/test/java/test_locally/api/methods/FieldValidation_a_to_c_Test.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -415,7 +415,8 @@ void validateConversation(Conversation conversation) throws Exception {
415415
"getPendingConnectedTeamIds",
416416
"getConnectedLimitedTeamIds",
417417
"getIsUserDeleted",
418-
"getProperties"
418+
"getProperties",
419+
"getChannelEmailAddresses"
419420
);
420421
}
421422

@@ -528,7 +529,8 @@ public void conversations_commands() throws Exception {
528529
"getParentUserId",
529530
"getBotProfile",
530531
"getIsUserDeleted",
531-
"getProperties"
532+
"getProperties",
533+
"getChannelEmailAddresses"
532534
);
533535
}
534536
{

slack-api-client/src/test/java/test_with_remote_apis/methods_admin_api/AdminApi_conversations_Test.java

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@
3131

3232
import static org.hamcrest.CoreMatchers.*;
3333
import static org.hamcrest.MatcherAssert.assertThat;
34+
import static org.hamcrest.Matchers.greaterThan;
3435

3536
@Slf4j
3637
public class AdminApi_conversations_Test {
@@ -56,25 +57,23 @@ public static void tearDown() throws InterruptedException {
5657
public void search() throws Exception {
5758
if (orgAdminUserToken != null) {
5859
AdminConversationsSearchResponse search = methodsAsync.adminConversationsSearch(r -> r
59-
.limit(1)
60+
.limit(20)
6061
.sort("member_count")
6162
.sortDir("desc")
6263
.searchChannelTypes(Arrays.asList("exclude_archived", "private_exclude"))
6364
).get();
6465
assertThat(search.getError(), is(nullValue()));
65-
// TODO: 2023-09-26: unexpectedly zero result
66-
assertThat(search.getConversations().size(), is(1));
66+
assertThat(search.getConversations().size(), is(greaterThan(0)));
6767

6868
AdminConversationsSearchResponse search2 = methodsAsync.adminConversationsSearch(r -> r
69-
.limit(1)
69+
.limit(20)
7070
.sort("member_count")
7171
.sortDir("desc")
7272
.searchChannelTypes(Arrays.asList("exclude_archived", "private_exclude"))
7373
.cursor(search.getNextCursor())
7474
).get();
7575
assertThat(search2.getError(), is(nullValue()));
76-
// TODO: 2023-09-26: unexpectedly zero result
77-
assertThat(search2.getConversations().size(), is(1));
76+
assertThat(search2.getConversations().size(), is(greaterThan(1)));
7877
}
7978
}
8079

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
package com.slack.api.model;
2+
3+
import com.google.gson.annotations.SerializedName;
4+
import lombok.Data;
5+
6+
@Data
7+
public class ChannelEmailAddress {
8+
private String teamId;
9+
private String userId;
10+
private String conversationId;
11+
private Integer dateCreated;
12+
private String address;
13+
private String name;
14+
private Icons icons;
15+
16+
@Data
17+
public static class Icons {
18+
@SerializedName("image_36")
19+
private String image36;
20+
@SerializedName("image_48")
21+
private String image48;
22+
@SerializedName("image_72")
23+
private String image72;
24+
}
25+
}

slack-api-model/src/main/java/com/slack/api/model/Conversation.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,7 @@ public class Conversation {
6262
private List<String> internalTeamIds;
6363
private List<String> connectedTeamIds;
6464
private List<String> connectedLimitedTeamIds;
65+
private List<ChannelEmailAddress> channelEmailAddresses;
6566

6667
private String contextTeamId;
6768

0 commit comments

Comments
 (0)