Skip to content

Commit

Permalink
Merge c27c9e2 into 756dc81
Browse files Browse the repository at this point in the history
  • Loading branch information
arao6 committed Nov 15, 2020
2 parents 756dc81 + c27c9e2 commit 03d8805
Show file tree
Hide file tree
Showing 23 changed files with 1,102 additions and 514 deletions.
8 changes: 8 additions & 0 deletions CHANGELOG.md
@@ -1,5 +1,13 @@
Changelog
=========

2.2.0
-----------------
- Added Upload Multipart form-data (removed Jersey dependency)
- Added Business stakeholder status transitions (get, list)
- Added Bank Account status transitions (get)


2.1.0
-----------------
- Added Business Stakeholders status transitions
Expand Down
8 changes: 4 additions & 4 deletions README.md
Expand Up @@ -2,7 +2,7 @@
[![Coverage Status](https://coveralls.io/repos/github/hyperwallet/java-sdk/badge.svg?branch=master)](https://coveralls.io/github/hyperwallet/java-sdk?branch=master)
[![Maven Central](https://img.shields.io/maven-central/v/com.hyperwallet/sdk.svg)]()

Hyperwallet REST SDK v2.1.0
Hyperwallet REST SDK v2.2.0
===========================

A library to manage users, transfer methods and payments through the Hyperwallet V4 API
Expand All @@ -22,13 +22,13 @@ Installation
<dependency>
<groupId>com.hyperwallet</groupId>
<artifactId>sdk</artifactId>
<version>2.1.0</version>
<version>2.2.0</version>
</dependency>
```

**Gradle**
```
compile 'com.hyperwallet:sdk:2.1.0'
compile 'com.hyperwallet:sdk:2.2.0'
```

Documentation
Expand All @@ -44,7 +44,7 @@ To write an app using the SDK

* Register for a sandbox account and get your username, password and program token at the [Hyperwallet Program Portal](https://portal.hyperwallet.com).

* Add dependency `com.hyperwallet:sdk:2.1.0` to your `pom.xml` (or `build.gradle`).
* Add dependency `com.hyperwallet:sdk:2.2.0` to your `pom.xml` (or `build.gradle`).


* Create a instance of the Hyperwallet Client (with username, password and program token)
Expand Down
12 changes: 1 addition & 11 deletions pom.xml
Expand Up @@ -4,7 +4,7 @@

<groupId>com.hyperwallet</groupId>
<artifactId>sdk</artifactId>
<version>2.1.1-SNAPSHOT</version>
<version>2.2.0-SNAPSHOT</version>
<packaging>jar</packaging>

<name>hyperwallet-java-sdk</name>
Expand Down Expand Up @@ -148,16 +148,6 @@
<scope>test</scope>
<version>20200518</version>
</dependency>
<dependency>
<groupId>com.sun.jersey.contribs</groupId>
<artifactId>jersey-multipart</artifactId>
<version>1.19.4</version>
</dependency>
<dependency>
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-client</artifactId>
<version>1.18</version>
</dependency>
</dependencies>

<build>
Expand Down
143 changes: 122 additions & 21 deletions src/main/java/com/hyperwallet/clientsdk/Hyperwallet.java
Expand Up @@ -2,25 +2,20 @@

import com.fasterxml.jackson.core.type.TypeReference;
import com.hyperwallet.clientsdk.model.*;
import com.hyperwallet.clientsdk.util.HyperwalletApiClient;
import com.hyperwallet.clientsdk.util.HyperwalletEncryption;
import com.hyperwallet.clientsdk.util.HyperwalletJsonUtil;
import com.sun.jersey.multipart.FormDataMultiPart;
import com.hyperwallet.clientsdk.util.*;
import org.apache.commons.lang3.StringUtils;

import java.io.IOException;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.Locale;
import java.util.TimeZone;
import java.util.*;

/**
* The Hyperwallet Client
*/
public class Hyperwallet {

public static final String VERSION = "2.0.0";
public static final String VERSION = "2.2.0";
private final HyperwalletApiClient apiClient;
private final String programToken;
private final String url;
Expand Down Expand Up @@ -241,18 +236,31 @@ public HyperwalletList<HyperwalletBusinessStakeholder> listBusinessStakeholders(
*
* @param userToken String
* @param businessStakeholderToken Hyperwallet Stakeholder representation
* @param multiPart FormdataMultipart to get uploaded
* @param uploadData HyperwalletVerificationDocument to get uploaded
* @return HyperwalletBusinessStakeholder updated Stakeholder with document status
*/
public HyperwalletBusinessStakeholder uploadDocumentBusinessStakeholder(String userToken, String businessStakeholderToken,
FormDataMultiPart multiPart) {
public HyperwalletBusinessStakeholder uploadStakeholderDocuments(String userToken, String businessStakeholderToken,
List<HyperwalletVerificationDocument> uploadData) {
Multipart multipart = new Multipart();
if (userToken == null) {
throw new HyperwalletException("User token may not be present");
}
if (businessStakeholderToken == null) {
throw new HyperwalletException("BusinessStakeholderToken may not be required");
throw new HyperwalletException("BusinessStakeholderToken may not be present");
}
return apiClient.put(url + "/users/" + userToken + "/business-stakeholders/" + businessStakeholderToken, multiPart,
if (uploadData == null || uploadData.size() < 1) {
throw new HyperwalletException("Data for upload is missing");
}
if (uploadData.get(0).getUploadFiles() == null || uploadData.get(0).getUploadFiles().size() < 1) {
throw new HyperwalletException("Upload Files are missing");
}
try {
multipart = HyperwalletMultipartUtils.convert(uploadData);
} catch(IOException e) {
throw new HyperwalletException("Unable to convert to Multipart formdata");
}

return apiClient.put(url + "/users/" + userToken + "/business-stakeholders/" + businessStakeholderToken, multipart,
HyperwalletBusinessStakeholder.class);
}

Expand Down Expand Up @@ -280,18 +288,76 @@ public HyperwalletStatusTransition createBusinessStakeholderStatusTransition(Str
transition.setFromStatus(null);
transition.setToStatus(null);

return apiClient.post(url + "/users/" + userToken + "/business-stakeholders/" + stakeholderToken + "/status-transitions", transition, HyperwalletStatusTransition.class);
return apiClient.post(url + "/users/" + userToken + "/business-stakeholders/" + stakeholderToken + "/status-transitions", transition,
HyperwalletStatusTransition.class);
}

/**
* Get Business Stakeholder Status transition
*
* @param userToken String
* @param stakeholderToken Hyperwallet Stakeholder token
* @param statusTransitionToken Hyperwallet Status Transition token
* @return HyperwalletStatusTransition
*/
public HyperwalletStatusTransition getBusinessStakeholderStatusTransition(String userToken, String stakeholderToken,
String statusTransitionToken) {
if (userToken == null) {
throw new HyperwalletException("User token may not be present");
}
if (stakeholderToken == null) {
throw new HyperwalletException("StakeholderToken is required");
}
if (statusTransitionToken == null) {
throw new HyperwalletException("Status Transition token may not be present");
}

return apiClient
.get(url + "/users/" + userToken + "/business-stakeholders/" + stakeholderToken + "/status-transitions/" + statusTransitionToken,
HyperwalletStatusTransition.class);
}

/**
* List Business Stakeholder Status transition
*
* @param userToken String
* @param stakeholderToken Hyperwallet Stakeholder token
* @return HyperwalletList of HyperwalletStatusTransition
*/
public HyperwalletList<HyperwalletStatusTransition> listBusinessStakeholderStatusTransition(String userToken, String stakeholderToken,
HyperwalletPaginationOptions options) {
if (userToken == null) {
throw new HyperwalletException("User token may not be present");
}
if (stakeholderToken == null) {
throw new HyperwalletException("StakeholderToken is required");
}
String url = paginate(this.url + "/users/" + userToken + "/business-stakeholders/" + stakeholderToken + "/status-transitions", options);
return apiClient.get(url, new TypeReference<HyperwalletList<HyperwalletStatusTransition>>() {
});
}

/**
* List Business Stakeholder Status transition
*
* @param userToken String
* @param stakeholderToken Hyperwallet Stakeholder token
* @return HyperwalletList of HyperwalletStatusTransition
*/
public HyperwalletList<HyperwalletStatusTransition> listBusinessStakeholderStatusTransition(String userToken, String stakeholderToken) {
return listBusinessStakeholderStatusTransition(userToken, stakeholderToken, null);
}

/**
* Activate a business stakeholder
*
* @param userToken User token
* @param userToken User token
* @param stakeholderToken Business Stakeholder token
* @return The status transition
*/
public HyperwalletStatusTransition activateBusinessStakeholder(String userToken, String stakeholderToken) {
return createBusinessStakeholderStatusTransition(userToken, stakeholderToken, new HyperwalletStatusTransition(HyperwalletStatusTransition.Status.ACTIVATED));
return createBusinessStakeholderStatusTransition(userToken, stakeholderToken,
new HyperwalletStatusTransition(HyperwalletStatusTransition.Status.ACTIVATED));
}

/**
Expand Down Expand Up @@ -1847,7 +1913,30 @@ public HyperwalletStatusTransition createBankAccountStatusTransition(String user
transition.setCreatedOn(null);
transition.setFromStatus(null);
transition.setToStatus(null);
return apiClient.post(url + "/users/" + userToken + "/bank-accounts/" + bankAccountToken + "/status-transitions", transition, HyperwalletStatusTransition.class);
return apiClient.post(url + "/users/" + userToken + "/bank-accounts/" + bankAccountToken + "/status-transitions", transition,
HyperwalletStatusTransition.class);
}

/**
* Get Bank Account Status Transition
*
* @param userToken User token
* @param bankAccountToken Bank Account token
* @param statusTransitionToken Status transition token
* @return HyperwalletStatusTransition
*/
public HyperwalletStatusTransition getBankAccountStatusTransition(String userToken, String bankAccountToken, String statusTransitionToken) {
if (StringUtils.isEmpty(userToken)) {
throw new HyperwalletException("User token is required");
}
if (StringUtils.isEmpty(bankAccountToken)) {
throw new HyperwalletException("Bank Account token is required");
}
if (StringUtils.isEmpty(statusTransitionToken)) {
throw new HyperwalletException("Status Transition token may not be present");
}
return apiClient.get(url + "/users/" + userToken + "/bank-accounts/" + bankAccountToken + "/status-transitions/" + statusTransitionToken,
HyperwalletStatusTransition.class);
}

/**
Expand Down Expand Up @@ -2451,14 +2540,26 @@ public HyperwalletList<HyperwalletTransferMethod> listTransferMethods(String use
* Upload documents
*
* @param userToken userToken for which documents to be uploaded
* @param multiPart multipart FormdataMultipart to get uploaded
* @param uploadData HyperwalletVerificationDocument to get uploaded
* @return HyperwalletUser user object with document upload status
*/
public HyperwalletUser documentUpload(String userToken, FormDataMultiPart multiPart) {
public HyperwalletUser uploadUserDocuments(String userToken, List<HyperwalletVerificationDocument> uploadData) {
Multipart multipart = new Multipart();
if (StringUtils.isEmpty(userToken)) {
throw new HyperwalletException("User token is not present");
}
return apiClient.put(url + "/users/" + userToken, multiPart, HyperwalletUser.class);
if (uploadData == null || uploadData.size() < 1) {
throw new HyperwalletException("Data for upload is missing");
}
if (uploadData.get(0).getUploadFiles() == null || uploadData.get(0).getUploadFiles().size() < 1) {
throw new HyperwalletException("Upload Files are missing");
}
try {
multipart = HyperwalletMultipartUtils.convert(uploadData);
} catch(IOException e) {
throw new HyperwalletException("Unable to convert to Multipart formdata");
}
return apiClient.put(url + "/users/" + userToken, multipart, HyperwalletUser.class);
}

//--------------------------------------
Expand Down

0 comments on commit 03d8805

Please sign in to comment.