Skip to content

Commit

Permalink
DEV-30106 adds blockageAmount param to sub merchant create/update enp…
Browse files Browse the repository at this point in the history
…oints, adds retrieve blockage endpoint (#167)

* DEV-30106 adds blockageAmount param to sub merchant create/update enpoints, adds retrieve blockage endpoint

* DEV-30106 adds blockageAmount param to sub merchant create/update enpoints, adds retrieve blockage endpoint

* DEV-30106 adds blockageAmount param to sub merchant create/update enpoints, adds retrieve blockage endpoint

---------

Co-authored-by: Yigit TEKELER <yigit.tekeler@iyzico.com>
  • Loading branch information
yigittekeler and Yigit TEKELER authored Feb 7, 2025
1 parent 1313e6f commit 161efc6
Show file tree
Hide file tree
Showing 9 changed files with 194 additions and 1 deletion.
36 changes: 36 additions & 0 deletions src/main/java/com/iyzipay/model/BlockageInfo.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
package com.iyzipay.model;

import com.iyzipay.IyzipayResource;

import java.math.BigDecimal;

public class BlockageInfo extends IyzipayResource {

private BigDecimal usableBlockage;
private BigDecimal totalBlockage;
private BigDecimal totalBalance;

public BigDecimal getUsableBlockage() {
return usableBlockage;
}

public void setUsableBlockage(BigDecimal usableBlockage) {
this.usableBlockage = usableBlockage;
}

public BigDecimal getTotalBlockage() {
return totalBlockage;
}

public void setTotalBlockage(BigDecimal totalBlockage) {
this.totalBlockage = totalBlockage;
}

public BigDecimal getTotalBalance() {
return totalBalance;
}

public void setTotalBalance(BigDecimal totalBalance) {
this.totalBalance = totalBalance;
}
}
40 changes: 40 additions & 0 deletions src/main/java/com/iyzipay/model/SubMerchant.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,12 @@
import com.iyzipay.HttpClient;
import com.iyzipay.IyzipayResource;
import com.iyzipay.Options;
import com.iyzipay.Request;
import com.iyzipay.request.BlockageInfoRequest;
import com.iyzipay.request.CreateSubMerchantRequest;
import com.iyzipay.request.RetrieveSubMerchantRequest;
import com.iyzipay.request.UpdateSubMerchantRequest;
import org.apache.commons.lang3.StringUtils;

public class SubMerchant extends IyzipayResource {

Expand All @@ -25,6 +28,9 @@ public class SubMerchant extends IyzipayResource {
private String taxNumber;
private String subMerchantType;
private String subMerchantKey;
private String usableBlockage;
private String totalBlockage;
private String totalBalance;

public static SubMerchant create(CreateSubMerchantRequest request, Options options) {
String path = "/onboarding/submerchant";
Expand Down Expand Up @@ -53,6 +59,15 @@ public static SubMerchant retrieve(RetrieveSubMerchantRequest request, Options o
SubMerchant.class);
}

public static SubMerchant retrieveBlockageInfo(BlockageInfoRequest request, Options options) {
String path = "/blockage";
return HttpClient.create().post(options.getBaseUrl() + path,
getHttpProxy(options),
getHttpHeadersV2(path, request, options),
request,
SubMerchant.class);
}

public String getName() {
return name;
}
Expand Down Expand Up @@ -180,4 +195,29 @@ public String getSubMerchantKey() {
public void setSubMerchantKey(String subMerchantKey) {
this.subMerchantKey = subMerchantKey;
}

public String getUsableBlockage() {
return usableBlockage;
}

public void setUsableBlockage(String usableBlockage) {
this.usableBlockage = usableBlockage;
}

public String getTotalBlockage() {
return totalBlockage;
}

public void setTotalBlockage(String totalBlockage) {
this.totalBlockage = totalBlockage;
}

public String getTotalBalance() {
return totalBalance;
}

public void setTotalBalance(String totalBalance) {
this.totalBalance = totalBalance;
}

}
26 changes: 26 additions & 0 deletions src/main/java/com/iyzipay/request/BlockageInfoRequest.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
package com.iyzipay.request;


import com.iyzipay.Request;
import com.iyzipay.ToStringRequestBuilder;

public class BlockageInfoRequest extends Request {

private String subMerchantKey;

public String getSubMerchantKey() {
return subMerchantKey;
}

public void setSubMerchantKey(String subMerchantKey) {
this.subMerchantKey = subMerchantKey;
}

@Override
public String toString() {
return new ToStringRequestBuilder(this)
.appendSuper(super.toString())
.append("subMerchantKey", subMerchantKey)
.toString();
}
}
10 changes: 10 additions & 0 deletions src/main/java/com/iyzipay/request/CreateSubMerchantRequest.java
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ public class CreateSubMerchantRequest extends Request {
private String taxNumber;
private String subMerchantExternalId;
private String subMerchantType;
private String blockageAmount;

public String getName() {
return name;
Expand Down Expand Up @@ -141,6 +142,14 @@ public void setSubMerchantType(String subMerchantType) {
this.subMerchantType = subMerchantType;
}

public String getBlockageAmount() {
return blockageAmount;
}

public void setBlockageAmount(String blockageAmount) {
this.blockageAmount = blockageAmount;
}

@Override
public String toString() {
return new ToStringRequestBuilder(this)
Expand All @@ -160,6 +169,7 @@ public String toString() {
.append("identityNumber", identityNumber)
.append("taxNumber", taxNumber)
.append("subMerchantType", subMerchantType)
.append("blockageAmount", blockageAmount)
.toString();
}
}
10 changes: 10 additions & 0 deletions src/main/java/com/iyzipay/request/UpdateSubMerchantRequest.java
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ public class UpdateSubMerchantRequest extends Request {
private String identityNumber;
private String taxNumber;
private String subMerchantKey;
private String blockageAmount;

public String getName() {
return name;
Expand Down Expand Up @@ -132,6 +133,14 @@ public void setSubMerchantKey(String subMerchantKey) {
this.subMerchantKey = subMerchantKey;
}

public String getBlockageAmount() {
return blockageAmount;
}

public void setBlockageAmount(String blockageAmount) {
this.blockageAmount = blockageAmount;
}

@Override
public String toString() {
return new ToStringRequestBuilder(this)
Expand All @@ -150,6 +159,7 @@ public String toString() {
.append("subMerchantKey", subMerchantKey)
.append("identityNumber", identityNumber)
.append("taxNumber", taxNumber)
.append("blockageAmount", blockageAmount)
.toString();
}
}
41 changes: 41 additions & 0 deletions src/test/java/com/iyzipay/functional/SubMerchantTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
import com.iyzipay.model.Status;
import com.iyzipay.model.SubMerchant;
import com.iyzipay.model.SubMerchantType;
import com.iyzipay.request.BlockageInfoRequest;
import com.iyzipay.request.CreateSubMerchantRequest;
import com.iyzipay.request.RetrieveSubMerchantRequest;
import com.iyzipay.request.UpdateSubMerchantRequest;
Expand Down Expand Up @@ -207,4 +208,44 @@ public void should_retrieve_sub_merchant() {
assertNull(subMerchant.getErrorMessage());
assertNull(subMerchant.getErrorGroup());
}

@Test
public void should_create_personal_sub_merchant_with_blockage() {
String subMerchantExternalId = RandomGenerator.randomId();
CreateSubMerchantRequest request = CreateSubMerchantRequestBuilder.create()
.subMerchantType(SubMerchantType.PERSONAL.name())
.contactName("John")
.contactSurname("Doe")
.identityNumber("123456789")
.subMerchantExternalId(subMerchantExternalId)
.blockageAmount("100.00")
.build();

SubMerchant subMerchant = SubMerchant.create(request, options);

System.out.println(subMerchant);

assertEquals(Status.SUCCESS.getValue(), subMerchant.getStatus());
assertEquals(Locale.TR.getValue(), subMerchant.getLocale());
assertEquals("123456789", subMerchant.getConversationId());
assertNotEquals(0, subMerchant.getSystemTime());
assertNull(subMerchant.getErrorCode());
assertNull(subMerchant.getErrorMessage());
assertNull(subMerchant.getErrorGroup());
}

@Test
public void should_retrieve_blockage_info() {

BlockageInfoRequest request = new BlockageInfoRequest();
request.setSubMerchantKey("+SBpNqAV+HmUd5GYG5+CzebDcmA=");
request.setLocale(Locale.TR.getValue());
request.setConversationId("123456");

SubMerchant subMerchant = SubMerchant.retrieveBlockageInfo(request, options);

System.out.println(subMerchant);
assertEquals("100.00000000", subMerchant.getTotalBlockage());

}
}
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ public final class CreateSubMerchantRequestBuilder extends BaseRequestBuilder {
private String taxNumber;
private String subMerchantType;
private String swiftCode;

private String blockageAmount;
private CreateSubMerchantRequestBuilder() {
}

Expand Down Expand Up @@ -105,6 +105,12 @@ public CreateSubMerchantRequestBuilder swiftCode(String swiftCode) {
return this;
}

public CreateSubMerchantRequestBuilder blockageAmount(String blockageAmount) {
this.blockageAmount = blockageAmount;
return this;
}


public CreateSubMerchantRequest build() {
CreateSubMerchantRequest createSubMerchantRequest = new CreateSubMerchantRequest();
createSubMerchantRequest.setLocale(locale);
Expand All @@ -124,6 +130,7 @@ public CreateSubMerchantRequest build() {
createSubMerchantRequest.setSubMerchantType(subMerchantType);
createSubMerchantRequest.setCurrency(currency);
createSubMerchantRequest.setSwiftCode(swiftCode);
createSubMerchantRequest.setBlockageAmount(blockageAmount);
return createSubMerchantRequest;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ public final class UpdateSubMerchantRequestBuilder extends BaseRequestBuilder {
private String identityNumber;
private String taxNumber;
private String swiftCode;
private String blockageAmount;

private UpdateSubMerchantRequestBuilder() {
}
Expand Down Expand Up @@ -97,6 +98,11 @@ public UpdateSubMerchantRequestBuilder swiftCode(String swiftCode) {
return this;
}

public UpdateSubMerchantRequestBuilder blockageAmount(String blockageAmount) {
this.blockageAmount = blockageAmount;
return this;
}

public UpdateSubMerchantRequest build() {
UpdateSubMerchantRequest updateSubMerchantRequest = new UpdateSubMerchantRequest();
updateSubMerchantRequest.setLocale(locale);
Expand All @@ -115,6 +121,7 @@ public UpdateSubMerchantRequest build() {
updateSubMerchantRequest.setTaxNumber(taxNumber);
updateSubMerchantRequest.setCurrency(currency);
updateSubMerchantRequest.setSwiftCode(swiftCode);
updateSubMerchantRequest.setBlockageAmount(blockageAmount);
return updateSubMerchantRequest;
}
}
16 changes: 16 additions & 0 deletions src/test/java/com/iyzipay/sample/SubMerchantSample.java
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
import com.iyzipay.model.Status;
import com.iyzipay.model.SubMerchant;
import com.iyzipay.model.SubMerchantType;
import com.iyzipay.request.BlockageInfoRequest;
import com.iyzipay.request.CreateSubMerchantRequest;
import com.iyzipay.request.RetrieveSubMerchantRequest;
import com.iyzipay.request.UpdateSubMerchantRequest;
Expand Down Expand Up @@ -212,4 +213,19 @@ public void should_retrieve_sub_merchant() {
assertNull(subMerchant.getErrorMessage());
assertNull(subMerchant.getErrorGroup());
}

@Test
public void should_retrieve_blokage_info() {

BlockageInfoRequest request = new BlockageInfoRequest();
request.setSubMerchantKey("+SBpNqAV+HmUd5GYG5+CzebDcmA=");
request.setLocale(Locale.TR.getValue());
request.setConversationId("123456");

SubMerchant subMerchant = SubMerchant.retrieveBlockageInfo(request, options);

System.out.println(subMerchant);
assertEquals("100.00000000", subMerchant.getTotalBlockage());

}
}

0 comments on commit 161efc6

Please sign in to comment.