Skip to content

Commit

Permalink
Add brand field to content item (#3)
Browse files Browse the repository at this point in the history
  • Loading branch information
weiluosc authored Aug 9, 2024
1 parent 8b63bc4 commit 9880504
Show file tree
Hide file tree
Showing 7 changed files with 82 additions and 89 deletions.
12 changes: 7 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
# Snap Conversions API V3
- API version: 1.1.2
# capi-v3-java

Snap Conversions API V3
- API version: 1.1.5


Business SDK V3
Expand Down Expand Up @@ -41,7 +43,7 @@ Add this dependency to your project's POM:
<dependency>
<groupId>com.snap.business.sdk.v3</groupId>
<artifactId>snap-capi</artifactId>
<version>1.1.2</version>
<version>1.1.5</version>
<scope>compile</scope>
</dependency>
```
Expand All @@ -56,7 +58,7 @@ Add this dependency to your project's build file:
}
dependencies {
implementation "com.snap.business.sdk.v3:snap-capi:1.1.2"
implementation "com.snap.business.sdk.v3:snap-capi:1.1.5"
}
```

Expand All @@ -70,7 +72,7 @@ mvn clean package

Then manually install the following JARs:

* `target/snap-capi-1.1.2.jar`
* `target/snap-capi-1.1.5.jar`
* `target/lib/*.jar`

## Getting Started
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,9 @@
import com.snap.business.sdk.v3.util.ServerEnv;
import java.util.Arrays;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.logging.Level;
import okhttp3.OkHttpClient;
import org.slf4j.Logger;
Expand All @@ -43,17 +45,30 @@ private ConversionApiClient(Builder builder) {
: new ApiClient();
client.addDefaultHeader(SDK_VER_HEADER, LANG_VERSION);
client.addDefaultHeader("accept-encoding", "");

// if there are additional headers, add them to the client.
if (builder.additionalHeaders != null && !builder.additionalHeaders.isEmpty()) {
for (Map.Entry<String, String> entry : builder.additionalHeaders.entrySet()) {
client.addDefaultHeader(entry.getKey(), entry.getValue());
}
}

client.setServerIndex(builder.serverEnv.getIndex());

if (isLaunchPadEnabled) {
client.setUserAgent("User-Agent-With-LaunchPad")
client.setUserAgent(ConversionConstants.USER_AGENT_WITH_PAD)
.setBasePath(builder.launchPadUrl.trim());
} else {
client.setUserAgent("Standard-User-Agent");
client.setUserAgent(ConversionConstants.USER_AGENT);
}

this.capi = new DefaultApi(client);

// if custom url is provided, set it as the base url.
if (builder.customUrl != null && !builder.customUrl.isEmpty()) {
this.capi.setCustomBaseUrl(builder.customUrl);
}

if (isDebugEnabled) {
logEvent(Level.INFO, "Debug mode is enabled");
}
Expand Down Expand Up @@ -130,7 +145,7 @@ private EventResponse sendEvents(
EventResponse result;
capiEvents.forEach(this::setIntegration);
try {
if(assetId == null || assetId.isEmpty()){
if (assetId == null || assetId.isEmpty()) {
throw new IllegalArgumentException("Asset ID is required for sending events");
}

Expand Down Expand Up @@ -230,7 +245,7 @@ private void sendEventsAsync(
ApiCallback<EventResponse> callback) {

try {
if(assetId == null || assetId.isEmpty()){
if (assetId == null || assetId.isEmpty()) {
throw new IllegalArgumentException("Asset ID is required for sending events");
}

Expand Down Expand Up @@ -359,6 +374,8 @@ private void setIntegration(CapiEvent capiEvent) {
public static class Builder {
private String accessToken = "";
private String launchPadUrl = "";
private String customUrl = "";
private Map<String, String> additionalHeaders = new HashMap<>();
private OkHttpClient okHttpClient = null;
private ServerEnv serverEnv = ServerEnv.PROD;
private boolean isDebugEnabled = false;
Expand All @@ -381,6 +398,16 @@ public Builder setLaunchPadUrl(String launchPadUrl) {
return this;
}

public Builder setCustomUrl(String customUrl) {
this.customUrl = customUrl;
return this;
}

public Builder setAdditionalHeaders(Map<String, String> additionalHeaders) {
this.additionalHeaders = additionalHeaders;
return this;
}

public Builder setOkHttpClient(OkHttpClient okHttpClient) {
this.okHttpClient = okHttpClient;
return this;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@
import com.snap.business.sdk.v3.api.ConversionApiClient;
import com.snap.business.sdk.v3.model.CapiEvent;
import com.snap.business.sdk.v3.model.ValidateResponse;
import com.snap.business.sdk.v3.util.ServerEnv;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
Expand Down Expand Up @@ -37,7 +36,8 @@ public static void main(String[] args) {
logger.info("Logs: " + apiResponseValidate.getEventLogs());

ValidateResponse batchResponse =
capiClient.sendValidateEventsBatch(CapiEventExampleBuilder.TEST_ASSET_ID, capiBatchEvents);
capiClient.sendValidateEventsBatch(
CapiEventExampleBuilder.TEST_ASSET_ID, capiBatchEvents);
logger.info("Status: " + batchResponse.getStatus());
logger.info("Reason: " + batchResponse.getReason());
logger.info("Logs: " + batchResponse.getEventLogs());
Expand Down
39 changes: 37 additions & 2 deletions src/main/java/com/snap/business/sdk/v3/model/Content.java
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,11 @@ public class Content {
@SerializedName(SERIALIZED_NAME_DELIVERY_CATEGORY)
private String deliveryCategory;

public static final String SERIALIZED_NAME_BRAND = "brand";

@SerializedName(SERIALIZED_NAME_BRAND)
private String brand;

public Content() {}

public Content id(String id) {
Expand Down Expand Up @@ -132,6 +137,25 @@ public void setDeliveryCategory(String deliveryCategory) {
this.deliveryCategory = deliveryCategory;
}

public Content brand(String brand) {
this.brand = brand;
return this;
}

/**
* The brand of the content item.
*
* @return brand
*/
@javax.annotation.Nullable
public String getBrand() {
return brand;
}

public void setBrand(String brand) {
this.brand = brand;
}

@Override
public boolean equals(Object o) {
if (this == o) {
Expand All @@ -144,12 +168,13 @@ public boolean equals(Object o) {
return Objects.equals(this.id, content.id)
&& Objects.equals(this.quantity, content.quantity)
&& Objects.equals(this.itemPrice, content.itemPrice)
&& Objects.equals(this.deliveryCategory, content.deliveryCategory);
&& Objects.equals(this.deliveryCategory, content.deliveryCategory)
&& Objects.equals(this.brand, content.brand);
}

@Override
public int hashCode() {
return Objects.hash(id, quantity, itemPrice, deliveryCategory);
return Objects.hash(id, quantity, itemPrice, deliveryCategory, brand);
}

@Override
Expand All @@ -160,6 +185,7 @@ public String toString() {
sb.append(" quantity: ").append(toIndentedString(quantity)).append("\n");
sb.append(" itemPrice: ").append(toIndentedString(itemPrice)).append("\n");
sb.append(" deliveryCategory: ").append(toIndentedString(deliveryCategory)).append("\n");
sb.append(" brand: ").append(toIndentedString(brand)).append("\n");
sb.append("}");
return sb.toString();
}
Expand All @@ -185,6 +211,7 @@ private String toIndentedString(Object o) {
openapiFields.add("quantity");
openapiFields.add("item_price");
openapiFields.add("delivery_category");
openapiFields.add("brand");

// a set of required properties/fields (JSON key names)
openapiRequiredFields = new HashSet<String>();
Expand Down Expand Up @@ -253,6 +280,14 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti
+ " JSON string but got `%s`",
jsonObj.get("delivery_category").toString()));
}
if ((jsonObj.get("brand") != null && !jsonObj.get("brand").isJsonNull())
&& !jsonObj.get("brand").isJsonPrimitive()) {
throw new IllegalArgumentException(
String.format(
"Expected the field `brand` to be a primitive type in the JSON string"
+ " but got `%s`",
jsonObj.get("brand").toString()));
}
}

public static class CustomTypeAdapterFactory implements TypeAdapterFactory {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,9 @@

public class ConversionConstants {
public static final String SDK_LANGUAGE = "java";
public static final String SDK_VERSION = "1.1.2";
public static final String SDK_VERSION = "1.1.5";
public static final String USER_AGENT = String.format("BusinessSDK/Java/%s", SDK_VERSION);
public static final String USER_AGENT_WITH_PAD = String.format("%s (LaunchPAD)", USER_AGENT);
public static final String SDK_VER_HEADER = "X-CAPI-V3-BusinessSDK";
public static final String LANG_VERSION = String.format("%s/%s", SDK_LANGUAGE, SDK_VERSION);
public static final String INTEGRATION_SDK = "business-sdk-v3";
Expand Down
10 changes: 3 additions & 7 deletions src/main/java/com/snap/business/sdk/v3/util/ConversionUtil.java
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@
import com.snap.business.sdk.v3.model.EventResponse;
import com.snap.business.sdk.v3.model.EventResponse.StatusEnum;
import com.snap.business.sdk.v3.model.ValidateResponse;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.logging.Level;
Expand Down Expand Up @@ -41,13 +40,10 @@ public static EventResponse handleEventException(ApiException e) {
result == null
? new EventResponse()
.status(StatusEnum.INVALID)
.reason(Arrays.toString(e.getStackTrace()))
.reason(e.getResponseBody())
: result;
} catch (Exception ex) {
result =
new EventResponse()
.status(StatusEnum.INVALID)
.reason(Arrays.toString(e.getStackTrace()));
result = new EventResponse().status(StatusEnum.INVALID).reason(e.getResponseBody());
}
return result;
}
Expand All @@ -60,7 +56,7 @@ public static ValidateResponse handleValidateEventException(ApiException e) {
result =
new ValidateResponse()
.status(ValidateResponse.StatusEnum.INVALID)
.reason(Arrays.toString(e.getStackTrace()));
.reason(e.getResponseBody());
}
return result;
}
Expand Down
68 changes: 0 additions & 68 deletions src/test/java/com/snap/business/sdk/api/DefaultApiTest.java

This file was deleted.

0 comments on commit 9880504

Please sign in to comment.