Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -14,3 +14,4 @@ lib/*
*/target/
/target/
/.metadata/
.metals/*
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
Riskified JAVA SDK
=================

version: 6.0.1
version: 6.1.0
------------------

See http://apiref.riskified.com for full API documentation
Expand Down Expand Up @@ -104,7 +104,7 @@ curl -H "Content-Type: application/json" -H "X-RISKIFIED-HMAC-SHA256: 071ef80d5
<dependency>
<groupId>com.riskified</groupId>
<artifactId>riskified-sdk</artifactId>
<version>6.0.1</version>
<version>6.1.0</version>
</dependency>
```

2 changes: 1 addition & 1 deletion riskified-sample/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
<dependency>
<groupId>com.riskified</groupId>
<artifactId>riskified-sdk</artifactId>
<version>6.0.1</version>
<version>6.1.0</version>
</dependency>

<dependency>
Expand Down
2 changes: 1 addition & 1 deletion riskified-sdk/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
<modelVersion>4.0.0</modelVersion>
<groupId>com.riskified</groupId>
<artifactId>riskified-sdk</artifactId>
<version>6.0.1</version>
<version>6.1.0</version>
<name>Riskified SDK</name>
<description>Riskified rest api SDK for java</description>
<url>https://www.riskified.com</url>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1075,7 +1075,7 @@ private HttpPost createPostRequest(String url) {
postRequest.setHeader(HttpHeaders.ACCEPT, "application/vnd.riskified.com; version=2");
postRequest.setHeader(HttpHeaders.ACCEPT, "application/json");
postRequest.setHeader("X-RISKIFIED-SHOP-DOMAIN", shopUrl);
postRequest.setHeader("User-Agent","riskified_java_sdk/6.0.1"); // TODO: take the version automatically
postRequest.setHeader("User-Agent","riskified_java_sdk/6.1.0"); // TODO: take the version automatically
postRequest.setHeader("Version",versionHeaderValue);
return postRequest;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,12 @@ public class BankWirePaymentDetails implements IPaymentDetails {
private Date storedPaymentCreatedAt;
private Date storedPaymentUpdatedAt;
private PaymentType paymentType = PaymentType.BANK_TRANSFER;
private int daysSinceAccountOpening;
private int daysWithNegativeBalanceCount;
private boolean isSavingsOrMoneyMarketAccount;
private int nsfOverdraftTransactionsCount;
private int unauthorizedTransactionsCount;
private PlaidScores plaidScores;

public BankWirePaymentDetails(String accountNumber, String routingNumber) {
this.accountNumber = accountNumber;
Expand Down Expand Up @@ -59,10 +65,59 @@ public void setStoredPaymentUpdatedAt(Date storedPaymentUpdatedAt){

public PaymentType getPaymentType() { return paymentType; }

public int getDaysSinceAccountOpening() {
return daysSinceAccountOpening;
}

public void setDaysSinceAccountOpening(int daysSinceAccountOpening) {
this.daysSinceAccountOpening = daysSinceAccountOpening;
}

public int getDaysWithNegativeBalanceCount() {
return daysWithNegativeBalanceCount;
}

public void setDaysWithNegativeBalanceCount(int daysWithNegativeBalanceCount) {
this.daysWithNegativeBalanceCount = daysWithNegativeBalanceCount;
}

public boolean getIsSavingsOrMoneyMarketAccount() {
return isSavingsOrMoneyMarketAccount;
}

public void setIsSavingsOrMoneyMarketAccount(boolean isSavingsOrMoneyMarketAccount) {
this.isSavingsOrMoneyMarketAccount = isSavingsOrMoneyMarketAccount;
}

public int getNsfOverdraftTransactionsCount() {
return nsfOverdraftTransactionsCount;
}

public void setNsfOverdraftTransactionsCount(int nsfOverdraftTransactionsCount) {
this.nsfOverdraftTransactionsCount = nsfOverdraftTransactionsCount;
}

public int getUnauthorizedTransactionsCount() {
return unauthorizedTransactionsCount;
}

public void setUnauthorizedTransactionsCount(int unauthorizedTransactionsCount) {
this.unauthorizedTransactionsCount = unauthorizedTransactionsCount;
}

public PlaidScores getPlaidScores() {
return plaidScores;
}

public void setPlaidScores(PlaidScores plaidScores) {
this.plaidScores = plaidScores;
}

public void validate(Validation validationType) throws FieldBadFormatException {
if (validationType == Validation.ALL) {
Validate.notNullOrEmpty(this, this.accountNumber, "Bank Account Number");
Validate.notNullOrEmpty(this, this.routingNumber, "Bank Routing Number");
}
}
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
package com.riskified.models;

public class InitiatedReturnRisk {
private int score;
private int riskTier;

public int getScore() {
return score;
}
public void setScore(int score) {
this.score = score;
}
public int getRiskTier() {
return riskTier;
}

public void setRiskTier(int riskTier) {
this.riskTier = riskTier;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
package com.riskified.models;

public class PlaidScores {
private InitiatedReturnRisk customerInitiatedReturnRisk;
private InitiatedReturnRisk bankInitiatedReturnRisk;

public InitiatedReturnRisk getCustomerInitiatedReturnRisk() {
return customerInitiatedReturnRisk;
}

public void setCustomerInitiatedReturnRisk(InitiatedReturnRisk customerInitiatedReturnRisk) {
this.customerInitiatedReturnRisk = customerInitiatedReturnRisk;
}

public InitiatedReturnRisk getBankInitiatedReturnRisk() {
return bankInitiatedReturnRisk;
}

public void setBankInitiatedReturnRisk(InitiatedReturnRisk bankInitiatedReturnRisk) {
this.bankInitiatedReturnRisk = bankInitiatedReturnRisk;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -57,4 +57,81 @@ public void testBankWirePaymentTypeSerializesToBankTransfer() {
String json = gson.toJson(bankWire);
assertTrue(json.contains("\"payment_type\":\"bank_transfer\""));
}

@Test
public void testBankWirePlaidScalarFieldsSerializeWithCorrectKeys() {
BankWirePaymentDetails bankWire = new BankWirePaymentDetails("123456789", "021000021");
bankWire.setDaysSinceAccountOpening(90);
bankWire.setDaysWithNegativeBalanceCount(4);
bankWire.setIsSavingsOrMoneyMarketAccount(true);
bankWire.setNsfOverdraftTransactionsCount(31);
bankWire.setUnauthorizedTransactionsCount(2);

String json = gson.toJson(bankWire);

assertTrue(json.contains("\"days_since_account_opening\":90"));
assertTrue(json.contains("\"days_with_negative_balance_count\":4"));
assertTrue(json.contains("\"is_savings_or_money_market_account\":true"));
assertTrue(json.contains("\"nsf_overdraft_transactions_count\":31"));
assertTrue(json.contains("\"unauthorized_transactions_count\":2"));
}

@Test
public void testBankWirePlaidScoresGetterAndSetter() {
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Don't think we need this test

BankWirePaymentDetails bankWire = new BankWirePaymentDetails("123456789", "021000021");

InitiatedReturnRisk customerRisk = new InitiatedReturnRisk();
customerRisk.setScore(9);
customerRisk.setRiskTier(1);

InitiatedReturnRisk bankRisk = new InitiatedReturnRisk();
bankRisk.setScore(82);
bankRisk.setRiskTier(7);

PlaidScores plaidScores = new PlaidScores();
plaidScores.setCustomerInitiatedReturnRisk(customerRisk);
plaidScores.setBankInitiatedReturnRisk(bankRisk);

bankWire.setPlaidScores(plaidScores);

assertEquals(9, bankWire.getPlaidScores().getCustomerInitiatedReturnRisk().getScore());
assertEquals(1, bankWire.getPlaidScores().getCustomerInitiatedReturnRisk().getRiskTier());
assertEquals(82, bankWire.getPlaidScores().getBankInitiatedReturnRisk().getScore());
assertEquals(7, bankWire.getPlaidScores().getBankInitiatedReturnRisk().getRiskTier());
}

@Test
public void testBankWirePlaidScoresSerializeWithCorrectStructure() {
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We can merge this with testBankWirePlaidScalarFieldsSerializeWithCorrectKeys above. I don't think we need 2 separate ones since all of BankWire details includes both

BankWirePaymentDetails bankWire = new BankWirePaymentDetails("123456789", "021000021");

InitiatedReturnRisk customerRisk = new InitiatedReturnRisk();
customerRisk.setScore(9);
customerRisk.setRiskTier(1);

InitiatedReturnRisk bankRisk = new InitiatedReturnRisk();
bankRisk.setScore(82);
bankRisk.setRiskTier(7);

PlaidScores plaidScores = new PlaidScores();
plaidScores.setCustomerInitiatedReturnRisk(customerRisk);
plaidScores.setBankInitiatedReturnRisk(bankRisk);

bankWire.setPlaidScores(plaidScores);

String json = gson.toJson(bankWire);

assertTrue(json.contains("\"plaid_scores\""));
assertTrue(json.contains("\"customer_initiated_return_risk\""));
assertTrue(json.contains("\"bank_initiated_return_risk\""));
assertTrue(json.contains("\"score\":9"));
assertTrue(json.contains("\"risk_tier\":1"));
assertTrue(json.contains("\"score\":82"));
assertTrue(json.contains("\"risk_tier\":7"));
}

@Test
public void testBankWirePlaidScoresNullByDefault() {
BankWirePaymentDetails bankWire = new BankWirePaymentDetails("123456789", "021000021");
assertNull(bankWire.getPlaidScores());
}
}