Skip to content

Commit

Permalink
feat(unification): remove duplicate methods for external ids #370
Browse files Browse the repository at this point in the history
  • Loading branch information
ValentinPostindustria committed Mar 9, 2022
1 parent 392f0af commit 4ca1121
Show file tree
Hide file tree
Showing 4 changed files with 51 additions and 31 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -17,16 +17,12 @@
package org.prebid.mobile;

import androidx.annotation.NonNull;

import androidx.annotation.Nullable;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.*;

/**
* Defines the User Id Object from an External Third Party Source
Expand Down Expand Up @@ -87,6 +83,32 @@ public ExternalUserId(@NonNull String source, @NonNull String identifier, Intege
this.ext = ext;
}

@Nullable
public JSONObject getJson() {
JSONObject result = new JSONObject();

if (getSource() == null || getSource().isEmpty() || getIdentifier() == null || getIdentifier().isEmpty()) {
return null;
}

try {
JSONObject uidObject = new JSONObject();
uidObject.putOpt("id", getIdentifier());
uidObject.putOpt("adtype", getAtype());
if (getExt() != null) {
uidObject.putOpt("ext", new JSONObject(getExt()));
}

result.put("source", getSource());
result.put("uids", new JSONArray().put(uidObject));
} catch (JSONException e) {
LogUtil.w("ExternalUserId", "Can't create json object.");
return null;
}

return result;
}

@Override
public String toString() {
JSONObject transformedUserIdObject = new JSONObject();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -307,7 +307,8 @@ public static String getBuyerId() {
}

/**
* Use this API for storing the externalUserId in the SharedPreference
* Use this API for storing the externalUserId in the SharedPreference.
* Prebid server provide them participating server-side bid adapters.
*
* @param externalUserId the externalUserId instance to be stored in the SharedPreference
*/
Expand Down Expand Up @@ -353,19 +354,6 @@ public static void clearStoredExternalUserIds() {
StorageUtils.clearStoredExternalUserIds();
}

/**
* Sets extended user ids. Prebid server provide them
* to participating server-side bid adapters.
*/
public static void setExtendedUserIds(JSONArray ids) {
extendedUserIds = ids;
}

public static JSONArray getExtendedUserIds() {
return extendedUserIds;
}


/* -------------------- Context and application data -------------------- */

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@
import org.json.JSONArray;
import org.json.JSONObject;
import org.prebid.mobile.DataObject;
import org.prebid.mobile.ExternalUserId;
import org.prebid.mobile.TargetingParams;
import org.prebid.mobile.rendering.bidding.data.AdSize;
import org.prebid.mobile.rendering.bidding.data.bid.Prebid;
Expand Down Expand Up @@ -159,9 +160,15 @@ private void appendUserTargetingParameters(AdRequestInput adRequestInput) {
user.getExt().put("data", Utils.toJson(userDataDictionary));
}

JSONArray extendedIds = TargetingParams.getExtendedUserIds();
if (extendedIds != null && extendedIds.length() > 0) {
user.getExt().put("eids", extendedIds);
List<ExternalUserId> extendedIds = TargetingParams.fetchStoredExternalUserIds();
if (extendedIds != null && extendedIds.size() > 0) {
JSONArray idsJson = new JSONArray();
for (ExternalUserId id : extendedIds) {
if (id != null) {
idsJson.put(id.getJson());
}
}
user.getExt().put("eids", idsJson);
}

final Pair<Float, Float> userLatLng = TargetingParams.getUserLatLng();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,9 +26,7 @@
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.prebid.mobile.DataObject;
import org.prebid.mobile.ExtObject;
import org.prebid.mobile.TargetingParams;
import org.prebid.mobile.*;
import org.prebid.mobile.rendering.bidding.data.AdSize;
import org.prebid.mobile.rendering.bidding.data.bid.Prebid;
import org.prebid.mobile.rendering.models.AdConfiguration;
Expand All @@ -53,6 +51,7 @@

import java.util.Arrays;
import java.util.Calendar;
import java.util.List;

import static org.junit.Assert.*;
import static org.prebid.mobile.rendering.networking.parameters.BasicParameterBuilder.*;
Expand All @@ -78,6 +77,7 @@ public class BasicParameterBuilderTest {
@Before
public void setUp() throws Exception {
mContext = Robolectric.buildActivity(Activity.class).create().get();
PrebidMobile.setApplicationContext(mContext);
ManagersResolver.getInstance().prepare(mContext);
}

Expand All @@ -87,7 +87,7 @@ public void cleanup() throws Exception {
TargetingParams.clearUserKeywords();
TargetingParams.setUserLatLng(null, null);
TargetingParams.setGender(TargetingParams.GENDER.UNKNOWN);
TargetingParams.setExtendedUserIds(null);
TargetingParams.clearStoredExternalUserIds();
TargetingParams.setBuyerId(null);
TargetingParams.setUserId(null);
TargetingParams.setUserCustomData(null);
Expand Down Expand Up @@ -245,7 +245,6 @@ public void whenAppendParametersAndTargetingParamsWereSet_TargetingParamsWereApp
TargetingParams.setGender(TargetingParams.GENDER.MALE);
TargetingParams.setBuyerId(USER_BUYER_ID);
TargetingParams.setUserExt(new ExtObject());
TargetingParams.setExtendedUserIds(new JSONArray());
TargetingParams.setUserLatLng(USER_LAT, USER_LON);

BasicParameterBuilder builder = new BasicParameterBuilder(adConfiguration, mContext.getResources(), mBrowserActivityAvailable);
Expand Down Expand Up @@ -518,10 +517,14 @@ private User getExpectedUser() {
user.customData = USER_CUSTOM;
user.gender = USER_GENDER;
user.buyerUid = USER_BUYER_ID;
JSONArray extendedUserIds = TargetingParams.getExtendedUserIds();
if (extendedUserIds != null && extendedUserIds.length() > 0) {
List<ExternalUserId> extendedUserIds = TargetingParams.fetchStoredExternalUserIds();
if (extendedUserIds != null && extendedUserIds.size() > 0) {
user.ext = new ExtObject();
user.ext.put("eids", extendedUserIds);
JSONArray idsJson = new JSONArray();
for (ExternalUserId id : extendedUserIds) {
idsJson.put(id.getJson());
}
user.ext.put("eids", idsJson);
}

final Geo userGeo = user.getGeo();
Expand Down

0 comments on commit 4ca1121

Please sign in to comment.