Skip to content

Commit 89f3669

Browse files
authored
feat: add ai_agent field and source value to SDK (DEV-132452) (#213)
* feat: add ai_agent field and source value to SDK (DEV-132452) * feat(DEV-132452) - load RiskifiedClientTest shopUrl and authKey from env vars with properties fallback
1 parent b5a08c4 commit 89f3669

9 files changed

Lines changed: 60 additions & 7 deletions

File tree

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
Riskified JAVA SDK
22
=================
33

4-
version: 6.2.0
4+
version: 6.3.0
55
------------------
66

77
See http://apiref.riskified.com for full API documentation
@@ -104,7 +104,7 @@ curl -H "Content-Type: application/json" -H "X-RISKIFIED-HMAC-SHA256: 071ef80d5
104104
<dependency>
105105
<groupId>com.riskified</groupId>
106106
<artifactId>riskified-sdk</artifactId>
107-
<version>6.2.0</version>
107+
<version>6.3.0</version>
108108
</dependency>
109109
```
110110

riskified-sample/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
<dependency>
1414
<groupId>com.riskified</groupId>
1515
<artifactId>riskified-sdk</artifactId>
16-
<version>6.2.0</version>
16+
<version>6.3.0</version>
1717
</dependency>
1818

1919
<dependency>

riskified-sample/src/main/java/com/riskified/samples/orderClient/Client.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -223,6 +223,7 @@ private static Order decideOrder() throws ParseException {
223223
order.setBrowserIp("113.32.8.18");
224224
order.setTotalPrice(6600);
225225
order.setSource("web");
226+
order.setAiAgent(AiAgent.chatgpt);
226227
order.setEmail("test@test.com");
227228

228229

riskified-sdk/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
<modelVersion>4.0.0</modelVersion>
55
<groupId>com.riskified</groupId>
66
<artifactId>riskified-sdk</artifactId>
7-
<version>6.2.0</version>
7+
<version>6.3.0</version>
88
<name>Riskified SDK</name>
99
<description>Riskified rest api SDK for java</description>
1010
<url>https://www.riskified.com</url>
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
package com.riskified.models;
2+
3+
import com.google.gson.annotations.SerializedName;
4+
5+
public enum AiAgent {
6+
7+
@SerializedName("chatgpt")
8+
chatgpt,
9+
@SerializedName("gemini")
10+
gemini,
11+
@SerializedName("copilot")
12+
copilot,
13+
@SerializedName("perplexity")
14+
perplexity
15+
16+
}

riskified-sdk/src/main/java/com/riskified/models/BaseOrder.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ public abstract class BaseOrder implements IValidated {
3939
private String landingSiteRef;
4040
private String locationId;
4141
private String source;
42+
private AiAgent aiAgent;
4243
private String sourceIdentifier;
4344
private String sourceName;
4445
private String sourceUrl;
@@ -680,4 +681,12 @@ public void setPartnerSubMerchantId(String partnerSubMerchantId) {
680681
this.partnerSubMerchantId = partnerSubMerchantId;
681682
}
682683

684+
public AiAgent getAiAgent() {
685+
return aiAgent;
686+
}
687+
688+
public void setAiAgent(AiAgent aiAgent) {
689+
this.aiAgent = aiAgent;
690+
}
691+
683692
}

riskified-sdk/src/main/java/com/riskified/models/Source.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,8 @@ public enum Source {
2525
@SerializedName("unknown")
2626
unknown,
2727
@SerializedName("other")
28-
other
28+
other,
29+
@SerializedName("ai_agent")
30+
aiAgent
2931

3032
}

riskified-sdk/src/test/java/com/riskified/RiskifiedClientTest.java

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,12 @@ public class RiskifiedClientTest {
2929
public static void runOnceBeforeAnyTestCaseIsRun() throws IOException {
3030
Properties properties = new Properties();
3131
properties.load(RiskifiedClientTest.class.getClassLoader().getResourceAsStream("riskified_sdk.properties"));
32-
shopUrl = "test.pass.com";
33-
authKey = "ad6b6e6376fb1e3521e44ca28451d58b9605d932";
32+
shopUrl = resolve("RISKIFIED_SHOP_URL", properties, "shopUrl", "test.pass.com");
33+
authKey = resolve("RISKIFIED_AUTH_KEY", properties, "authKey", null);
34+
if (StringUtils.isEmpty(authKey)) {
35+
throw new IllegalStateException(
36+
"No auth key configured. Set the RISKIFIED_AUTH_KEY environment variable or authKey in riskified_sdk.properties");
37+
}
3438
String validationProperty = properties.getProperty("validation");
3539
validation = null;
3640
if (StringUtils.isNotEmpty(validationProperty)) {
@@ -157,6 +161,18 @@ public void testDecisionAfterSubmitWithNoValidation() throws RiskifiedError, IOE
157161
assertNull(parseResponse(RiskifiedOperation.DECISION, response, order.getId()));
158162
}
159163

164+
private static String resolve(String envName, Properties properties, String propertyName, String defaultValue) {
165+
String envValue = System.getenv(envName);
166+
if (StringUtils.isNotEmpty(envValue)) {
167+
return envValue;
168+
}
169+
String propertyValue = properties.getProperty(propertyName);
170+
if (StringUtils.isNotEmpty(propertyValue)) {
171+
return propertyValue;
172+
}
173+
return defaultValue;
174+
}
175+
160176
private String parseResponse(RiskifiedOperation riskifiedOperation, Response response, String orderId) {
161177
String detailsOfWhatWentWrong = null;
162178
if (response != null) {

riskified-sdk/src/test/java/com/riskified/models/OrderTest.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,4 +40,13 @@ public void testPartnerSubMerchantIdDeserializes() {
4040
Order order = gson.fromJson(json, Order.class);
4141
assertEquals("merchant-xyz", order.getPartnerSubMerchantId());
4242
}
43+
44+
@Test
45+
public void testAiAgentSerializesWithUnderscores() {
46+
Order order = new Order();
47+
order.setId("order-1");
48+
order.setAiAgent(AiAgent.chatgpt);
49+
String json = gson.toJson(order);
50+
assertTrue(json.contains("\"ai_agent\":\"chatgpt\""));
51+
}
4352
}

0 commit comments

Comments
 (0)