Skip to content

Commit 280ca8b

Browse files
committed
add as separate property
1 parent 20ae46c commit 280ca8b

File tree

4 files changed

+39
-5
lines changed

4 files changed

+39
-5
lines changed

slack-api-client/src/main/java/com/slack/api/methods/RequestFormBuilder.java

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1601,18 +1601,26 @@ public static FormBody.Builder toForm(ChatPostMessageRequest req) {
16011601
if (req.getMetadataAsString() != null) {
16021602
form.add("metadata", req.getMetadataAsString());
16031603
} else if (req.getMetadata() != null) {
1604-
Message.Metadata metadata = req.getMetadata();
1605-
if (req.getMetadata().getEntities() == null) {
1604+
String json = GSON.toJson(req.getMetadata());
1605+
form.add("metadata", json);
1606+
}
1607+
1608+
if (req.getEventAndEntityMetadataAsString() != null) {
1609+
form.add("metadata", req.getEventAndEntityMetadataAsString());
1610+
} else if (req.getEventAndEntityMetadata() != null) {
1611+
Message.EventAndEntityMetadata metadata = req.getEventAndEntityMetadata();
1612+
if (metadata.getEntities() == null) {
16061613
String json = GSON.toJson(metadata);
16071614
form.add("metadata", json);
16081615
} else {
16091616
EntityMetadata[] entities = metadata.getEntities();
16101617
entities = prepareEntities(metadata.getEntities());
16111618
metadata.setEntities(entities);
1612-
String json = GSON.toJson(req.getMetadata());
1619+
String json = GSON.toJson(metadata);
16131620
form.add("metadata", json);
16141621
}
16151622
}
1623+
16161624
if (req.getBlocksAsString() != null) {
16171625
form.add("blocks", req.getBlocksAsString());
16181626
} else if (req.getBlocks() != null) {

slack-api-client/src/main/java/com/slack/api/methods/request/chat/ChatPostMessageRequest.java

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,22 @@ public class ChatPostMessageRequest implements SlackApiRequest {
6565
*/
6666
private String metadataAsString;
6767

68+
/**
69+
* JSON object with event and/or entity metadata.
70+
* For event metadata, provide event_type and event_payload fields.
71+
* For entity metadata, provide the entities field.
72+
* This field will overwrite the `metadata` field.
73+
*/
74+
private Message.EventAndEntityMetadata eventAndEntityMetadata;
75+
76+
/**
77+
* JSON object with event and/or entity metadata.
78+
* For event metadata, provide event_type and event_payload fields.
79+
* For entity metadata, provide the entities field.
80+
* This field will overwrite the `metadata` field.
81+
*/
82+
private String eventAndEntityMetadataAsString;
83+
6884
/**
6985
* A JSON-based array of structured blocks, presented as a URL-encoded string.
7086
*/

slack-api-client/src/test/java/test_with_remote_apis/methods/chat_Test.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -947,15 +947,15 @@ public void postMessage_with_work_object_from_object() throws Exception {
947947
.entityPayload(payload)
948948
.build();
949949
EntityMetadata[] entities = { entity };
950-
Message.Metadata metadata = Message.Metadata.builder().entities(entities).build();
950+
Message.EventAndEntityMetadata metadata = Message.EventAndEntityMetadata.builder().entities(entities).build();
951951

952952
// Post the message
953953

954954
ChatPostMessageResponse postResponse = slack.methods().chatPostMessage(ChatPostMessageRequest.builder()
955955
.token(botToken)
956956
.channel(randomChannelId)
957957
.text("I have important information to share :wave:")
958-
.metadata(metadata)
958+
.eventAndEntityMetadata(metadata)
959959
.build());
960960
assertThat(postResponse.getError(), is(nullValue()));
961961

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

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -238,6 +238,16 @@ public static class Metadata {
238238
// Event metadata
239239
private String eventType;
240240
private Map<String, Object> eventPayload;
241+
}
242+
243+
@Data
244+
@Builder
245+
@NoArgsConstructor
246+
@AllArgsConstructor
247+
public static class EventAndEntityMetadata {
248+
// Event metadata
249+
private String eventType;
250+
private Map<String, Object> eventPayload;
241251

242252
// Work object metadata
243253
private EntityMetadata[] entities;

0 commit comments

Comments
 (0)