diff --git a/android/src/main/java/com/iterable/reactnative/RNIterableAPIModule.java b/android/src/main/java/com/iterable/reactnative/RNIterableAPIModule.java index 29a977068..cd46cc2ba 100644 --- a/android/src/main/java/com/iterable/reactnative/RNIterableAPIModule.java +++ b/android/src/main/java/com/iterable/reactnative/RNIterableAPIModule.java @@ -486,20 +486,17 @@ public void updateVisibleRows(ReadableArray visibleRows) { // region Embedded APIs @ReactMethod - public void getEmbeddedPlacements(Promise promise) { - IterableLogger.d(TAG, "getEmbeddedPlacements"); - - JSONArray testPlacements = new JSONArray(); - int[] testPlacementIds = {808, 1121, 112}; - + public void getEmbeddedMessages(Integer placementId, Promise promise) { + IterableLogger.d(TAG, "getEmbeddedMessages for placement: " + placementId); + try { - for (int placementId : testPlacementIds) { - testPlacements.put(createTestPlacement(placementId)); - } - - promise.resolve(Serialization.convertJsonToArray(testPlacements)); + JSONArray embeddedMessageJsonArray = Serialization.serializeEmbeddedMessages(IterableApi.getInstance().getEmbeddedManager().getMessages(placementId)); + IterableLogger.d(TAG, "Messages for placement: " + embeddedMessageJsonArray); + + promise.resolve(Serialization.convertJsonToArray(embeddedMessageJsonArray)); } catch (JSONException e) { - promise.reject("", "Failed to create test placements"); + IterableLogger.e(TAG, e.getLocalizedMessage()); + promise.reject("", "Failed to fetch messages with error " + e.getLocalizedMessage()); } } diff --git a/android/src/main/java/com/iterable/reactnative/Serialization.java b/android/src/main/java/com/iterable/reactnative/Serialization.java index 19b82182f..af33e2e1d 100644 --- a/android/src/main/java/com/iterable/reactnative/Serialization.java +++ b/android/src/main/java/com/iterable/reactnative/Serialization.java @@ -16,6 +16,7 @@ import com.iterable.iterableapi.IterableActionContext; import com.iterable.iterableapi.IterableConfig; import com.iterable.iterableapi.IterableDataRegion; +import com.iterable.iterableapi.IterableEmbeddedMessage; import com.iterable.iterableapi.IterableInAppCloseAction; import com.iterable.iterableapi.IterableInAppDeleteActionType; import com.iterable.iterableapi.IterableInAppHandler; @@ -136,6 +137,17 @@ static JSONArray serializeInAppMessages(List inAppMessages return inAppMessagesJson; } + static JSONArray serializeEmbeddedMessages(List embeddedMessages) { + JSONArray embeddedMessagesJson = new JSONArray(); + if (embeddedMessages != null) { + for (IterableEmbeddedMessage message : embeddedMessages) { + JSONObject messageJson = IterableEmbeddedMessage.Companion.toJSONObject(message); + embeddedMessagesJson.put(messageJson); + } + } + return embeddedMessagesJson; + } + static IterableConfig.Builder getConfigFromReadableMap(ReadableMap iterableContextMap) { try { JSONObject iterableContextJSON = convertMapToJson(iterableContextMap); diff --git a/src/embedded/classes/IterableEmbeddedManager.ts b/src/embedded/classes/IterableEmbeddedManager.ts index e570d7500..a50235bf0 100644 --- a/src/embedded/classes/IterableEmbeddedManager.ts +++ b/src/embedded/classes/IterableEmbeddedManager.ts @@ -1,7 +1,7 @@ import { NativeModules } from 'react-native'; import { Iterable } from '../../core/classes/Iterable'; -import { IterableEmbeddedPlacement } from './IterableEmbeddedPlacement'; +import type { IterableEmbeddedMessage } from './IterableEmbeddedMessage'; const RNIterableAPI = NativeModules.RNIterableAPI; @@ -14,11 +14,14 @@ export class IterableEmbeddedManager { /** * Retrieve the current user's list of embedded placements. * + * @param {number} placementId The ID of the placement to retrieve messages from. * @returns A Promise that resolves to an array of embedded placements. */ - getPlacements(): Promise { - Iterable?.logger?.log('EmbeddedManager.getPlacements'); + getMessages(placementId: number): Promise { + Iterable?.logger?.log( + `EmbeddedManager.getMessages for placement ${placementId}` + ); - return RNIterableAPI.getEmbeddedPlacements(); + return RNIterableAPI.getEmbeddedMessages(placementId); } }