Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
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
4 changes: 3 additions & 1 deletion api/openapi.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -8860,7 +8860,9 @@ components:
rbmMessageMedia:
properties:
media:
$ref: "#/components/schemas/rbmMessageContentFile"
items:
$ref: "#/components/schemas/rbmMessageContentFile"
type: array
suggestions:
description: An array of suggested actions for the recipient.
items:
Expand Down
4 changes: 3 additions & 1 deletion bandwidth.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2257,7 +2257,9 @@ components:
type: object
properties:
media:
$ref: '#/components/schemas/rbmMessageContentFile'
type: array
items:
$ref: '#/components/schemas/rbmMessageContentFile'
suggestions:
$ref: '#/components/schemas/multiChannelFullActions'
required:
Expand Down
2 changes: 1 addition & 1 deletion docs/MultiChannelChannelListRBMObjectAllOfContent.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ The content of the message.
|------------ | ------------- | ------------- | -------------|
|**text** | **String** | The text associated with the message. Must be 3270 characters or less | |
|**suggestions** | [**List<MultiChannelAction>**](MultiChannelAction.md) | An array of suggested actions for the recipient. | [optional] |
|**media** | [**RbmMessageContentFile**](RbmMessageContentFile.md) | | |
|**media** | [**List<RbmMessageContentFile>**](RbmMessageContentFile.md) | | |
|**orientation** | **StandaloneCardOrientationEnum** | | |
|**thumbnailImageAlignment** | **ThumbnailAlignmentEnum** | | |
|**cardContent** | [**RbmCardContent**](RbmCardContent.md) | | |
Expand Down
2 changes: 1 addition & 1 deletion docs/RbmMessageMedia.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@

| Name | Type | Description | Notes |
|------------ | ------------- | ------------- | -------------|
|**media** | [**RbmMessageContentFile**](RbmMessageContentFile.md) | | |
|**media** | [**List<RbmMessageContentFile>**](RbmMessageContentFile.md) | | |
|**suggestions** | [**List<MultiChannelAction>**](MultiChannelAction.md) | An array of suggested actions for the recipient. | [optional] |


Expand Down
28 changes: 22 additions & 6 deletions src/main/java/com/bandwidth/sdk/model/RbmMessageMedia.java
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ public class RbmMessageMedia {
public static final String SERIALIZED_NAME_MEDIA = "media";
@SerializedName(SERIALIZED_NAME_MEDIA)
@javax.annotation.Nonnull
private RbmMessageContentFile media;
private List<RbmMessageContentFile> media = new ArrayList<>();

public static final String SERIALIZED_NAME_SUGGESTIONS = "suggestions";
@SerializedName(SERIALIZED_NAME_SUGGESTIONS)
Expand All @@ -69,21 +69,29 @@ public class RbmMessageMedia {
public RbmMessageMedia() {
}

public RbmMessageMedia media(@javax.annotation.Nonnull RbmMessageContentFile media) {
public RbmMessageMedia media(@javax.annotation.Nonnull List<RbmMessageContentFile> media) {
this.media = media;
return this;
}

public RbmMessageMedia addMediaItem(RbmMessageContentFile mediaItem) {
if (this.media == null) {
this.media = new ArrayList<>();
}
this.media.add(mediaItem);
return this;
}

/**
* Get media
* @return media
*/
@javax.annotation.Nonnull
public RbmMessageContentFile getMedia() {
public List<RbmMessageContentFile> getMedia() {
return media;
}

public void setMedia(@javax.annotation.Nonnull RbmMessageContentFile media) {
public void setMedia(@javax.annotation.Nonnull List<RbmMessageContentFile> media) {
this.media = media;
}

Expand Down Expand Up @@ -233,8 +241,16 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti
}
}
JsonObject jsonObj = jsonElement.getAsJsonObject();
// validate the required field `media`
RbmMessageContentFile.validateJsonElement(jsonObj.get("media"));
// ensure the json data is an array
if (!jsonObj.get("media").isJsonArray()) {
throw new IllegalArgumentException(String.format(Locale.ROOT, "Expected the field `media` to be an array in the JSON string but got `%s`", jsonObj.get("media").toString()));
}

JsonArray jsonArraymedia = jsonObj.getAsJsonArray("media");
// validate the required field `media` (array)
for (int i = 0; i < jsonArraymedia.size(); i++) {
RbmMessageContentFile.validateJsonElement(jsonArraymedia.get(i));
};
if (jsonObj.get("suggestions") != null && !jsonObj.get("suggestions").isJsonNull()) {
JsonArray jsonArraysuggestions = jsonObj.getAsJsonArray("suggestions");
if (jsonArraysuggestions != null) {
Expand Down
13 changes: 7 additions & 6 deletions src/test/java/com/bandwidth/sdk/smoke/MultiChannelApiTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -244,7 +244,6 @@ public void createMultiChannelRBMTextMessageTest() throws ApiException {
}

@Test
@Disabled("skip until messaging updates API")
public void createMultiChannelRBMMediaMessageTest() throws ApiException {
MultiChannelChannelListRequestObject channelListRBMObject = new MultiChannelChannelListRequestObject(
new MultiChannelChannelListRBMObject()
Expand All @@ -253,10 +252,10 @@ public void createMultiChannelRBMMediaMessageTest() throws ApiException {
.channel(MultiChannelMessageChannelEnum.RBM)
.content(new MultiChannelChannelListRBMObjectAllOfContent(
new RbmMessageMedia()
.media(new RbmMessageContentFile()
.media(Arrays.asList(new RbmMessageContentFile()
.fileUrl(URI.create("https://www.example.com/image1.png"))
.thumbnailUrl(URI.create("https://www.example.com/thumbnail"))
)
))
.suggestions(Arrays.asList(
new MultiChannelAction(new RbmActionDial()
.type(RbmActionTypeEnum.DIAL_PHONE)
Expand Down Expand Up @@ -305,9 +304,11 @@ public void createMultiChannelRBMMediaMessageTest() throws ApiException {
assertThat(channelListObject.getContent(), instanceOf(MultiChannelChannelListRBMObjectAllOfContent.class));
assertThat(channelListObject.getContent().getActualInstance(), instanceOf(RbmMessageMedia.class));
RbmMessageMedia rbmContent = channelListObject.getContent().getRbmMessageMedia();
assertThat(rbmContent.getMedia(), instanceOf(RbmMessageContentFile.class));
assertThat(rbmContent.getMedia().getFileUrl(), instanceOf(URI.class));
assertThat(rbmContent.getMedia().getThumbnailUrl(), instanceOf(URI.class));
assertThat(rbmContent.getMedia(), instanceOf(List.class));
assertThat(rbmContent.getMedia().get(0), instanceOf(RbmMessageContentFile.class));
RbmMessageContentFile rbmMediaFile = rbmContent.getMedia().get(0);
assertThat(rbmMediaFile.getFileUrl(), instanceOf(URI.class));
assertThat(rbmMediaFile.getThumbnailUrl(), instanceOf(URI.class));
assertThat(rbmContent.getSuggestions(), instanceOf(List.class));
assertThat(rbmContent.getSuggestions().get(0), instanceOf(MultiChannelAction.class));
assertThat(rbmContent.getSuggestions().get(0).getActualInstance(), instanceOf(RbmActionDial.class));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@
*/
public class RbmMessageMediaTest {
private final RbmMessageMedia model = new RbmMessageMedia()
.media(new RbmMessageContentFile())
.media(new ArrayList<RbmMessageContentFile>(Arrays.asList(new RbmMessageContentFile())))
.suggestions(new ArrayList<MultiChannelAction>(Arrays.asList(new MultiChannelAction())));

/**
Expand All @@ -46,7 +46,8 @@ public void testRbmMessageMedia() {
*/
@Test
public void mediaTest() {
assertThat(model.getMedia(), instanceOf(RbmMessageContentFile.class));
assertThat(model.getMedia(), instanceOf(ArrayList.class));

}

/**
Expand Down