Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Added support for metadata in messages #22158

Merged
merged 3 commits into from
Jun 9, 2021
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions sdk/communication/azure-communication-chat/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
## 1.1.0-beta.1 (Unreleased)
- Added method `ChatThreadAsyncClient.listParticipants(ListParticipantsOptions listParticipantsOptions)`
- Added method `ChatThreadAsyncClient.listReadReceipts(ListReadReceiptOptions listReadReceiptOptions)`
- Added support for metadata in messages.

## 1.0.1 (2021-05-27)
- Dependency versions updated.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
* The versions of Chat Service supported by this client library.
*/
public enum ChatServiceVersion implements ServiceVersion {
V2021_03_07("2021-03-07");
V2021_04_05_preview6("2021-04-05-preview6");

private final String version;

Expand All @@ -34,6 +34,6 @@ public String getVersion() {
*/
public static ChatServiceVersion getLatest() {

return V2021_03_07;
return V2021_04_05_preview6;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -190,7 +190,7 @@ public AzureCommunicationChatServiceImplBuilder addPolicy(HttpPipelinePolicy cus
*/
public AzureCommunicationChatServiceImpl buildClient() {
if (apiVersion == null) {
this.apiVersion = "2021-03-07";
this.apiVersion = "2021-04-05-preview6";
}
if (pipeline == null) {
this.pipeline = createHttpPipeline();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,8 @@ public static ChatMessage convert(com.azure.communication.chat.implementation.mo
.setCreatedOn(obj.getCreatedOn())
.setDeletedOn(obj.getDeletedOn())
.setEditedOn(obj.getEditedOn())
.setSenderDisplayName(obj.getSenderDisplayName());
.setSenderDisplayName(obj.getSenderDisplayName())
.setMetadata(obj.getMetadata());

if (obj.getSenderCommunicationIdentifier() != null) {
chatMessage.setSender(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
import com.azure.core.annotation.Fluent;
import com.fasterxml.jackson.annotation.JsonProperty;
import java.time.OffsetDateTime;
import java.util.Map;

/** Chat message. */
@Fluent
Expand Down Expand Up @@ -79,6 +80,12 @@ public final class ChatMessage {
@JsonProperty(value = "editedOn")
private OffsetDateTime editedOn;

/*
* Message metadata.
*/
@JsonProperty(value = "metadata")
private Map<String, String> metadata;

/**
* Get the id property: The id of the chat message. This id is server generated.
*
Expand Down Expand Up @@ -290,4 +297,24 @@ public ChatMessage setEditedOn(OffsetDateTime editedOn) {
this.editedOn = editedOn;
return this;
}

/**
* Get the metadata property: Message metadata.
*
* @return the metadata value.
*/
public Map<String, String> getMetadata() {
return this.metadata;
}

/**
* Set the metadata property: Message metadata.
*
* @param metadata the metadata value to set.
* @return the ChatMessage object itself.
*/
public ChatMessage setMetadata(Map<String, String> metadata) {
this.metadata = metadata;
return this;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
import com.azure.core.annotation.Fluent;
import com.fasterxml.jackson.annotation.JsonProperty;
import java.time.OffsetDateTime;
import java.util.Map;

/** The ChatMessage model. */
@Fluent
Expand Down Expand Up @@ -73,6 +74,12 @@ public final class ChatMessage {
@JsonProperty(value = "editedOn")
private OffsetDateTime editedOn;

/*
* Message metadata.
*/
@JsonProperty(value = "metadata")
private Map<String, String> metadata;

/**
* Get the id property: The id of the chat message. This id is server generated.
*
Expand Down Expand Up @@ -268,4 +275,24 @@ public ChatMessage setEditedOn(OffsetDateTime editedOn) {
this.editedOn = editedOn;
return this;
}

/**
* Get the metadata property: Message metadata.
*
* @return the metadata value.
*/
public Map<String, String> getMetadata() {
return this.metadata;
}

/**
* Set the metadata property: Message metadata.
*
* @param metadata the metadata value to set.
* @return the ChatMessage object itself.
*/
public ChatMessage setMetadata(Map<String, String> metadata) {
this.metadata = metadata;
return this;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@

import com.azure.core.annotation.Fluent;
import com.fasterxml.jackson.annotation.JsonProperty;
import java.util.Map;

/** Details of the message to send. */
@Fluent
Expand All @@ -29,6 +30,12 @@ public final class SendChatMessageOptions {
@JsonProperty(value = "type")
private ChatMessageType type;

/*
* Message metadata.
*/
@JsonProperty(value = "metadata")
private Map<String, String> metadata;

/**
* Get the content property: Chat message content.
*
Expand Down Expand Up @@ -90,4 +97,24 @@ public SendChatMessageOptions setType(ChatMessageType type) {
this.type = type;
return this;
}

/**
* Get the metadata property: Message metadata.
*
* @return the metadata value.
*/
public Map<String, String> getMetadata() {
return this.metadata;
}

/**
* Set the metadata property: Message metadata.
*
* @param metadata the metadata value to set.
* @return the SendChatMessageOptions object itself.
*/
public SendChatMessageOptions setMetadata(Map<String, String> metadata) {
this.metadata = metadata;
return this;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@

import com.azure.core.annotation.Fluent;
import com.fasterxml.jackson.annotation.JsonProperty;
import java.util.Map;

/** Request payload for updating a chat message. */
@Fluent
Expand All @@ -16,6 +17,12 @@ public final class UpdateChatMessageOptions {
@JsonProperty(value = "content")
private String content;

/*
* Message metadata.
*/
@JsonProperty(value = "metadata")
private Map<String, String> metadata;

/**
* Get the content property: Chat message content.
*
Expand All @@ -35,4 +42,24 @@ public UpdateChatMessageOptions setContent(String content) {
this.content = content;
return this;
}

/**
* Get the metadata property: Message metadata.
*
* @return the metadata value.
*/
public Map<String, String> getMetadata() {
return this.metadata;
}

/**
* Set the metadata property: Message metadata.
*
* @param metadata the metadata value to set.
* @return the UpdateChatMessageOptions object itself.
*/
public UpdateChatMessageOptions setMetadata(Map<String, String> metadata) {
this.metadata = metadata;
return this;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -375,10 +375,7 @@ public Mono<HttpResponse> send(HttpRequest request) {
public void canSendThenGetHtmlMessage(HttpClient httpClient) {
// Arrange
setupTest(httpClient, "canSendThenGetHtmlMessage");
SendChatMessageOptions messageRequest = new SendChatMessageOptions()
.setType(ChatMessageType.HTML)
.setSenderDisplayName("John")
.setContent("<div>test</div>");
SendChatMessageOptions messageRequest = ChatOptionsProvider.sendMessageOptions(ChatMessageType.HTML, "<div>test</div>");

// Action & Assert
StepVerifier
Expand Down Expand Up @@ -457,6 +454,7 @@ public void canSendThenGetMessage(HttpClient httpClient) {
assertEquals(message.getContent().getMessage(), messageRequest.getContent());
assertEquals(message.getType(), messageRequest.getType());
assertEquals(message.getSenderDisplayName(), messageRequest.getSenderDisplayName());
assertTrue(message.getMetadata().equals(messageRequest.getMetadata()));
})
.verifyComplete();
}
Expand All @@ -480,6 +478,7 @@ public void canSendThenGetMessageWithResponse(HttpClient httpClient) {
ChatMessage message = getResponse.getValue();
assertEquals(message.getContent().getMessage(), messageRequest.getContent());
assertEquals(message.getSenderDisplayName(), messageRequest.getSenderDisplayName());
assertTrue(message.getMetadata().equals(messageRequest.getMetadata()));
})
.verifyComplete();
}
Expand Down Expand Up @@ -609,6 +608,7 @@ public void canUpdateExistingMessage(HttpClient httpClient) {
)
.assertNext(message -> {
assertEquals(message.getContent(), updateMessageRequest.getContent());
assertTrue(message.getMetadata().equals(updateMessageRequest.getMetadata()));
});

}
Expand Down Expand Up @@ -659,6 +659,7 @@ public void canUpdateExistingMessageWithResponse(HttpClient httpClient) {
)
.assertNext(message -> {
assertEquals(message.getContent().getMessage(), updateMessageRequest.getContent());
assertTrue(message.getMetadata().equals(updateMessageRequest.getMetadata()));
})
.verifyComplete();
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -286,6 +286,7 @@ public void canSendThenGetMessage(HttpClient httpClient) {
ChatMessage message = chatThreadClient.getMessage(response.getId());
assertEquals(message.getContent().getMessage(), messageRequest.getContent());
assertEquals(message.getSenderDisplayName(), messageRequest.getSenderDisplayName());
assertTrue(message.getMetadata().equals(messageRequest.getMetadata()));
}

@ParameterizedTest
Expand All @@ -301,6 +302,7 @@ public void canSendThenGetMessageWithResponse(HttpClient httpClient) {
ChatMessage message = chatThreadClient.getMessageWithResponse(response.getId(), Context.NONE).getValue();
assertEquals(message.getContent().getMessage(), messageRequest.getContent());
assertEquals(message.getSenderDisplayName(), messageRequest.getSenderDisplayName());
assertTrue(message.getMetadata().equals(messageRequest.getMetadata()));
}

@ParameterizedTest
Expand Down Expand Up @@ -344,6 +346,7 @@ public void canUpdateExistingMessage(HttpClient httpClient) {

ChatMessage message = chatThreadClient.getMessage(response.getId());
assertEquals(message.getContent().getMessage(), updateMessageRequest.getContent());
assertTrue(message.getMetadata().equals(updateMessageRequest.getMetadata()));
}

@ParameterizedTest
Expand All @@ -361,6 +364,7 @@ public void canUpdateExistingMessageWithResponse(HttpClient httpClient) {

ChatMessage message = chatThreadClient.getMessage(response.getId());
assertEquals(message.getContent().getMessage(), updateMessageRequest.getContent());
assertTrue(message.getMetadata().equals(updateMessageRequest.getMetadata()));
}

@ParameterizedTest
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -42,17 +42,23 @@ public static Iterable<ChatParticipant> addParticipantsOptions(String userId1, S
}

public static SendChatMessageOptions sendMessageOptions() {
return sendMessageOptions(ChatMessageType.TEXT, "Content");
}

public static SendChatMessageOptions sendMessageOptions(ChatMessageType type, String content) {
SendChatMessageOptions options = new SendChatMessageOptions();
options.setContent("Content");
options.setContent(content);
options.setSenderDisplayName("Tester");
options.setType(ChatMessageType.TEXT);
options.setType(type);
options.setMetadata(generateMessageMetadata());

return options;
}

public static UpdateChatMessageOptions updateMessageOptions() {
UpdateChatMessageOptions options = new UpdateChatMessageOptions();
options.setContent("Update Test");
options.setMetadata(generateUpdatedMessageMetadata());

return options;
}
Expand All @@ -64,4 +70,22 @@ private static ChatParticipant generateParticipant(String id, String displayName

return chatParticipant;
}

private static Map<String, String> generateMessageMetadata() {
return new HashMap<String, String>() {{
put("deliveryMode", "deliveryMode value");
put("onedriveReferences", "onedriveReferences");
put("amsreferences", "[\\\"test url file 3\\\"]");
put("key", "value key");
}};
}

private static Map<String, String> generateUpdatedMessageMetadata() {
return new HashMap<String, String>() {{
put("deliveryMode", "deliveryMode value - updated");
put("onedriveReferences", "onedriveReferences - updated");
put("amsreferences", "[\\\"test url file 3\\\"]");
put("key", "value key");
}};
}
}
Loading