From fe0e59b52fa7619168e313c08ecb61b4eb5debdd Mon Sep 17 00:00:00 2001 From: Gavin Bunney Date: Sat, 2 Sep 2023 11:12:07 -0700 Subject: [PATCH] Add threadTs to BlockActionPayload.Container --- .../payload/BlockActionPayload.java | 1 + .../payload/BlockActionPayloadTest.java | 75 +++++++++++++++++++ 2 files changed, 76 insertions(+) diff --git a/slack-app-backend/src/main/java/com/slack/api/app_backend/interactive_components/payload/BlockActionPayload.java b/slack-app-backend/src/main/java/com/slack/api/app_backend/interactive_components/payload/BlockActionPayload.java index 739b1328f..5782d514f 100644 --- a/slack-app-backend/src/main/java/com/slack/api/app_backend/interactive_components/payload/BlockActionPayload.java +++ b/slack-app-backend/src/main/java/com/slack/api/app_backend/interactive_components/payload/BlockActionPayload.java @@ -78,6 +78,7 @@ public static class Container { @SerializedName("is_app_unfurl") private boolean appUnfurl; private String appUnfurlUrl; + private String threadTs; } @Data diff --git a/slack-app-backend/src/test/java/test_locally/app_backend/interactive_components/payload/BlockActionPayloadTest.java b/slack-app-backend/src/test/java/test_locally/app_backend/interactive_components/payload/BlockActionPayloadTest.java index 58ed139d8..8dc28f2e6 100644 --- a/slack-app-backend/src/test/java/test_locally/app_backend/interactive_components/payload/BlockActionPayloadTest.java +++ b/slack-app-backend/src/test/java/test_locally/app_backend/interactive_components/payload/BlockActionPayloadTest.java @@ -322,4 +322,79 @@ public void deserialize_app_unfurl() { } + + String jsonInThread = "{\n" + + " \"type\": \"block_actions\",\n" + + " \"user\": {\n" + + " \"id\": \"U111\",\n" + + " \"username\": \"seratch\",\n" + + " \"name\": \"seratch\",\n" + + " \"team_id\": \"T111\"\n" + + " },\n" + + " \"api_app_id\": \"A111\",\n" + + " \"token\": \"xxx\",\n" + + " \"container\": {\n" + + " \"type\": \"message\",\n" + + " \"message_ts\": \"1693635296.000500\",\n" + + " \"thread_ts\": \"1693616242.466609\",\n" + + " \"channel_id\": \"C111\",\n" + + " \"is_ephemeral\": true\n" + + " },\n" + + " \"trigger_id\": \"111.222.xxx\",\n" + + " \"team\": {\n" + + " \"id\": \"T111\",\n" + + " \"domain\": \"xxx\"\n" + + " },\n" + + " \"channel\": {\n" + + " \"id\": \"C111\",\n" + + " \"name\": \"random\"\n" + + " },\n" + + " \"state\": {\n" + + " \"values\": {\n" + + " \"block_1\": {\n" + + " \"action_1\": {\n" + + " \"type\": \"external_select\",\n" + + " \"selected_option\": {\n" + + " \"text\": {\n" + + " \"type\": \"plain_text\",\n" + + " \"text\": \"Schedule\",\n" + + " \"emoji\": true\n" + + " },\n" + + " \"value\": \"schedule\"\n" + + " }\n" + + " }\n" + + " }\n" + + " }\n" + + " },\n" + + " \"response_url\": \"https://hooks.slack.com/actions/T111/111/xxx\",\n" + + " \"actions\": [\n" + + " {\n" + + " \"action_id\": \"save\",\n" + + " \"block_id\": \"block_1\",\n" + + " \"text\": {\n" + + " \"type\": \"plain_text\",\n" + + " \"text\": \"Save\",\n" + + " \"emoji\": true\n" + + " },\n" + + " \"value\": \"1\",\n" + + " \"type\": \"button\",\n" + + " \"action_ts\": \"1606455407.603639\"\n" + + " }\n" + + " ]\n" + + "}"; + + @Test + public void threaded_message() { + BlockActionPayload payload = GSON.fromJson(jsonInThread, BlockActionPayload.class); + assertThat(payload.getType(), is("block_actions")); + assertThat(payload.getActions().size(), is(1)); + assertThat(payload.getContainer().getMessageTs(), is("1693635296.000500")); + assertThat(payload.getContainer().getThreadTs(), is("1693616242.466609")); + + assertThat(payload.getState().getValues() + .get("block_1") + .get("action_1") + .getSelectedOption().getValue(), + is("schedule")); + } }