Skip to content

Commit

Permalink
Merge pull request #649 from Iterable/evan/MOB-6731-update-get-messag…
Browse files Browse the repository at this point in the history
…es-for-placements

[MOB-6731] updates get messages for placement support
  • Loading branch information
evantk91 authored Dec 5, 2023
2 parents b81fcae + 3426a74 commit 2b9f5f4
Show file tree
Hide file tree
Showing 3 changed files with 72 additions and 14 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -241,25 +241,52 @@ void getInAppMessages(int count, @NonNull IterableHelper.IterableActionHandler o
}

/**
* A package-private method to get a list of Embedded Messages from Iterable;
* Passes the result to the callback.
* To get list of messages as a list of EmbeddedMessages in memory, use
* {@link IterableEmbeddedManager#getEmbeddedMessages()} instead
* Gets a list of placements for the list of placement ids passed in from Iterable;
* passes the result to the callback.
*
* @param placementIds array of placement ids
* @param onCallback
*/
void getEmbeddedMessages(@NonNull IterableHelper.IterableActionHandler onCallback) {

public void getEmbeddedMessages(@Nullable Long[] placementIds, @NonNull IterableHelper.IterableActionHandler onCallback) {
if (!checkSDKInitialization()) {
return;
}
apiClient.getEmbeddedMessages(placementIds, onCallback);
}

/**
* Gets a list of placements for the list of placement ids passed in from Iterable;
* passes the result to the success or failure callback.
*
* @param placementIds
* @param onSuccess
* @param onFailure
*/

public void getEmbeddedMessages(@Nullable Long[] placementIds, @NonNull IterableHelper.SuccessHandler onSuccess, @NonNull IterableHelper.FailureHandler onFailure) {
if (!checkSDKInitialization()) {
return;
}
apiClient.getEmbeddedMessages(onCallback);
apiClient.getEmbeddedMessages(placementIds, onSuccess, onFailure);
}

/**
* A package-private method to get a list of Embedded Messages from Iterable;
* Passes the result to the success or failure callback.
* Used by the IterableEmbeddedManager.
*
* To get list of messages as a list of EmbeddedMessages in memory, use
* {@link IterableEmbeddedManager#getMessages(Long)} instead
*
* @param onSuccess
* @param onFailure
*/
void getEmbeddedMessages(@NonNull IterableHelper.SuccessHandler onSuccess, @NonNull IterableHelper.FailureHandler onFailure) {
if (!checkSDKInitialization()) {
return;
}
apiClient.getEmbeddedMessages(onSuccess, onFailure);
apiClient.getEmbeddedMessages(null, onSuccess, onFailure);
}

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -217,7 +217,7 @@ public void getInAppMessages(int count, @NonNull IterableHelper.IterableActionHa
}
}

void getEmbeddedMessages(@NonNull IterableHelper.IterableActionHandler onCallback) {
void getEmbeddedMessages(@Nullable Long[] placementIds, @NonNull IterableHelper.IterableActionHandler onCallback) {
JSONObject requestJSON = new JSONObject();

try {
Expand All @@ -226,15 +226,29 @@ void getEmbeddedMessages(@NonNull IterableHelper.IterableActionHandler onCallbac
requestJSON.put(IterableConstants.ITBL_KEY_SDK_VERSION, IterableConstants.ITBL_KEY_SDK_VERSION_NUMBER);
requestJSON.put(IterableConstants.ITBL_SYSTEM_VERSION, Build.VERSION.RELEASE);
requestJSON.put(IterableConstants.KEY_PACKAGE_NAME, authProvider.getContext().getPackageName());
requestJSON.put("placementId", "0");

sendGetRequest(IterableConstants.ENDPOINT_GET_EMBEDDED_MESSAGES, requestJSON, onCallback);
StringBuilder pathBuilder = new StringBuilder(IterableConstants.ENDPOINT_GET_EMBEDDED_MESSAGES + "?");

if (authProvider.getEmail() != null) {
pathBuilder.append("email=").append(authProvider.getEmail());
} else {
pathBuilder.append("userId=").append(authProvider.getUserId());
}

if (placementIds != null) {
for (Long placementId : placementIds) {
pathBuilder.append("&placementIds=").append(placementId);
}
}

String path = pathBuilder.toString();
sendGetRequest(path, requestJSON, onCallback);
} catch (JSONException e) {
e.printStackTrace();
}
}

void getEmbeddedMessages(@NonNull IterableHelper.SuccessHandler onSuccess, @NonNull IterableHelper.FailureHandler onFailure) {
void getEmbeddedMessages(@Nullable Long[] placementIds, @NonNull IterableHelper.SuccessHandler onSuccess, @NonNull IterableHelper.FailureHandler onFailure) {
JSONObject requestJSON = new JSONObject();

try {
Expand All @@ -245,7 +259,23 @@ void getEmbeddedMessages(@NonNull IterableHelper.SuccessHandler onSuccess, @NonN
requestJSON.put(IterableConstants.KEY_PACKAGE_NAME, authProvider.getContext().getPackageName());
requestJSON.put("placementId", "0");

sendGetRequest(IterableConstants.ENDPOINT_GET_EMBEDDED_MESSAGES, requestJSON, onSuccess, onFailure);
StringBuilder pathBuilder = new StringBuilder(IterableConstants.ENDPOINT_GET_EMBEDDED_MESSAGES + "?");

if (authProvider.getEmail() != null) {
pathBuilder.append("email=").append(authProvider.getEmail());
} else {
pathBuilder.append("userId=").append(authProvider.getUserId());
}

if (placementIds != null) {
for (Long placementId : placementIds) {
pathBuilder.append("&placementIds=").append(placementId);
}
}

String path = pathBuilder.toString();
IterableLogger.d("IterableApiClient", path);
sendGetRequest(path, requestJSON, onSuccess, onFailure);
} catch (JSONException e) {
e.printStackTrace();
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,6 @@ public class IterableEmbeddedManager : IterableActivityMonitor.AppStateCallback
private var localPlacementMessagesMap = mutableMapOf<Long, List<IterableEmbeddedMessage>>()
private var placementIds = mutableListOf<Long>()

private var localMessages: List<IterableEmbeddedMessage> = ArrayList()
private var updateHandleListeners = mutableListOf<IterableEmbeddedUpdateHandler>()
private var iterableApi: IterableApi
private var context: Context
Expand Down Expand Up @@ -80,14 +79,16 @@ public class IterableEmbeddedManager : IterableActivityMonitor.AppStateCallback
}
}

private fun getPlacementIds(): List<Long> {
fun getPlacementIds(): List<Long> {
return placementIds
}

//Network call to get the embedded messages
fun syncMessages() {
IterableLogger.v(TAG, "Syncing messages...")

//var testPlacements: Array<Long> = arrayOf(83)

IterableApi.sharedInstance.getEmbeddedMessages(SuccessHandler { data ->
IterableLogger.v(TAG, "Got response from network call to get embedded messages")
try {
Expand Down

0 comments on commit 2b9f5f4

Please sign in to comment.