Skip to content

Commit 81201f7

Browse files
authored
Merge pull request #423 from seratch/issue-422
Fix #422 Add View to BlockSuggestionPayload
2 parents 0c76c12 + b46bd34 commit 81201f7

File tree

6 files changed

+105
-4
lines changed

6 files changed

+105
-4
lines changed

slack-app-backend/src/main/java/com/slack/api/app_backend/interactive_components/payload/BlockSuggestionPayload.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package com.slack.api.app_backend.interactive_components.payload;
22

33
import com.google.gson.annotations.SerializedName;
4+
import com.slack.api.model.view.View;
45
import lombok.AllArgsConstructor;
56
import lombok.Builder;
67
import lombok.Data;
@@ -27,6 +28,7 @@ public class BlockSuggestionPayload {
2728
private String blockId;
2829
private String value;
2930
private Channel channel;
31+
private View view;
3032

3133
@Data
3234
public static class Team {

slack-app-backend/src/test/java/test_locally/app_backend/interactive_messages/payload/AttachmentActionPayloadTest.java renamed to slack-app-backend/src/test/java/test_locally/app_backend/interactive_components/payload/AttachmentActionPayloadTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package test_locally.app_backend.interactive_messages.payload;
1+
package test_locally.app_backend.interactive_components.payload;
22

33
import com.slack.api.app_backend.interactive_components.payload.AttachmentActionPayload;
44
import com.slack.api.util.json.GsonFactory;

slack-app-backend/src/test/java/test_locally/app_backend/interactive_messages/payload/BlockActionPayloadTest.java renamed to slack-app-backend/src/test/java/test_locally/app_backend/interactive_components/payload/BlockActionPayloadTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package test_locally.app_backend.interactive_messages.payload;
1+
package test_locally.app_backend.interactive_components.payload;
22

33
import com.slack.api.app_backend.interactive_components.payload.BlockActionPayload;
44
import com.slack.api.util.json.GsonFactory;
Lines changed: 99 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,99 @@
1+
package test_locally.app_backend.interactive_components.payload;
2+
3+
import com.slack.api.app_backend.interactive_components.payload.BlockSuggestionPayload;
4+
import com.slack.api.util.json.GsonFactory;
5+
import org.junit.Test;
6+
7+
import static org.hamcrest.CoreMatchers.*;
8+
import static org.hamcrest.MatcherAssert.assertThat;
9+
10+
public class BlockSuggestionPayloadTest {
11+
12+
// https://api.slack.com/messaging/interactivity/enabling
13+
String json = "{\n" +
14+
" \"type\": \"block_suggestion\",\n" +
15+
" \"user\": {\n" +
16+
" \"id\": \"U123\",\n" +
17+
" \"username\": \"seratch\",\n" +
18+
" \"name\": \"seratch\",\n" +
19+
" \"team_id\": \"T123\"\n" +
20+
" },\n" +
21+
" \"container\": {\n" +
22+
" \"type\": \"view\",\n" +
23+
" \"view_id\": \"V123\"\n" +
24+
" },\n" +
25+
" \"api_app_id\": \"A123\",\n" +
26+
" \"token\": \"legacy-fixed-value\",\n" +
27+
" \"action_id\": \"a\",\n" +
28+
" \"block_id\": \"b\",\n" +
29+
" \"value\": \"This is a test\",\n" +
30+
" \"team\": {\n" +
31+
" \"id\": \"T123\",\n" +
32+
" \"domain\": \"seratch\"\n" +
33+
" },\n" +
34+
" \"view\": {\n" +
35+
" \"id\": \"V123\",\n" +
36+
" \"team_id\": \"T123\",\n" +
37+
" \"type\": \"modal\",\n" +
38+
" \"blocks\": [\n" +
39+
" {\n" +
40+
" \"type\": \"input\",\n" +
41+
" \"block_id\": \"b\",\n" +
42+
" \"label\": {\n" +
43+
" \"type\": \"plain_text\",\n" +
44+
" \"text\": \"Label\",\n" +
45+
" \"emoji\": true\n" +
46+
" },\n" +
47+
" \"optional\": false,\n" +
48+
" \"element\": {\n" +
49+
" \"type\": \"external_select\",\n" +
50+
" \"action_id\": \"a\"\n" +
51+
" }\n" +
52+
" }\n" +
53+
" ],\n" +
54+
" \"private_metadata\": \"This is a secret\",\n" +
55+
" \"callback_id\": \"\",\n" +
56+
" \"state\": {\n" +
57+
" \"values\": {}\n" +
58+
" },\n" +
59+
" \"hash\": \"123.random\",\n" +
60+
" \"title\": {\n" +
61+
" \"type\": \"plain_text\",\n" +
62+
" \"text\": \"My App\",\n" +
63+
" \"emoji\": true\n" +
64+
" },\n" +
65+
" \"clear_on_close\": false,\n" +
66+
" \"notify_on_close\": false,\n" +
67+
" \"close\": {\n" +
68+
" \"type\": \"plain_text\",\n" +
69+
" \"text\": \"Cancel\",\n" +
70+
" \"emoji\": true\n" +
71+
" },\n" +
72+
" \"submit\": {\n" +
73+
" \"type\": \"plain_text\",\n" +
74+
" \"text\": \"Submit\",\n" +
75+
" \"emoji\": true\n" +
76+
" },\n" +
77+
" \"previous_view_id\": null,\n" +
78+
" \"root_view_id\": \"V123\",\n" +
79+
" \"app_id\": \"A123\",\n" +
80+
" \"external_id\": \"\",\n" +
81+
" \"app_installed_team_id\": \"T123\",\n" +
82+
" \"bot_id\": \"B123\"\n" +
83+
" }\n" +
84+
"}";
85+
86+
@Test
87+
public void deserialize() {
88+
BlockSuggestionPayload payload = GsonFactory.createSnakeCase().fromJson(json, BlockSuggestionPayload.class);
89+
assertThat(payload.getType(), is("block_suggestion"));
90+
assertThat(payload.getUser(), is(notNullValue()));
91+
assertThat(payload.getTeam(), is(notNullValue()));
92+
assertThat(payload.getContainer(), is(notNullValue()));
93+
assertThat(payload.getChannel(), is(nullValue()));
94+
95+
assertThat(payload.getView(), is(notNullValue()));
96+
assertThat(payload.getView().getPrivateMetadata(), is("This is a secret"));
97+
}
98+
99+
}

slack-app-backend/src/test/java/test_locally/app_backend/interactive_messages/payload/PayloadTypeDetectorTest.java renamed to slack-app-backend/src/test/java/test_locally/app_backend/interactive_components/payload/PayloadTypeDetectorTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package test_locally.app_backend.interactive_messages.payload;
1+
package test_locally.app_backend.interactive_components.payload;
22

33
import com.slack.api.app_backend.interactive_components.payload.BlockActionPayload;
44
import com.slack.api.app_backend.util.JsonPayloadTypeDetector;

slack-app-backend/src/test/java/test_locally/app_backend/interactive_messages/response/ActionResponseTest.java renamed to slack-app-backend/src/test/java/test_locally/app_backend/interactive_components/response/ActionResponseTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package test_locally.app_backend.interactive_messages.response;
1+
package test_locally.app_backend.interactive_components.response;
22

33
import com.slack.api.app_backend.interactive_components.response.ActionResponse;
44
import com.slack.api.util.json.GsonFactory;

0 commit comments

Comments
 (0)