diff --git a/src/main/java/com/iyzipay/model/SubscriptionAddress.java b/src/main/java/com/iyzipay/model/SubscriptionAddress.java new file mode 100644 index 00000000..dc68e00b --- /dev/null +++ b/src/main/java/com/iyzipay/model/SubscriptionAddress.java @@ -0,0 +1,71 @@ +package com.iyzipay.model; + +public class SubscriptionAddress { + + private String address; + private String zipCode; + private String contactName; + private String district; + private String city; + private String country; + + public String getAddress() { + return address; + } + + public void setAddress(String address) { + this.address = address; + } + + public String getZipCode() { + return zipCode; + } + + public void setZipCode(String zipCode) { + this.zipCode = zipCode; + } + + public String getContactName() { + return contactName; + } + + public void setContactName(String contactName) { + this.contactName = contactName; + } + + public String getDistrict() { + return district; + } + + public void setDistrict(String district) { + this.district = district; + } + + public String getCity() { + return city; + } + + public void setCity(String city) { + this.city = city; + } + + public String getCountry() { + return country; + } + + public void setCountry(String country) { + this.country = country; + } + + @Override + public String toString() { + return "SubscriptionAddress{" + + "address='" + address + '\'' + + ", zipCode='" + zipCode + '\'' + + ", contactName='" + contactName + '\'' + + ", district='" + district + '\'' + + ", city='" + city + '\'' + + ", country='" + country + '\'' + + '}'; + } +} diff --git a/src/main/java/com/iyzipay/model/subscription/Subscription.java b/src/main/java/com/iyzipay/model/subscription/Subscription.java new file mode 100644 index 00000000..05ca970b --- /dev/null +++ b/src/main/java/com/iyzipay/model/subscription/Subscription.java @@ -0,0 +1,29 @@ +package com.iyzipay.model.subscription; + +import com.google.gson.annotations.SerializedName; +import com.iyzipay.HttpClient; +import com.iyzipay.IyzipayResource; +import com.iyzipay.Options; +import com.iyzipay.model.subscription.resource.SubscriptionData; + +public class Subscription extends IyzipayResource { + + @SerializedName("data") + private SubscriptionData subscriptionData; + + public static Subscription retrieve(String subscriptionReferenceCode, Options options) { + String uri = options.getBaseUrl() + "/v2/subscription/subscriptions/" + subscriptionReferenceCode; + return HttpClient.create().get(uri, + getHttpHeadersV2(uri, null, options), + null, + Subscription.class); + } + + public SubscriptionData getSubscriptionData() { + return subscriptionData; + } + + public void setSubscriptionData(SubscriptionData subscriptionData) { + this.subscriptionData = subscriptionData; + } +} diff --git a/src/main/java/com/iyzipay/model/subscription/SubscriptionCardUpdateCheckoutFormInitialize.java b/src/main/java/com/iyzipay/model/subscription/SubscriptionCardUpdateCheckoutFormInitialize.java new file mode 100644 index 00000000..8242a519 --- /dev/null +++ b/src/main/java/com/iyzipay/model/subscription/SubscriptionCardUpdateCheckoutFormInitialize.java @@ -0,0 +1,45 @@ +package com.iyzipay.model.subscription; + +import com.iyzipay.HttpClient; +import com.iyzipay.IyzipayResource; +import com.iyzipay.Options; +import com.iyzipay.request.subscription.InitializeSubscriptionCardUpdateCheckoutFormRequest; + +public class SubscriptionCardUpdateCheckoutFormInitialize extends IyzipayResource { + + private String token; + private String checkoutFormContent; + private Long tokenExpireTime; + + public static SubscriptionCardUpdateCheckoutFormInitialize create(InitializeSubscriptionCardUpdateCheckoutFormRequest request, Options options) { + String uri = options.getBaseUrl() + "/v2/subscription/card-update/checkoutform/initialize"; + return HttpClient.create().post(uri, + getHttpHeadersV2(uri, request, options), + request, + SubscriptionCardUpdateCheckoutFormInitialize.class); + } + + public String getToken() { + return token; + } + + public void setToken(String token) { + this.token = token; + } + + public String getCheckoutFormContent() { + return checkoutFormContent; + } + + public void setCheckoutFormContent(String checkoutFormContent) { + this.checkoutFormContent = checkoutFormContent; + } + + public Long getTokenExpireTime() { + return tokenExpireTime; + } + + public void setTokenExpireTime(Long tokenExpireTime) { + this.tokenExpireTime = tokenExpireTime; + } +} diff --git a/src/main/java/com/iyzipay/model/subscription/SubscriptionCheckoutForm.java b/src/main/java/com/iyzipay/model/subscription/SubscriptionCheckoutForm.java new file mode 100644 index 00000000..e15ebdf0 --- /dev/null +++ b/src/main/java/com/iyzipay/model/subscription/SubscriptionCheckoutForm.java @@ -0,0 +1,29 @@ +package com.iyzipay.model.subscription; + +import com.google.gson.annotations.SerializedName; +import com.iyzipay.HttpClient; +import com.iyzipay.IyzipayResource; +import com.iyzipay.Options; +import com.iyzipay.model.subscription.resource.CreatedSubscriptionData; + +public class SubscriptionCheckoutForm extends IyzipayResource { + + @SerializedName("data") + private CreatedSubscriptionData createdSubscriptionData; + + public static SubscriptionCheckoutForm retrieve(String subscriptionCheckoutFormToken, Options options) { + String uri = options.getBaseUrl() + "/v2/subscription/checkoutform/" + subscriptionCheckoutFormToken; + return HttpClient.create().get(uri, + getHttpHeadersV2(uri, null, options), + null, + SubscriptionCheckoutForm.class); + } + + public CreatedSubscriptionData getCreatedSubscriptionData() { + return createdSubscriptionData; + } + + public void setCreatedSubscriptionData(CreatedSubscriptionData createdSubscriptionData) { + this.createdSubscriptionData = createdSubscriptionData; + } +} diff --git a/src/main/java/com/iyzipay/model/subscription/SubscriptionCheckoutFormInitialize.java b/src/main/java/com/iyzipay/model/subscription/SubscriptionCheckoutFormInitialize.java new file mode 100644 index 00000000..de82f3b9 --- /dev/null +++ b/src/main/java/com/iyzipay/model/subscription/SubscriptionCheckoutFormInitialize.java @@ -0,0 +1,45 @@ +package com.iyzipay.model.subscription; + +import com.iyzipay.HttpClient; +import com.iyzipay.IyzipayResource; +import com.iyzipay.Options; +import com.iyzipay.request.subscription.InitializeSubscriptionCheckoutFormRequest; + +public class SubscriptionCheckoutFormInitialize extends IyzipayResource { + + private String token; + private String checkoutFormContent; + private Long tokenExpireTime; + + public static SubscriptionCheckoutFormInitialize create(InitializeSubscriptionCheckoutFormRequest request, Options options) { + String uri = options.getBaseUrl() + "/v2/subscription/checkoutform/initialize"; + return HttpClient.create().post(uri, + getHttpHeadersV2(uri, request, options), + request, + SubscriptionCheckoutFormInitialize.class); + } + + public String getToken() { + return token; + } + + public void setToken(String token) { + this.token = token; + } + + public String getCheckoutFormContent() { + return checkoutFormContent; + } + + public void setCheckoutFormContent(String checkoutFormContent) { + this.checkoutFormContent = checkoutFormContent; + } + + public Long getTokenExpireTime() { + return tokenExpireTime; + } + + public void setTokenExpireTime(Long tokenExpireTime) { + this.tokenExpireTime = tokenExpireTime; + } +} diff --git a/src/main/java/com/iyzipay/model/subscription/SubscriptionCustomer.java b/src/main/java/com/iyzipay/model/subscription/SubscriptionCustomer.java new file mode 100644 index 00000000..21af58da --- /dev/null +++ b/src/main/java/com/iyzipay/model/subscription/SubscriptionCustomer.java @@ -0,0 +1,55 @@ +package com.iyzipay.model.subscription; + +import com.google.gson.annotations.SerializedName; +import com.iyzipay.HttpClient; +import com.iyzipay.IyzipayResource; +import com.iyzipay.Options; +import com.iyzipay.model.subscription.resource.SubscriptionCustomerData; +import com.iyzipay.request.subscription.CreateSubscriptionCustomerRequest; +import com.iyzipay.request.subscription.UpdateSubscriptionCustomerRequest; + +public class SubscriptionCustomer extends IyzipayResource { + + @SerializedName("data") + private SubscriptionCustomerData subscriptionCustomerData; + + public static SubscriptionCustomer create(CreateSubscriptionCustomerRequest request, Options options) { + String uri = options.getBaseUrl() + "/v2/subscription/customers"; + return HttpClient.create().post(uri, + getHttpHeadersV2(uri, request, options), + request, + SubscriptionCustomer.class); + } + + public static SubscriptionCustomer update(String subscriptionCustomerReferenceCode, UpdateSubscriptionCustomerRequest request, Options options) { + String uri = options.getBaseUrl() + "/v2/subscription/customers/" + subscriptionCustomerReferenceCode; + return HttpClient.create().post(uri, + getHttpHeadersV2(uri, request, options), + request, + SubscriptionCustomer.class); + } + + public static SubscriptionCustomer retrieve(String subscriptionCustomerReferenceCode, Options options) { + String uri = options.getBaseUrl() + "/v2/subscription/customers/" + subscriptionCustomerReferenceCode; + return HttpClient.create().get(uri, + getHttpHeadersV2(uri, null, options), + null, + SubscriptionCustomer.class); + } + + public static IyzipayResource delete(String subscriptionCustomerReferenceCode, Options options) { + String uri = options.getBaseUrl() + "/v2/subscription/customers/" + subscriptionCustomerReferenceCode; + return HttpClient.create().delete(uri, + getHttpHeadersV2(uri, null, options), + null, + IyzipayResource.class); + } + + public SubscriptionCustomerData getSubscriptionCustomerData() { + return subscriptionCustomerData; + } + + public void setSubscriptionCustomerData(SubscriptionCustomerData subscriptionCustomerData) { + this.subscriptionCustomerData = subscriptionCustomerData; + } +} diff --git a/src/main/java/com/iyzipay/model/subscription/SubscriptionCustomerList.java b/src/main/java/com/iyzipay/model/subscription/SubscriptionCustomerList.java new file mode 100644 index 00000000..25004ea4 --- /dev/null +++ b/src/main/java/com/iyzipay/model/subscription/SubscriptionCustomerList.java @@ -0,0 +1,34 @@ +package com.iyzipay.model.subscription; + +import com.google.gson.annotations.SerializedName; +import com.iyzipay.HttpClient; +import com.iyzipay.IyzipayResource; +import com.iyzipay.Options; +import com.iyzipay.PagingRequest; +import com.iyzipay.model.subscription.builder.PageRequestQueryParamBuilder; +import com.iyzipay.model.subscription.resource.SubscriptionCustomerListData; + +public class SubscriptionCustomerList extends IyzipayResource { + + @SerializedName("data") + private SubscriptionCustomerListData subscriptionCustomerListData; + + public static SubscriptionCustomerList retrieve(PagingRequest request, Options options) { + String uri = options.getBaseUrl() + "/v2/subscription/customers/" + new PageRequestQueryParamBuilder() + .page(request.getPage()) + .count(request.getCount()) + .build(); + return HttpClient.create().get(uri, + getHttpHeadersV2(uri, null, options), + null, + SubscriptionCustomerList.class); + } + + public SubscriptionCustomerListData getSubscriptionCustomerListData() { + return subscriptionCustomerListData; + } + + public void setSubscriptionCustomerListData(SubscriptionCustomerListData subscriptionCustomerListData) { + this.subscriptionCustomerListData = subscriptionCustomerListData; + } +} diff --git a/src/main/java/com/iyzipay/model/subscription/SubscriptionInitialize.java b/src/main/java/com/iyzipay/model/subscription/SubscriptionInitialize.java new file mode 100644 index 00000000..46e45f19 --- /dev/null +++ b/src/main/java/com/iyzipay/model/subscription/SubscriptionInitialize.java @@ -0,0 +1,39 @@ +package com.iyzipay.model.subscription; + +import com.google.gson.annotations.SerializedName; +import com.iyzipay.HttpClient; +import com.iyzipay.IyzipayResource; +import com.iyzipay.Options; +import com.iyzipay.model.subscription.resource.CreatedSubscriptionData; +import com.iyzipay.request.subscription.InitializeSubscriptionRequest; +import com.iyzipay.request.subscription.InitializeSubscriptionWithExistingCustomerRequest; + +public class SubscriptionInitialize extends IyzipayResource { + + @SerializedName("data") + private CreatedSubscriptionData createdSubscriptionData; + + public static SubscriptionInitialize create(InitializeSubscriptionRequest request, Options options) { + String uri = options.getBaseUrl() + "/v2/subscription/initialize"; + return HttpClient.create().post(uri, + getHttpHeadersV2(uri, request, options), + request, + SubscriptionInitialize.class); + } + + public static SubscriptionInitialize createWithExistingCustomer(InitializeSubscriptionWithExistingCustomerRequest request, Options options) { + String uri = options.getBaseUrl() + "/v2/subscription/initialize/with-customer"; + return HttpClient.create().post(uri, + getHttpHeadersV2(uri, request, options), + request, + SubscriptionInitialize.class); + } + + public CreatedSubscriptionData getCreatedSubscriptionData() { + return createdSubscriptionData; + } + + public void setCreatedSubscriptionData(CreatedSubscriptionData createdSubscriptionData) { + this.createdSubscriptionData = createdSubscriptionData; + } +} diff --git a/src/main/java/com/iyzipay/model/subscription/SubscriptionOperation.java b/src/main/java/com/iyzipay/model/subscription/SubscriptionOperation.java new file mode 100644 index 00000000..a9a4e052 --- /dev/null +++ b/src/main/java/com/iyzipay/model/subscription/SubscriptionOperation.java @@ -0,0 +1,42 @@ +package com.iyzipay.model.subscription; + +import com.iyzipay.HttpClient; +import com.iyzipay.IyzipayResource; +import com.iyzipay.Options; +import com.iyzipay.request.subscription.SubscriptionOrderOperationRequest; +import com.iyzipay.request.subscription.UpgradeSubscriptionRequest; + +public class SubscriptionOperation extends IyzipayResource { + + public static SubscriptionOperation cancel(String subscriptionReferenceCode, Options options) { + String uri = options.getBaseUrl() + "/v2/subscription/subscriptions/" + subscriptionReferenceCode + "/cancel"; + return HttpClient.create().post(uri, + getHttpHeadersV2(uri, null, options), + null, + SubscriptionOperation.class); + } + + public static SubscriptionOperation activate(String subscriptionReferenceCode, Options options) { + String uri = options.getBaseUrl() + "/v2/subscription/subscriptions/" + subscriptionReferenceCode + "/activate"; + return HttpClient.create().post(uri, + getHttpHeadersV2(uri, null, options), + null, + SubscriptionOperation.class); + } + + public static SubscriptionOperation upgrade(String subscriptionReferenceCode, UpgradeSubscriptionRequest request, Options options) { + String uri = options.getBaseUrl() + "/v2/subscription/subscriptions/" + subscriptionReferenceCode + "/upgrade"; + return HttpClient.create().post(uri, + getHttpHeadersV2(uri, request, options), + request, + SubscriptionOperation.class); + } + + public static SubscriptionOperation retryPayment(SubscriptionOrderOperationRequest request, Options options) { + String uri = options.getBaseUrl() + "/v2/subscription/operation/retry"; + return HttpClient.create().post(uri, + getHttpHeadersV2(uri, request, options), + request, + SubscriptionOperation.class); + } +} diff --git a/src/main/java/com/iyzipay/model/subscription/SubscriptionPricingPlan.java b/src/main/java/com/iyzipay/model/subscription/SubscriptionPricingPlan.java new file mode 100644 index 00000000..a9918f73 --- /dev/null +++ b/src/main/java/com/iyzipay/model/subscription/SubscriptionPricingPlan.java @@ -0,0 +1,55 @@ +package com.iyzipay.model.subscription; + +import com.google.gson.annotations.SerializedName; +import com.iyzipay.HttpClient; +import com.iyzipay.IyzipayResource; +import com.iyzipay.Options; +import com.iyzipay.model.subscription.resource.SubscriptionPricingPlanData; +import com.iyzipay.request.subscription.CreateSubscriptionPricingPlanRequest; +import com.iyzipay.request.subscription.UpdateSubscriptionPricingPlanRequest; + +public class SubscriptionPricingPlan extends IyzipayResource { + + @SerializedName("data") + private SubscriptionPricingPlanData subscriptionPricingPlanData; + + public static SubscriptionPricingPlan retrieve(String subscriptionPricingPlanReferenceCode, Options options) { + String uri = options.getBaseUrl() + "/v2/subscription/pricing-plans/" + subscriptionPricingPlanReferenceCode; + return HttpClient.create().get(uri, + getHttpHeadersV2(uri, null, options), + null, + SubscriptionPricingPlan.class); + } + + public static SubscriptionPricingPlan create(String subscriptionProductReferenceCode, CreateSubscriptionPricingPlanRequest request, Options options) { + String uri = options.getBaseUrl() + "/v2/subscription/products/" + subscriptionProductReferenceCode + "/pricing-plans"; + return HttpClient.create().post(uri, + getHttpHeadersV2(uri, request, options), + request, + SubscriptionPricingPlan.class); + } + + public static SubscriptionPricingPlan update(String subscriptionPricingPlanReferenceCode, UpdateSubscriptionPricingPlanRequest request, Options options) { + String uri = options.getBaseUrl() + "/v2/subscription/pricing-plans/" + subscriptionPricingPlanReferenceCode; + return HttpClient.create().post(uri, + getHttpHeadersV2(uri, request, options), + request, + SubscriptionPricingPlan.class); + } + + public static IyzipayResource delete(String subscriptionPricingPlanReferenceCode, Options options) { + String uri = options.getBaseUrl() + "/v2/subscription/pricing-plans/" + subscriptionPricingPlanReferenceCode; + return HttpClient.create().delete(uri, + getHttpHeadersV2(uri, null, options), + null, + IyzipayResource.class); + } + + public SubscriptionPricingPlanData getSubscriptionPricingPlanData() { + return subscriptionPricingPlanData; + } + + public void setSubscriptionPricingPlanData(SubscriptionPricingPlanData subscriptionPricingPlanData) { + this.subscriptionPricingPlanData = subscriptionPricingPlanData; + } +} diff --git a/src/main/java/com/iyzipay/model/subscription/SubscriptionPricingPlanList.java b/src/main/java/com/iyzipay/model/subscription/SubscriptionPricingPlanList.java new file mode 100644 index 00000000..3e916342 --- /dev/null +++ b/src/main/java/com/iyzipay/model/subscription/SubscriptionPricingPlanList.java @@ -0,0 +1,34 @@ +package com.iyzipay.model.subscription; + +import com.google.gson.annotations.SerializedName; +import com.iyzipay.HttpClient; +import com.iyzipay.IyzipayResource; +import com.iyzipay.Options; +import com.iyzipay.PagingRequest; +import com.iyzipay.model.subscription.builder.PageRequestQueryParamBuilder; +import com.iyzipay.model.subscription.resource.SubscriptionPricingPlanListData; + +public class SubscriptionPricingPlanList extends IyzipayResource { + + @SerializedName("data") + private SubscriptionPricingPlanListData subscriptionPricingPlanListData; + + public static SubscriptionPricingPlanList retrieve(String subscriptionPricingPlanReferenceCode, PagingRequest request, Options options) { + String uri = options.getBaseUrl() + "/v2/subscription/products/" + subscriptionPricingPlanReferenceCode + "/pricing-plans/" + new PageRequestQueryParamBuilder() + .page(request.getPage()) + .count(request.getCount()) + .build(); + return HttpClient.create().get(uri, + getHttpHeadersV2(uri, null, options), + null, + SubscriptionPricingPlanList.class); + } + + public SubscriptionPricingPlanListData getSubscriptionPricingPlanListData() { + return subscriptionPricingPlanListData; + } + + public void setSubscriptionPricingPlanListData(SubscriptionPricingPlanListData subscriptionPricingPlanListData) { + this.subscriptionPricingPlanListData = subscriptionPricingPlanListData; + } +} diff --git a/src/main/java/com/iyzipay/model/subscription/SubscriptionProduct.java b/src/main/java/com/iyzipay/model/subscription/SubscriptionProduct.java new file mode 100644 index 00000000..893c03d4 --- /dev/null +++ b/src/main/java/com/iyzipay/model/subscription/SubscriptionProduct.java @@ -0,0 +1,55 @@ +package com.iyzipay.model.subscription; + +import com.google.gson.annotations.SerializedName; +import com.iyzipay.HttpClient; +import com.iyzipay.IyzipayResource; +import com.iyzipay.Options; +import com.iyzipay.model.subscription.resource.SubscriptionProductData; +import com.iyzipay.request.subscription.CreateSubscriptionProductRequest; +import com.iyzipay.request.subscription.SubscriptionUpdateProductRequest; + +public class SubscriptionProduct extends IyzipayResource { + + @SerializedName("data") + private SubscriptionProductData subscriptionProductData; + + public static SubscriptionProduct retrieve(String subscriptionProductReferenceCode, Options options) { + String uri = options.getBaseUrl() + "/v2/subscription/products/" + subscriptionProductReferenceCode; + return HttpClient.create().get(uri, + getHttpHeadersV2(uri, null, options), + null, + SubscriptionProduct.class); + } + + public static SubscriptionProduct create(CreateSubscriptionProductRequest request, Options options) { + String uri = options.getBaseUrl() + "/v2/subscription/products"; + return HttpClient.create().post(uri, + getHttpHeadersV2(uri, request, options), + request, + SubscriptionProduct.class); + } + + public static SubscriptionProduct update(String subscriptionProductReferenceCode, SubscriptionUpdateProductRequest request, Options options) { + String uri = options.getBaseUrl() + "/v2/subscription/products/" + subscriptionProductReferenceCode; + return HttpClient.create().post(uri, + getHttpHeadersV2(uri, request, options), + request, + SubscriptionProduct.class); + } + + public static IyzipayResource delete(String subscriptionProductReferenceCode, Options options) { + String uri = options.getBaseUrl() + "/v2/subscription/products/" + subscriptionProductReferenceCode; + return HttpClient.create().delete(uri, + getHttpHeadersV2(uri, null, options), + null, + IyzipayResource.class); + } + + public SubscriptionProductData getSubscriptionProductData() { + return subscriptionProductData; + } + + public void setSubscriptionProductData(SubscriptionProductData subscriptionProductData) { + this.subscriptionProductData = subscriptionProductData; + } +} diff --git a/src/main/java/com/iyzipay/model/subscription/SubscriptionProductList.java b/src/main/java/com/iyzipay/model/subscription/SubscriptionProductList.java new file mode 100644 index 00000000..6ce81ce8 --- /dev/null +++ b/src/main/java/com/iyzipay/model/subscription/SubscriptionProductList.java @@ -0,0 +1,34 @@ +package com.iyzipay.model.subscription; + +import com.google.gson.annotations.SerializedName; +import com.iyzipay.HttpClient; +import com.iyzipay.IyzipayResource; +import com.iyzipay.Options; +import com.iyzipay.PagingRequest; +import com.iyzipay.model.subscription.builder.PageRequestQueryParamBuilder; +import com.iyzipay.model.subscription.resource.SubscriptionProductListData; + +public class SubscriptionProductList extends IyzipayResource { + + @SerializedName("data") + private SubscriptionProductListData subscriptionProductListData; + + public static SubscriptionProductList retrieve(PagingRequest request, Options options) { + String uri = options.getBaseUrl() + "/v2/subscription/products/" + new PageRequestQueryParamBuilder() + .page(request.getPage()) + .count(request.getCount()) + .build(); + return HttpClient.create().get(uri, + getHttpHeadersV2(uri, null, options), + null, + SubscriptionProductList.class); + } + + public SubscriptionProductListData getSubscriptionProductListData() { + return subscriptionProductListData; + } + + public void setSubscriptionProductListData(SubscriptionProductListData subscriptionProductListData) { + this.subscriptionProductListData = subscriptionProductListData; + } +} diff --git a/src/main/java/com/iyzipay/model/subscription/SubscriptionSearch.java b/src/main/java/com/iyzipay/model/subscription/SubscriptionSearch.java new file mode 100644 index 00000000..28ae9b1f --- /dev/null +++ b/src/main/java/com/iyzipay/model/subscription/SubscriptionSearch.java @@ -0,0 +1,121 @@ +package com.iyzipay.model.subscription; + +import com.iyzipay.HttpClient; +import com.iyzipay.IyzipayResource; +import com.iyzipay.Options; +import com.iyzipay.PagingRequest; +import com.iyzipay.request.subscription.SearchSubscriptionRequest; +import org.apache.commons.lang3.StringUtils; + +import java.util.HashMap; +import java.util.Map; + +public class SubscriptionSearch extends IyzipayResource { + + public static SubscriptionSearch search(SearchSubscriptionRequest request, PagingRequest pagingRequest, Options options) { + String uri = options.getBaseUrl() + "/v2/subscription/initialize" + new SubscriptionSearchQueryParamBuilder().page(pagingRequest.getPage()) + .count(pagingRequest.getCount()) + .page(pagingRequest.getPage()) + .subscriptionReferenceCode(request.getSubscriptionReferenceCode()) + .parentReferenceCode(request.getParentReferenceCode()) + .customerReferenceCode(request.getCustomerReferenceCode()) + .pricingPlanReferenceCode(request.getPricingPlanReferenceCode()) + .subscriptionStatus(request.getSubscriptionStatus()) + .startDate(request.getStartDate()) + .endDate(request.getEndDate()) + .build(); + + return HttpClient.create().get(uri, + getHttpHeadersV2(uri, null, options), + null, + SubscriptionSearch.class); + } + + private static class SubscriptionSearchQueryParamBuilder { + + private Map subscriptionSearchQueryParams; + + public SubscriptionSearchQueryParamBuilder() { + subscriptionSearchQueryParams = new HashMap(); + } + + public SubscriptionSearchQueryParamBuilder page(Integer page) { + if (page != null) { + subscriptionSearchQueryParams.put("page", page); + } + return this; + } + + public SubscriptionSearchQueryParamBuilder count(Integer count) { + if (count != null) { + subscriptionSearchQueryParams.put("count", count); + } + return this; + } + + public SubscriptionSearchQueryParamBuilder subscriptionReferenceCode(String subscriptionReferenceCode) { + if (StringUtils.isNotBlank(subscriptionReferenceCode)) { + subscriptionSearchQueryParams.put("subscriptionReferenceCode", subscriptionReferenceCode); + } + return this; + } + + public SubscriptionSearchQueryParamBuilder parentReferenceCode(String parentReferenceCode) { + if (StringUtils.isNotBlank(parentReferenceCode)) { + subscriptionSearchQueryParams.put("parentReferenceCode", parentReferenceCode); + } + return this; + } + + public SubscriptionSearchQueryParamBuilder customerReferenceCode(String customerReferenceCode) { + if (StringUtils.isNotBlank(customerReferenceCode)) { + subscriptionSearchQueryParams.put("customerReferenceCode", customerReferenceCode); + } + return this; + } + + public SubscriptionSearchQueryParamBuilder pricingPlanReferenceCode(String pricingPlanReferenceCode) { + if (StringUtils.isNotBlank(pricingPlanReferenceCode)) { + subscriptionSearchQueryParams.put("pricingPlanReferenceCode", pricingPlanReferenceCode); + } + return this; + } + + public SubscriptionSearchQueryParamBuilder subscriptionStatus(String subscriptionStatus) { + if (subscriptionStatus != null) { + subscriptionSearchQueryParams.put("subscriptionStatus", subscriptionStatus); + } + return this; + } + + public SubscriptionSearchQueryParamBuilder startDate(String startDate) { + if (startDate != null) { + subscriptionSearchQueryParams.put("startDate", startDate); + } + return this; + } + + public SubscriptionSearchQueryParamBuilder endDate(String endDate) { + if (endDate != null) { + subscriptionSearchQueryParams.put("endDate", endDate); + } + return this; + } + + public String build() { + StringBuilder queryParams = new StringBuilder(); + if (subscriptionSearchQueryParams.size() > 0) { + queryParams.append("?"); + } + for (Map.Entry entry : subscriptionSearchQueryParams.entrySet()) { + queryParams + .append(entry.getKey()) + .append("=") + .append(entry.getValue().toString()) + .append("&"); + } + return queryParams.toString(); + } + + } +} diff --git a/src/main/java/com/iyzipay/model/subscription/builder/PageRequestQueryParamBuilder.java b/src/main/java/com/iyzipay/model/subscription/builder/PageRequestQueryParamBuilder.java new file mode 100644 index 00000000..808316cb --- /dev/null +++ b/src/main/java/com/iyzipay/model/subscription/builder/PageRequestQueryParamBuilder.java @@ -0,0 +1,42 @@ +package com.iyzipay.model.subscription.builder; + +import java.util.HashMap; +import java.util.Map; + +public class PageRequestQueryParamBuilder { + + private Map subscriptionCustomerQueryParams; + + public PageRequestQueryParamBuilder() { + subscriptionCustomerQueryParams = new HashMap(); + } + + public PageRequestQueryParamBuilder page(Integer page) { + if (page != null) { + subscriptionCustomerQueryParams.put("page", page); + } + return this; + } + + public PageRequestQueryParamBuilder count(Integer count) { + if (count != null) { + subscriptionCustomerQueryParams.put("count", count); + } + return this; + } + + public String build() { + StringBuilder queryParams = new StringBuilder(); + if (subscriptionCustomerQueryParams.size() > 0) { + queryParams.append("?"); + } + for (Map.Entry entry : subscriptionCustomerQueryParams.entrySet()) { + queryParams + .append(entry.getKey()) + .append("=") + .append(entry.getValue().toString()) + .append("&"); + } + return queryParams.toString(); + } +} diff --git a/src/main/java/com/iyzipay/model/subscription/enumtype/SubscriptionInitialStatus.java b/src/main/java/com/iyzipay/model/subscription/enumtype/SubscriptionInitialStatus.java new file mode 100644 index 00000000..1d076669 --- /dev/null +++ b/src/main/java/com/iyzipay/model/subscription/enumtype/SubscriptionInitialStatus.java @@ -0,0 +1,17 @@ +package com.iyzipay.model.subscription.enumtype; + +public enum SubscriptionInitialStatus { + + ACTIVE(1), + PENDING(2); + + private final Integer value; + + SubscriptionInitialStatus(Integer value) { + this.value = value; + } + + public Integer getValue() { + return value; + } +} diff --git a/src/main/java/com/iyzipay/model/subscription/enumtype/SubscriptionOrderStatus.java b/src/main/java/com/iyzipay/model/subscription/enumtype/SubscriptionOrderStatus.java new file mode 100644 index 00000000..6679daa2 --- /dev/null +++ b/src/main/java/com/iyzipay/model/subscription/enumtype/SubscriptionOrderStatus.java @@ -0,0 +1,23 @@ +package com.iyzipay.model.subscription.enumtype; + +public enum SubscriptionOrderStatus { + + MERCHANT_SUSPENDED(-99), + FAILED(-1), + SUCCESS(1), + WAITING(2), + PROCESSING(3), + SUBSCRIPTION_UPGRADED(4), + SUBSCRIPTION_CANCELED(5), + QUEUED(6); + + private final Integer value; + + SubscriptionOrderStatus(Integer value) { + this.value = value; + } + + public Integer getValue() { + return value; + } +} diff --git a/src/main/java/com/iyzipay/model/subscription/enumtype/SubscriptionPaymentInterval.java b/src/main/java/com/iyzipay/model/subscription/enumtype/SubscriptionPaymentInterval.java new file mode 100644 index 00000000..dc3e8e71 --- /dev/null +++ b/src/main/java/com/iyzipay/model/subscription/enumtype/SubscriptionPaymentInterval.java @@ -0,0 +1,19 @@ +package com.iyzipay.model.subscription.enumtype; + +public enum SubscriptionPaymentInterval { + + DAILY(1), + WEEKLY(2), + MONTHLY(3), + YEARLY(4); + + private final Integer value; + + SubscriptionPaymentInterval(Integer value) { + this.value = value; + } + + public Integer getValue() { + return value; + } +} diff --git a/src/main/java/com/iyzipay/model/subscription/enumtype/SubscriptionPaymentStatus.java b/src/main/java/com/iyzipay/model/subscription/enumtype/SubscriptionPaymentStatus.java new file mode 100644 index 00000000..a88d21c8 --- /dev/null +++ b/src/main/java/com/iyzipay/model/subscription/enumtype/SubscriptionPaymentStatus.java @@ -0,0 +1,18 @@ +package com.iyzipay.model.subscription.enumtype; + +public enum SubscriptionPaymentStatus { + + FAILED(-1), + SUCCESS(1), + PROCESSING(3); + + private final Integer value; + + SubscriptionPaymentStatus(Integer value) { + this.value = value; + } + + public Integer getValue() { + return value; + } +} diff --git a/src/main/java/com/iyzipay/model/subscription/enumtype/SubscriptionPaymentType.java b/src/main/java/com/iyzipay/model/subscription/enumtype/SubscriptionPaymentType.java new file mode 100644 index 00000000..ba8d3569 --- /dev/null +++ b/src/main/java/com/iyzipay/model/subscription/enumtype/SubscriptionPaymentType.java @@ -0,0 +1,16 @@ +package com.iyzipay.model.subscription.enumtype; + +public enum SubscriptionPaymentType { + + RECURRING(1); + + private final Integer value; + + SubscriptionPaymentType(Integer value) { + this.value = value; + } + + public Integer getValue() { + return value; + } +} diff --git a/src/main/java/com/iyzipay/model/subscription/enumtype/SubscriptionStatus.java b/src/main/java/com/iyzipay/model/subscription/enumtype/SubscriptionStatus.java new file mode 100644 index 00000000..c2337068 --- /dev/null +++ b/src/main/java/com/iyzipay/model/subscription/enumtype/SubscriptionStatus.java @@ -0,0 +1,22 @@ +package com.iyzipay.model.subscription.enumtype; + +public enum SubscriptionStatus { + + MERCHANT_SUSPENDED(-99), + EXPIRED(-4), + UNPAID(-3), + CANCELED(-1), + ACTIVE(1), + PENDING(2), + UPGRADED(3); + + private final Integer value; + + SubscriptionStatus(Integer value) { + this.value = value; + } + + public Integer getValue() { + return value; + } +} diff --git a/src/main/java/com/iyzipay/model/subscription/enumtype/SubscriptionUpgradePeriod.java b/src/main/java/com/iyzipay/model/subscription/enumtype/SubscriptionUpgradePeriod.java new file mode 100644 index 00000000..7b549397 --- /dev/null +++ b/src/main/java/com/iyzipay/model/subscription/enumtype/SubscriptionUpgradePeriod.java @@ -0,0 +1,17 @@ +package com.iyzipay.model.subscription.enumtype; + +public enum SubscriptionUpgradePeriod { + + NOW(1), + NEXT_PERIOD(2); + + private final Integer value; + + SubscriptionUpgradePeriod(Integer value) { + this.value = value; + } + + public Integer getValue() { + return value; + } +} diff --git a/src/main/java/com/iyzipay/model/subscription/resource/CreatedSubscriptionData.java b/src/main/java/com/iyzipay/model/subscription/resource/CreatedSubscriptionData.java new file mode 100644 index 00000000..72b787f6 --- /dev/null +++ b/src/main/java/com/iyzipay/model/subscription/resource/CreatedSubscriptionData.java @@ -0,0 +1,113 @@ +package com.iyzipay.model.subscription.resource; + +public class CreatedSubscriptionData { + + private String referenceCode; + private String parentReferenceCode; + private String pricingPlanReferenceCode; + private String customerReferenceCode; + private String subscriptionStatus; + private Integer trialDays; + private String trialStartDate; + private String trialEndDate; + private String canceledAt; + private String createdDate; + private String startDate; + private String endDate; + + public String getReferenceCode() { + return referenceCode; + } + + public void setReferenceCode(String referenceCode) { + this.referenceCode = referenceCode; + } + + public String getParentReferenceCode() { + return parentReferenceCode; + } + + public void setParentReferenceCode(String parentReferenceCode) { + this.parentReferenceCode = parentReferenceCode; + } + + public String getPricingPlanReferenceCode() { + return pricingPlanReferenceCode; + } + + public void setPricingPlanReferenceCode(String pricingPlanReferenceCode) { + this.pricingPlanReferenceCode = pricingPlanReferenceCode; + } + + public String getCustomerReferenceCode() { + return customerReferenceCode; + } + + public void setCustomerReferenceCode(String customerReferenceCode) { + this.customerReferenceCode = customerReferenceCode; + } + + public String getSubscriptionStatus() { + return subscriptionStatus; + } + + public void setSubscriptionStatus(String subscriptionStatus) { + this.subscriptionStatus = subscriptionStatus; + } + + public Integer getTrialDays() { + return trialDays; + } + + public void setTrialDays(Integer trialDays) { + this.trialDays = trialDays; + } + + public String getTrialStartDate() { + return trialStartDate; + } + + public void setTrialStartDate(String trialStartDate) { + this.trialStartDate = trialStartDate; + } + + public String getTrialEndDate() { + return trialEndDate; + } + + public void setTrialEndDate(String trialEndDate) { + this.trialEndDate = trialEndDate; + } + + public String getCanceledAt() { + return canceledAt; + } + + public void setCanceledAt(String canceledAt) { + this.canceledAt = canceledAt; + } + + public String getCreatedDate() { + return createdDate; + } + + public void setCreatedDate(String createdDate) { + this.createdDate = createdDate; + } + + public String getStartDate() { + return startDate; + } + + public void setStartDate(String startDate) { + this.startDate = startDate; + } + + public String getEndDate() { + return endDate; + } + + public void setEndDate(String endDate) { + this.endDate = endDate; + } +} diff --git a/src/main/java/com/iyzipay/model/subscription/resource/SubscriptionCardData.java b/src/main/java/com/iyzipay/model/subscription/resource/SubscriptionCardData.java new file mode 100644 index 00000000..3a4a2aab --- /dev/null +++ b/src/main/java/com/iyzipay/model/subscription/resource/SubscriptionCardData.java @@ -0,0 +1,50 @@ +package com.iyzipay.model.subscription.resource; + +public class SubscriptionCardData { + + private String cardHolderName; + private String cardNumber; + private String expireYear; + private String expireMonth; + private String cvc; + + public String getCardHolderName() { + return cardHolderName; + } + + public void setCardHolderName(String cardHolderName) { + this.cardHolderName = cardHolderName; + } + + public String getCardNumber() { + return cardNumber; + } + + public void setCardNumber(String cardNumber) { + this.cardNumber = cardNumber; + } + + public String getExpireYear() { + return expireYear; + } + + public void setExpireYear(String expireYear) { + this.expireYear = expireYear; + } + + public String getExpireMonth() { + return expireMonth; + } + + public void setExpireMonth(String expireMonth) { + this.expireMonth = expireMonth; + } + + public String getCvc() { + return cvc; + } + + public void setCvc(String cvc) { + this.cvc = cvc; + } +} diff --git a/src/main/java/com/iyzipay/model/subscription/resource/SubscriptionCustomer.java b/src/main/java/com/iyzipay/model/subscription/resource/SubscriptionCustomer.java new file mode 100644 index 00000000..cce4c094 --- /dev/null +++ b/src/main/java/com/iyzipay/model/subscription/resource/SubscriptionCustomer.java @@ -0,0 +1,84 @@ +package com.iyzipay.model.subscription.resource; + +import com.iyzipay.ToStringRequestBuilder; +import com.iyzipay.model.SubscriptionAddress; + +public class SubscriptionCustomer { + + private String email; + private String name; + private String surname; + private String identityNumber; + private String gsmNumber; + private SubscriptionAddress billingAddress; + private SubscriptionAddress shippingAddress; + + public String getEmail() { + return email; + } + + public void setEmail(String email) { + this.email = email; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getSurname() { + return surname; + } + + public void setSurname(String surname) { + this.surname = surname; + } + + public String getIdentityNumber() { + return identityNumber; + } + + public void setIdentityNumber(String identityNumber) { + this.identityNumber = identityNumber; + } + + public String getGsmNumber() { + return gsmNumber; + } + + public void setGsmNumber(String gsmNumber) { + this.gsmNumber = gsmNumber; + } + + public SubscriptionAddress getBillingAddress() { + return billingAddress; + } + + public void setBillingAddress(SubscriptionAddress billingAddress) { + this.billingAddress = billingAddress; + } + + public SubscriptionAddress getShippingAddress() { + return shippingAddress; + } + + public void setShippingAddress(SubscriptionAddress shippingAddress) { + this.shippingAddress = shippingAddress; + } + + @Override + public String toString() { + return new ToStringRequestBuilder(this) + .append("name", name) + .append("surname", surname) + .append("identityNumber", identityNumber) + .append("email", email) + .append("gsmNumber", gsmNumber) + .append("billingAddress", billingAddress) + .append("shippingAddress", shippingAddress) + .toString(); + } +} diff --git a/src/main/java/com/iyzipay/model/subscription/resource/SubscriptionCustomerData.java b/src/main/java/com/iyzipay/model/subscription/resource/SubscriptionCustomerData.java new file mode 100644 index 00000000..239eea48 --- /dev/null +++ b/src/main/java/com/iyzipay/model/subscription/resource/SubscriptionCustomerData.java @@ -0,0 +1,97 @@ +package com.iyzipay.model.subscription.resource; + +import com.iyzipay.model.SubscriptionAddress; + +public class SubscriptionCustomerData { + + private String referenceCode; + private String createdDate; + private String status; + private String name; + private String surname; + private String identityNumber; + private String email; + private String gsmNumber; + private SubscriptionAddress billingAddress; + private SubscriptionAddress shippingAddress; + + public String getReferenceCode() { + return referenceCode; + } + + public void setReferenceCode(String referenceCode) { + this.referenceCode = referenceCode; + } + + public String getCreatedDate() { + return createdDate; + } + + public void setCreatedDate(String createdDate) { + this.createdDate = createdDate; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getSurname() { + return surname; + } + + public void setSurname(String surname) { + this.surname = surname; + } + + public String getIdentityNumber() { + return identityNumber; + } + + public void setIdentityNumber(String identityNumber) { + this.identityNumber = identityNumber; + } + + public String getEmail() { + return email; + } + + public void setEmail(String email) { + this.email = email; + } + + public String getGsmNumber() { + return gsmNumber; + } + + public void setGsmNumber(String gsmNumber) { + this.gsmNumber = gsmNumber; + } + + public SubscriptionAddress getBillingAddress() { + return billingAddress; + } + + public void setBillingAddress(SubscriptionAddress billingAddress) { + this.billingAddress = billingAddress; + } + + public SubscriptionAddress getShippingAddress() { + return shippingAddress; + } + + public void setShippingAddress(SubscriptionAddress shippingAddress) { + this.shippingAddress = shippingAddress; + } +} diff --git a/src/main/java/com/iyzipay/model/subscription/resource/SubscriptionCustomerListData.java b/src/main/java/com/iyzipay/model/subscription/resource/SubscriptionCustomerListData.java new file mode 100644 index 00000000..24932964 --- /dev/null +++ b/src/main/java/com/iyzipay/model/subscription/resource/SubscriptionCustomerListData.java @@ -0,0 +1,46 @@ +package com.iyzipay.model.subscription.resource; + +import com.google.gson.annotations.SerializedName; + +import java.util.List; + +public class SubscriptionCustomerListData { + + @SerializedName("items") + private List subscriptionCustomer; + private Long totalCount; + private Integer currentPage; + private Integer pageCount; + + public List getSubscriptionCustomer() { + return subscriptionCustomer; + } + + public void setSubscriptionCustomer(List subscriptionCustomer) { + this.subscriptionCustomer = subscriptionCustomer; + } + + public Long getTotalCount() { + return totalCount; + } + + public void setTotalCount(Long totalCount) { + this.totalCount = totalCount; + } + + public Integer getCurrentPage() { + return currentPage; + } + + public void setCurrentPage(Integer currentPage) { + this.currentPage = currentPage; + } + + public Integer getPageCount() { + return pageCount; + } + + public void setPageCount(Integer pageCount) { + this.pageCount = pageCount; + } +} diff --git a/src/main/java/com/iyzipay/model/subscription/resource/SubscriptionData.java b/src/main/java/com/iyzipay/model/subscription/resource/SubscriptionData.java new file mode 100644 index 00000000..4752a62e --- /dev/null +++ b/src/main/java/com/iyzipay/model/subscription/resource/SubscriptionData.java @@ -0,0 +1,172 @@ +package com.iyzipay.model.subscription.resource; + +import com.google.gson.annotations.SerializedName; + +import java.util.List; + +public class SubscriptionData { + + private String referenceCode; + private String parentReferenceCode; + private String pricingPlanName; + private String pricingPlanReferenceCode; + private String productName; + private String productReferenceCode; + private String customerEmail; + private String customerReferenceCode; + private Long paymentId; + private String subscriptionStatus; + private Integer trialDays; + private String trialStartDate; + private String trialEndDate; + private String canceledAt; + private String createdDate; + private String startDate; + private String endDate; + @SerializedName(value = "orders") + private List subscriptionOrders; + + public String getReferenceCode() { + return referenceCode; + } + + public void setReferenceCode(String referenceCode) { + this.referenceCode = referenceCode; + } + + public String getParentReferenceCode() { + return parentReferenceCode; + } + + public void setParentReferenceCode(String parentReferenceCode) { + this.parentReferenceCode = parentReferenceCode; + } + + public String getPricingPlanName() { + return pricingPlanName; + } + + public void setPricingPlanName(String pricingPlanName) { + this.pricingPlanName = pricingPlanName; + } + + public String getPricingPlanReferenceCode() { + return pricingPlanReferenceCode; + } + + public void setPricingPlanReferenceCode(String pricingPlanReferenceCode) { + this.pricingPlanReferenceCode = pricingPlanReferenceCode; + } + + public String getProductName() { + return productName; + } + + public void setProductName(String productName) { + this.productName = productName; + } + + public String getProductReferenceCode() { + return productReferenceCode; + } + + public void setProductReferenceCode(String productReferenceCode) { + this.productReferenceCode = productReferenceCode; + } + + public String getCustomerEmail() { + return customerEmail; + } + + public void setCustomerEmail(String customerEmail) { + this.customerEmail = customerEmail; + } + + public String getCustomerReferenceCode() { + return customerReferenceCode; + } + + public void setCustomerReferenceCode(String customerReferenceCode) { + this.customerReferenceCode = customerReferenceCode; + } + + public Long getPaymentId() { + return paymentId; + } + + public void setPaymentId(Long paymentId) { + this.paymentId = paymentId; + } + + public String getSubscriptionStatus() { + return subscriptionStatus; + } + + public void setSubscriptionStatus(String subscriptionStatus) { + this.subscriptionStatus = subscriptionStatus; + } + + public Integer getTrialDays() { + return trialDays; + } + + public void setTrialDays(Integer trialDays) { + this.trialDays = trialDays; + } + + public String getTrialStartDate() { + return trialStartDate; + } + + public void setTrialStartDate(String trialStartDate) { + this.trialStartDate = trialStartDate; + } + + public String getTrialEndDate() { + return trialEndDate; + } + + public void setTrialEndDate(String trialEndDate) { + this.trialEndDate = trialEndDate; + } + + public String getCanceledAt() { + return canceledAt; + } + + public void setCanceledAt(String canceledAt) { + this.canceledAt = canceledAt; + } + + public String getCreatedDate() { + return createdDate; + } + + public void setCreatedDate(String createdDate) { + this.createdDate = createdDate; + } + + public String getStartDate() { + return startDate; + } + + public void setStartDate(String startDate) { + this.startDate = startDate; + } + + public String getEndDate() { + return endDate; + } + + public void setEndDate(String endDate) { + this.endDate = endDate; + } + + public List getSubscriptionOrders() { + return subscriptionOrders; + } + + public void setSubscriptionOrders(List subscriptionOrders) { + this.subscriptionOrders = subscriptionOrders; + } +} diff --git a/src/main/java/com/iyzipay/model/subscription/resource/SubscriptionOrderData.java b/src/main/java/com/iyzipay/model/subscription/resource/SubscriptionOrderData.java new file mode 100644 index 00000000..f333da53 --- /dev/null +++ b/src/main/java/com/iyzipay/model/subscription/resource/SubscriptionOrderData.java @@ -0,0 +1,76 @@ +package com.iyzipay.model.subscription.resource; + +import com.google.gson.annotations.SerializedName; +import com.iyzipay.model.subscription.enumtype.SubscriptionOrderStatus; + +import java.math.BigDecimal; +import java.util.Date; +import java.util.List; + +public class SubscriptionOrderData { + + private String referenceCode; + private BigDecimal price; + private String currencyCode; + private Date startPeriod; + private Date endPeriod; + private SubscriptionOrderStatus orderStatus; + @SerializedName(value = "paymentAttempts") + private List orderPaymentAttempts; + + public String getReferenceCode() { + return referenceCode; + } + + public void setReferenceCode(String referenceCode) { + this.referenceCode = referenceCode; + } + + public BigDecimal getPrice() { + return price; + } + + public void setPrice(BigDecimal price) { + this.price = price; + } + + public String getCurrencyCode() { + return currencyCode; + } + + public void setCurrencyCode(String currencyCode) { + this.currencyCode = currencyCode; + } + + public Date getStartPeriod() { + return startPeriod; + } + + public void setStartPeriod(Date startPeriod) { + this.startPeriod = startPeriod; + } + + public Date getEndPeriod() { + return endPeriod; + } + + public void setEndPeriod(Date endPeriod) { + this.endPeriod = endPeriod; + } + + public SubscriptionOrderStatus getOrderStatus() { + return orderStatus; + } + + public void setOrderStatus(SubscriptionOrderStatus orderStatus) { + this.orderStatus = orderStatus; + } + + public List getOrderPaymentAttempts() { + return orderPaymentAttempts; + } + + public void setOrderPaymentAttempts(List orderPaymentAttempts) { + this.orderPaymentAttempts = orderPaymentAttempts; + } +} diff --git a/src/main/java/com/iyzipay/model/subscription/resource/SubscriptionOrderPaymentAttemptData.java b/src/main/java/com/iyzipay/model/subscription/resource/SubscriptionOrderPaymentAttemptData.java new file mode 100644 index 00000000..441273e7 --- /dev/null +++ b/src/main/java/com/iyzipay/model/subscription/resource/SubscriptionOrderPaymentAttemptData.java @@ -0,0 +1,63 @@ +package com.iyzipay.model.subscription.resource; + +import com.iyzipay.model.subscription.enumtype.SubscriptionPaymentStatus; + +import java.util.Date; + +public class SubscriptionOrderPaymentAttemptData { + + private String conversationId; + private Date createdDate; + private Long paymentId; + private SubscriptionPaymentStatus paymentStatus; + private String errorCode; + private String errorMessage; + + public String getConversationId() { + return conversationId; + } + + public void setConversationId(String conversationId) { + this.conversationId = conversationId; + } + + public Date getCreatedDate() { + return createdDate; + } + + public void setCreatedDate(Date createdDate) { + this.createdDate = createdDate; + } + + public Long getPaymentId() { + return paymentId; + } + + public void setPaymentId(Long paymentId) { + this.paymentId = paymentId; + } + + public SubscriptionPaymentStatus getPaymentStatus() { + return paymentStatus; + } + + public void setPaymentStatus(SubscriptionPaymentStatus paymentStatus) { + this.paymentStatus = paymentStatus; + } + + public String getErrorCode() { + return errorCode; + } + + public void setErrorCode(String errorCode) { + this.errorCode = errorCode; + } + + public String getErrorMessage() { + return errorMessage; + } + + public void setErrorMessage(String errorMessage) { + this.errorMessage = errorMessage; + } +} diff --git a/src/main/java/com/iyzipay/model/subscription/resource/SubscriptionPricingPlanData.java b/src/main/java/com/iyzipay/model/subscription/resource/SubscriptionPricingPlanData.java new file mode 100644 index 00000000..a0336e50 --- /dev/null +++ b/src/main/java/com/iyzipay/model/subscription/resource/SubscriptionPricingPlanData.java @@ -0,0 +1,115 @@ +package com.iyzipay.model.subscription.resource; + +import java.math.BigDecimal; + +public class SubscriptionPricingPlanData { + + private String referenceCode; + private String createdDate; + private String name; + private BigDecimal price; + private String paymentInterval; + private Integer paymentIntervalCount; + private Integer trialPeriodDays; + private String currencyCode; + private String productReferenceCode; + private String planPaymentType; + private String status; + private Integer recurrenceCount; + + public String getReferenceCode() { + return referenceCode; + } + + public void setReferenceCode(String referenceCode) { + this.referenceCode = referenceCode; + } + + public String getCreatedDate() { + return createdDate; + } + + public void setCreatedDate(String createdDate) { + this.createdDate = createdDate; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public BigDecimal getPrice() { + return price; + } + + public void setPrice(BigDecimal price) { + this.price = price; + } + + public String getPaymentInterval() { + return paymentInterval; + } + + public void setPaymentInterval(String paymentInterval) { + this.paymentInterval = paymentInterval; + } + + public Integer getPaymentIntervalCount() { + return paymentIntervalCount; + } + + public void setPaymentIntervalCount(Integer paymentIntervalCount) { + this.paymentIntervalCount = paymentIntervalCount; + } + + public Integer getTrialPeriodDays() { + return trialPeriodDays; + } + + public void setTrialPeriodDays(Integer trialPeriodDays) { + this.trialPeriodDays = trialPeriodDays; + } + + public String getCurrencyCode() { + return currencyCode; + } + + public void setCurrencyCode(String currencyCode) { + this.currencyCode = currencyCode; + } + + public String getProductReferenceCode() { + return productReferenceCode; + } + + public void setProductReferenceCode(String productReferenceCode) { + this.productReferenceCode = productReferenceCode; + } + + public String getPlanPaymentType() { + return planPaymentType; + } + + public void setPlanPaymentType(String planPaymentType) { + this.planPaymentType = planPaymentType; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + + public Integer getRecurrenceCount() { + return recurrenceCount; + } + + public void setRecurrenceCount(Integer recurrenceCount) { + this.recurrenceCount = recurrenceCount; + } +} diff --git a/src/main/java/com/iyzipay/model/subscription/resource/SubscriptionPricingPlanListData.java b/src/main/java/com/iyzipay/model/subscription/resource/SubscriptionPricingPlanListData.java new file mode 100644 index 00000000..0c6bfd5b --- /dev/null +++ b/src/main/java/com/iyzipay/model/subscription/resource/SubscriptionPricingPlanListData.java @@ -0,0 +1,46 @@ +package com.iyzipay.model.subscription.resource; + +import com.google.gson.annotations.SerializedName; + +import java.util.List; + +public class SubscriptionPricingPlanListData { + + @SerializedName("items") + private List subscriptionPricingPlansResource; + private Long totalCount; + private Integer currentPage; + private Integer pageCount; + + public List getSubscriptionPricingPlansResource() { + return subscriptionPricingPlansResource; + } + + public void setSubscriptionPricingPlansResource(List subscriptionPricingPlansResource) { + this.subscriptionPricingPlansResource = subscriptionPricingPlansResource; + } + + public Long getTotalCount() { + return totalCount; + } + + public void setTotalCount(Long totalCount) { + this.totalCount = totalCount; + } + + public Integer getCurrentPage() { + return currentPage; + } + + public void setCurrentPage(Integer currentPage) { + this.currentPage = currentPage; + } + + public Integer getPageCount() { + return pageCount; + } + + public void setPageCount(Integer pageCount) { + this.pageCount = pageCount; + } +} diff --git a/src/main/java/com/iyzipay/model/subscription/resource/SubscriptionProductData.java b/src/main/java/com/iyzipay/model/subscription/resource/SubscriptionProductData.java new file mode 100644 index 00000000..06c5f8b1 --- /dev/null +++ b/src/main/java/com/iyzipay/model/subscription/resource/SubscriptionProductData.java @@ -0,0 +1,64 @@ +package com.iyzipay.model.subscription.resource; + +import com.google.gson.annotations.SerializedName; + +import java.util.List; + +public class SubscriptionProductData { + + private String referenceCode; + private String createdDate; + private String name; + private String description; + private String status; + @SerializedName("pricingPlans") + private List pricingPlanList; + + public String getReferenceCode() { + return referenceCode; + } + + public void setReferenceCode(String referenceCode) { + this.referenceCode = referenceCode; + } + + public String getCreatedDate() { + return createdDate; + } + + public void setCreatedDate(String createdDate) { + this.createdDate = createdDate; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + + public List getPricingPlanList() { + return pricingPlanList; + } + + public void setPricingPlanList(List pricingPlanList) { + this.pricingPlanList = pricingPlanList; + } +} diff --git a/src/main/java/com/iyzipay/model/subscription/resource/SubscriptionProductListData.java b/src/main/java/com/iyzipay/model/subscription/resource/SubscriptionProductListData.java new file mode 100644 index 00000000..9bd93a98 --- /dev/null +++ b/src/main/java/com/iyzipay/model/subscription/resource/SubscriptionProductListData.java @@ -0,0 +1,46 @@ +package com.iyzipay.model.subscription.resource; + +import com.google.gson.annotations.SerializedName; + +import java.util.List; + +public class SubscriptionProductListData { + + @SerializedName("items") + private List productList; + private Long totalCount; + private Integer currentPage; + private Integer pageCount; + + public List getProductList() { + return productList; + } + + public void setProductList(List productList) { + this.productList = productList; + } + + public Long getTotalCount() { + return totalCount; + } + + public void setTotalCount(Long totalCount) { + this.totalCount = totalCount; + } + + public Integer getCurrentPage() { + return currentPage; + } + + public void setCurrentPage(Integer currentPage) { + this.currentPage = currentPage; + } + + public Integer getPageCount() { + return pageCount; + } + + public void setPageCount(Integer pageCount) { + this.pageCount = pageCount; + } +} diff --git a/src/main/java/com/iyzipay/request/subscription/CreateSubscriptionCustomerRequest.java b/src/main/java/com/iyzipay/request/subscription/CreateSubscriptionCustomerRequest.java new file mode 100644 index 00000000..3dfc3fe4 --- /dev/null +++ b/src/main/java/com/iyzipay/request/subscription/CreateSubscriptionCustomerRequest.java @@ -0,0 +1,71 @@ +package com.iyzipay.request.subscription; + +import com.iyzipay.Request; +import com.iyzipay.model.SubscriptionAddress; + +public class CreateSubscriptionCustomerRequest extends Request { + + private String name; + private String surname; + private String identityNumber; + private String email; + private String gsmNumber; + private SubscriptionAddress billingAddress; + private SubscriptionAddress shippingAddress; + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getSurname() { + return surname; + } + + public void setSurname(String surname) { + this.surname = surname; + } + + public String getIdentityNumber() { + return identityNumber; + } + + public void setIdentityNumber(String identityNumber) { + this.identityNumber = identityNumber; + } + + public String getEmail() { + return email; + } + + public void setEmail(String email) { + this.email = email; + } + + public String getGsmNumber() { + return gsmNumber; + } + + public void setGsmNumber(String gsmNumber) { + this.gsmNumber = gsmNumber; + } + + public SubscriptionAddress getBillingAddress() { + return billingAddress; + } + + public void setBillingAddress(SubscriptionAddress billingAddress) { + this.billingAddress = billingAddress; + } + + public SubscriptionAddress getShippingAddress() { + return shippingAddress; + } + + public void setShippingAddress(SubscriptionAddress shippingAddress) { + this.shippingAddress = shippingAddress; + } +} diff --git a/src/main/java/com/iyzipay/request/subscription/CreateSubscriptionPricingPlanRequest.java b/src/main/java/com/iyzipay/request/subscription/CreateSubscriptionPricingPlanRequest.java new file mode 100644 index 00000000..843cc80c --- /dev/null +++ b/src/main/java/com/iyzipay/request/subscription/CreateSubscriptionPricingPlanRequest.java @@ -0,0 +1,81 @@ +package com.iyzipay.request.subscription; + +import com.iyzipay.Request; + +import java.math.BigDecimal; + +public class CreateSubscriptionPricingPlanRequest extends Request { + + private String name; + private BigDecimal price; + private String currencyCode; + private String paymentInterval; + private Integer paymentIntervalCount; + private Integer trialPeriodDays; + private String planPaymentType; + private Integer recurrenceCount; + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public BigDecimal getPrice() { + return price; + } + + public void setPrice(BigDecimal price) { + this.price = price; + } + + public String getCurrencyCode() { + return currencyCode; + } + + public void setCurrencyCode(String currencyCode) { + this.currencyCode = currencyCode; + } + + public String getPaymentInterval() { + return paymentInterval; + } + + public void setPaymentInterval(String paymentInterval) { + this.paymentInterval = paymentInterval; + } + + public Integer getPaymentIntervalCount() { + return paymentIntervalCount; + } + + public void setPaymentIntervalCount(Integer paymentIntervalCount) { + this.paymentIntervalCount = paymentIntervalCount; + } + + public Integer getTrialPeriodDays() { + return trialPeriodDays; + } + + public void setTrialPeriodDays(Integer trialPeriodDays) { + this.trialPeriodDays = trialPeriodDays; + } + + public String getPlanPaymentType() { + return planPaymentType; + } + + public void setPlanPaymentType(String planPaymentType) { + this.planPaymentType = planPaymentType; + } + + public Integer getRecurrenceCount() { + return recurrenceCount; + } + + public void setRecurrenceCount(Integer recurrenceCount) { + this.recurrenceCount = recurrenceCount; + } +} diff --git a/src/main/java/com/iyzipay/request/subscription/CreateSubscriptionProductRequest.java b/src/main/java/com/iyzipay/request/subscription/CreateSubscriptionProductRequest.java new file mode 100644 index 00000000..6d22ad89 --- /dev/null +++ b/src/main/java/com/iyzipay/request/subscription/CreateSubscriptionProductRequest.java @@ -0,0 +1,25 @@ +package com.iyzipay.request.subscription; + +import com.iyzipay.Request; + +public class CreateSubscriptionProductRequest extends Request { + + private String name; + private String description; + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } +} diff --git a/src/main/java/com/iyzipay/request/subscription/InitializeSubscriptionCardUpdateCheckoutFormRequest.java b/src/main/java/com/iyzipay/request/subscription/InitializeSubscriptionCardUpdateCheckoutFormRequest.java new file mode 100644 index 00000000..0f93d918 --- /dev/null +++ b/src/main/java/com/iyzipay/request/subscription/InitializeSubscriptionCardUpdateCheckoutFormRequest.java @@ -0,0 +1,25 @@ +package com.iyzipay.request.subscription; + +import com.iyzipay.Request; + +public class InitializeSubscriptionCardUpdateCheckoutFormRequest extends Request { + + private String customerReferenceCode; + private String callbackUrl; + + public String getCustomerReferenceCode() { + return customerReferenceCode; + } + + public void setCustomerReferenceCode(String customerReferenceCode) { + this.customerReferenceCode = customerReferenceCode; + } + + public String getCallbackUrl() { + return callbackUrl; + } + + public void setCallbackUrl(String callbackUrl) { + this.callbackUrl = callbackUrl; + } +} diff --git a/src/main/java/com/iyzipay/request/subscription/InitializeSubscriptionCheckoutFormRequest.java b/src/main/java/com/iyzipay/request/subscription/InitializeSubscriptionCheckoutFormRequest.java new file mode 100644 index 00000000..d889c899 --- /dev/null +++ b/src/main/java/com/iyzipay/request/subscription/InitializeSubscriptionCheckoutFormRequest.java @@ -0,0 +1,44 @@ +package com.iyzipay.request.subscription; + +import com.iyzipay.Request; +import com.iyzipay.model.subscription.resource.SubscriptionCustomer; + +public class InitializeSubscriptionCheckoutFormRequest extends Request { + + private String callbackUrl; + private String pricingPlanReferenceCode; + private String subscriptionInitialStatus; + private SubscriptionCustomer customer; + + public String getCallbackUrl() { + return callbackUrl; + } + + public void setCallbackUrl(String callbackUrl) { + this.callbackUrl = callbackUrl; + } + + public String getPricingPlanReferenceCode() { + return pricingPlanReferenceCode; + } + + public void setPricingPlanReferenceCode(String pricingPlanReferenceCode) { + this.pricingPlanReferenceCode = pricingPlanReferenceCode; + } + + public String getSubscriptionInitialStatus() { + return subscriptionInitialStatus; + } + + public void setSubscriptionInitialStatus(String subscriptionInitialStatus) { + this.subscriptionInitialStatus = subscriptionInitialStatus; + } + + public SubscriptionCustomer getCustomer() { + return customer; + } + + public void setCustomer(SubscriptionCustomer customer) { + this.customer = customer; + } +} diff --git a/src/main/java/com/iyzipay/request/subscription/InitializeSubscriptionRequest.java b/src/main/java/com/iyzipay/request/subscription/InitializeSubscriptionRequest.java new file mode 100644 index 00000000..ddf4aca1 --- /dev/null +++ b/src/main/java/com/iyzipay/request/subscription/InitializeSubscriptionRequest.java @@ -0,0 +1,45 @@ +package com.iyzipay.request.subscription; + +import com.iyzipay.Request; +import com.iyzipay.model.subscription.resource.SubscriptionCardData; +import com.iyzipay.model.subscription.resource.SubscriptionCustomer; + +public class InitializeSubscriptionRequest extends Request { + + private SubscriptionCardData paymentCard; + private SubscriptionCustomer customer; + private String pricingPlanReferenceCode; + private String subscriptionInitialStatus; + + public SubscriptionCardData getPaymentCard() { + return paymentCard; + } + + public void setPaymentCard(SubscriptionCardData paymentCard) { + this.paymentCard = paymentCard; + } + + public SubscriptionCustomer getCustomer() { + return customer; + } + + public void setCustomer(SubscriptionCustomer customer) { + this.customer = customer; + } + + public String getPricingPlanReferenceCode() { + return pricingPlanReferenceCode; + } + + public void setPricingPlanReferenceCode(String pricingPlanReferenceCode) { + this.pricingPlanReferenceCode = pricingPlanReferenceCode; + } + + public String getSubscriptionInitialStatus() { + return subscriptionInitialStatus; + } + + public void setSubscriptionInitialStatus(String subscriptionInitialStatus) { + this.subscriptionInitialStatus = subscriptionInitialStatus; + } +} diff --git a/src/main/java/com/iyzipay/request/subscription/InitializeSubscriptionWithExistingCustomerRequest.java b/src/main/java/com/iyzipay/request/subscription/InitializeSubscriptionWithExistingCustomerRequest.java new file mode 100644 index 00000000..200a568f --- /dev/null +++ b/src/main/java/com/iyzipay/request/subscription/InitializeSubscriptionWithExistingCustomerRequest.java @@ -0,0 +1,34 @@ +package com.iyzipay.request.subscription; + +import com.iyzipay.Request; + +public class InitializeSubscriptionWithExistingCustomerRequest extends Request { + + private String pricingPlanReferenceCode; + private String customerReferenceCode; + private String subscriptionInitialStatus; + + public String getPricingPlanReferenceCode() { + return pricingPlanReferenceCode; + } + + public void setPricingPlanReferenceCode(String pricingPlanReferenceCode) { + this.pricingPlanReferenceCode = pricingPlanReferenceCode; + } + + public String getCustomerReferenceCode() { + return customerReferenceCode; + } + + public void setCustomerReferenceCode(String customerReferenceCode) { + this.customerReferenceCode = customerReferenceCode; + } + + public String getSubscriptionInitialStatus() { + return subscriptionInitialStatus; + } + + public void setSubscriptionInitialStatus(String subscriptionInitialStatus) { + this.subscriptionInitialStatus = subscriptionInitialStatus; + } +} diff --git a/src/main/java/com/iyzipay/request/subscription/SearchSubscriptionRequest.java b/src/main/java/com/iyzipay/request/subscription/SearchSubscriptionRequest.java new file mode 100644 index 00000000..0f7dacf5 --- /dev/null +++ b/src/main/java/com/iyzipay/request/subscription/SearchSubscriptionRequest.java @@ -0,0 +1,68 @@ +package com.iyzipay.request.subscription; + +public class SearchSubscriptionRequest { + + private String subscriptionReferenceCode; + private String parentReferenceCode; + private String customerReferenceCode; + private String pricingPlanReferenceCode; + private String subscriptionStatus; + private String startDate; + private String endDate; + + public String getSubscriptionReferenceCode() { + return subscriptionReferenceCode; + } + + public void setSubscriptionReferenceCode(String subscriptionReferenceCode) { + this.subscriptionReferenceCode = subscriptionReferenceCode; + } + + public String getParentReferenceCode() { + return parentReferenceCode; + } + + public void setParentReferenceCode(String parentReferenceCode) { + this.parentReferenceCode = parentReferenceCode; + } + + public String getCustomerReferenceCode() { + return customerReferenceCode; + } + + public void setCustomerReferenceCode(String customerReferenceCode) { + this.customerReferenceCode = customerReferenceCode; + } + + public String getPricingPlanReferenceCode() { + return pricingPlanReferenceCode; + } + + public void setPricingPlanReferenceCode(String pricingPlanReferenceCode) { + this.pricingPlanReferenceCode = pricingPlanReferenceCode; + } + + public String getSubscriptionStatus() { + return subscriptionStatus; + } + + public void setSubscriptionStatus(String subscriptionStatus) { + this.subscriptionStatus = subscriptionStatus; + } + + public String getStartDate() { + return startDate; + } + + public void setStartDate(String startDate) { + this.startDate = startDate; + } + + public String getEndDate() { + return endDate; + } + + public void setEndDate(String endDate) { + this.endDate = endDate; + } +} diff --git a/src/main/java/com/iyzipay/request/subscription/SubscriptionOrderOperationRequest.java b/src/main/java/com/iyzipay/request/subscription/SubscriptionOrderOperationRequest.java new file mode 100644 index 00000000..2e56c402 --- /dev/null +++ b/src/main/java/com/iyzipay/request/subscription/SubscriptionOrderOperationRequest.java @@ -0,0 +1,16 @@ +package com.iyzipay.request.subscription; + +import com.iyzipay.Request; + +public class SubscriptionOrderOperationRequest extends Request { + + private String referenceCode; + + public String getReferenceCode() { + return referenceCode; + } + + public void setReferenceCode(String referenceCode) { + this.referenceCode = referenceCode; + } +} diff --git a/src/main/java/com/iyzipay/request/subscription/SubscriptionUpdateProductRequest.java b/src/main/java/com/iyzipay/request/subscription/SubscriptionUpdateProductRequest.java new file mode 100644 index 00000000..62e0fc41 --- /dev/null +++ b/src/main/java/com/iyzipay/request/subscription/SubscriptionUpdateProductRequest.java @@ -0,0 +1,25 @@ +package com.iyzipay.request.subscription; + +import com.iyzipay.Request; + +public class SubscriptionUpdateProductRequest extends Request { + + private String name; + private String description; + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } +} diff --git a/src/main/java/com/iyzipay/request/subscription/UpdateSubscriptionCustomerRequest.java b/src/main/java/com/iyzipay/request/subscription/UpdateSubscriptionCustomerRequest.java new file mode 100644 index 00000000..12b4a793 --- /dev/null +++ b/src/main/java/com/iyzipay/request/subscription/UpdateSubscriptionCustomerRequest.java @@ -0,0 +1,71 @@ +package com.iyzipay.request.subscription; + +import com.iyzipay.Request; +import com.iyzipay.model.SubscriptionAddress; + +public class UpdateSubscriptionCustomerRequest extends Request { + + private String name; + private String surname; + private String identityNumber; + private String email; + private String gsmNumber; + private SubscriptionAddress billingAddress; + private SubscriptionAddress shippingAddress; + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getSurname() { + return surname; + } + + public void setSurname(String surname) { + this.surname = surname; + } + + public String getIdentityNumber() { + return identityNumber; + } + + public void setIdentityNumber(String identityNumber) { + this.identityNumber = identityNumber; + } + + public String getEmail() { + return email; + } + + public void setEmail(String email) { + this.email = email; + } + + public String getGsmNumber() { + return gsmNumber; + } + + public void setGsmNumber(String gsmNumber) { + this.gsmNumber = gsmNumber; + } + + public SubscriptionAddress getBillingAddress() { + return billingAddress; + } + + public void setBillingAddress(SubscriptionAddress billingAddress) { + this.billingAddress = billingAddress; + } + + public SubscriptionAddress getShippingAddress() { + return shippingAddress; + } + + public void setShippingAddress(SubscriptionAddress shippingAddress) { + this.shippingAddress = shippingAddress; + } +} diff --git a/src/main/java/com/iyzipay/request/subscription/UpdateSubscriptionPricingPlanRequest.java b/src/main/java/com/iyzipay/request/subscription/UpdateSubscriptionPricingPlanRequest.java new file mode 100644 index 00000000..7acb623e --- /dev/null +++ b/src/main/java/com/iyzipay/request/subscription/UpdateSubscriptionPricingPlanRequest.java @@ -0,0 +1,25 @@ +package com.iyzipay.request.subscription; + +import com.iyzipay.Request; + +public class UpdateSubscriptionPricingPlanRequest extends Request { + + private String name; + private Integer trialPeriodDays; + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public Integer getTrialPeriodDays() { + return trialPeriodDays; + } + + public void setTrialPeriodDays(Integer trialPeriodDays) { + this.trialPeriodDays = trialPeriodDays; + } +} diff --git a/src/main/java/com/iyzipay/request/subscription/UpgradeSubscriptionRequest.java b/src/main/java/com/iyzipay/request/subscription/UpgradeSubscriptionRequest.java new file mode 100644 index 00000000..f53dcceb --- /dev/null +++ b/src/main/java/com/iyzipay/request/subscription/UpgradeSubscriptionRequest.java @@ -0,0 +1,43 @@ +package com.iyzipay.request.subscription; + +import com.iyzipay.Request; + +public class UpgradeSubscriptionRequest extends Request { + + private String newPricingPlanReferenceCode; + private String upgradePeriod; + private Boolean useTrial; + private Boolean resetRecurrenceCount; + + public String getNewPricingPlanReferenceCode() { + return newPricingPlanReferenceCode; + } + + public void setNewPricingPlanReferenceCode(String newPricingPlanReferenceCode) { + this.newPricingPlanReferenceCode = newPricingPlanReferenceCode; + } + + public String getUpgradePeriod() { + return upgradePeriod; + } + + public void setUpgradePeriod(String upgradePeriod) { + this.upgradePeriod = upgradePeriod; + } + + public Boolean getUseTrial() { + return useTrial; + } + + public void setUseTrial(Boolean useTrial) { + this.useTrial = useTrial; + } + + public Boolean getResetRecurrenceCount() { + return resetRecurrenceCount; + } + + public void setResetRecurrenceCount(Boolean resetRecurrenceCount) { + this.resetRecurrenceCount = resetRecurrenceCount; + } +} diff --git a/src/test/java/com/iyzipay/sample/Sample.java b/src/test/java/com/iyzipay/sample/Sample.java index ed3a04e1..e3fc4a78 100644 --- a/src/test/java/com/iyzipay/sample/Sample.java +++ b/src/test/java/com/iyzipay/sample/Sample.java @@ -5,7 +5,7 @@ public abstract class Sample { - Options options; + public Options options; @Before public void setUp() { diff --git a/src/test/java/com/iyzipay/sample/subscription/SubscriptionCardUpdateCheckoutFormInitializeSample.java b/src/test/java/com/iyzipay/sample/subscription/SubscriptionCardUpdateCheckoutFormInitializeSample.java new file mode 100644 index 00000000..21995820 --- /dev/null +++ b/src/test/java/com/iyzipay/sample/subscription/SubscriptionCardUpdateCheckoutFormInitializeSample.java @@ -0,0 +1,26 @@ +package com.iyzipay.sample.subscription; + +import com.iyzipay.model.Locale; +import com.iyzipay.model.Status; +import com.iyzipay.model.subscription.SubscriptionCardUpdateCheckoutFormInitialize; +import com.iyzipay.request.subscription.InitializeSubscriptionCardUpdateCheckoutFormRequest; +import com.iyzipay.sample.Sample; +import org.junit.Test; + +import static org.junit.Assert.assertEquals; + +public class SubscriptionCardUpdateCheckoutFormInitializeSample extends Sample { + + @Test + public void should_initialize_subscription_card_update_checkout_form() { + InitializeSubscriptionCardUpdateCheckoutFormRequest cardUpdateCheckoutFormRequest = new InitializeSubscriptionCardUpdateCheckoutFormRequest(); + cardUpdateCheckoutFormRequest.setCallbackUrl("https://www.merchant.com/callback"); + cardUpdateCheckoutFormRequest.setCustomerReferenceCode("dfc1d5d2-1859-4582-9889-30f9c409d86f"); + cardUpdateCheckoutFormRequest.setConversationId("123456"); + cardUpdateCheckoutFormRequest.setLocale(Locale.TR.name()); + + SubscriptionCardUpdateCheckoutFormInitialize response = SubscriptionCardUpdateCheckoutFormInitialize.create(cardUpdateCheckoutFormRequest, options); + + assertEquals(Status.SUCCESS.getValue(), response.getStatus()); + } +} \ No newline at end of file diff --git a/src/test/java/com/iyzipay/sample/subscription/SubscriptionCheckoutFormInitializeSample.java b/src/test/java/com/iyzipay/sample/subscription/SubscriptionCheckoutFormInitializeSample.java new file mode 100644 index 00000000..50e71e9b --- /dev/null +++ b/src/test/java/com/iyzipay/sample/subscription/SubscriptionCheckoutFormInitializeSample.java @@ -0,0 +1,52 @@ +package com.iyzipay.sample.subscription; + +import com.iyzipay.model.Locale; +import com.iyzipay.model.Status; +import com.iyzipay.model.SubscriptionAddress; +import com.iyzipay.model.subscription.SubscriptionCheckoutFormInitialize; +import com.iyzipay.model.subscription.enumtype.SubscriptionInitialStatus; +import com.iyzipay.model.subscription.resource.SubscriptionCustomer; +import com.iyzipay.request.subscription.InitializeSubscriptionCheckoutFormRequest; +import com.iyzipay.sample.Sample; +import org.junit.Test; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; + +public class SubscriptionCheckoutFormInitializeSample extends Sample { + + @Test + public void should_init_subscription_checkoutForm() { + SubscriptionAddress address = new SubscriptionAddress(); + address.setContactName("Jane Doe"); + address.setCity("Istanbul"); + address.setCountry("Turkey"); + address.setAddress("Nidakule Göztepe, Merdivenköy Mah. Bora Sok. No:1"); + address.setZipCode("347"); + + SubscriptionCustomer customer = new SubscriptionCustomer(); + customer.setBillingAddress(address); + customer.setShippingAddress(address); + customer.setEmail("caner@email.com"); + customer.setGsmNumber("+905432789543"); + customer.setIdentityNumber("12345678901"); + customer.setName("Caner"); + customer.setSurname("Test"); + + InitializeSubscriptionCheckoutFormRequest request = new InitializeSubscriptionCheckoutFormRequest(); + request.setCustomer(customer); + request.setCallbackUrl("https://www.merchant.com/callback"); + request.setPricingPlanReferenceCode("23893e87-ef29-4b96-936f-e50ffce1f362"); + request.setSubscriptionInitialStatus(SubscriptionInitialStatus.ACTIVE.name()); + request.setConversationId("12345"); + request.setLocale(Locale.TR.name()); + + SubscriptionCheckoutFormInitialize response = SubscriptionCheckoutFormInitialize.create(request, options); + + assertEquals(Status.SUCCESS.getValue(), response.getStatus()); + assertEquals(Locale.TR.getValue(), response.getLocale()); + assertNotNull(response.getToken()); + assertNotNull(response.getCheckoutFormContent()); + assertNotNull(response.getTokenExpireTime()); + } +} diff --git a/src/test/java/com/iyzipay/sample/subscription/SubscriptionCheckoutFormSample.java b/src/test/java/com/iyzipay/sample/subscription/SubscriptionCheckoutFormSample.java new file mode 100644 index 00000000..d15a62fc --- /dev/null +++ b/src/test/java/com/iyzipay/sample/subscription/SubscriptionCheckoutFormSample.java @@ -0,0 +1,19 @@ +package com.iyzipay.sample.subscription; + +import com.iyzipay.model.Status; +import com.iyzipay.model.subscription.SubscriptionCheckoutForm; +import com.iyzipay.sample.Sample; +import org.junit.Test; + +import static org.junit.Assert.assertEquals; + + +public class SubscriptionCheckoutFormSample extends Sample { + + @Test + public void should_retrieve_subscription_checkout_form() { + SubscriptionCheckoutForm response = SubscriptionCheckoutForm.retrieve("044513be-33ad-493b-b3ec-66591fce4988", options); + + assertEquals(response.getStatus(), Status.SUCCESS.getValue()); + } +} \ No newline at end of file diff --git a/src/test/java/com/iyzipay/sample/subscription/SubscriptionCustomerListSample.java b/src/test/java/com/iyzipay/sample/subscription/SubscriptionCustomerListSample.java new file mode 100644 index 00000000..a2582198 --- /dev/null +++ b/src/test/java/com/iyzipay/sample/subscription/SubscriptionCustomerListSample.java @@ -0,0 +1,23 @@ +package com.iyzipay.sample.subscription; + +import com.iyzipay.PagingRequest; +import com.iyzipay.model.Status; +import com.iyzipay.model.subscription.SubscriptionCustomerList; +import com.iyzipay.sample.Sample; +import org.junit.Test; + +import static org.junit.Assert.assertEquals; + +public class SubscriptionCustomerListSample extends Sample { + + @Test + public void should_retrieve_customer_list() { + PagingRequest pagingRequest = new PagingRequest(); + pagingRequest.setCount(10); + pagingRequest.setPage(2); + + SubscriptionCustomerList response = SubscriptionCustomerList.retrieve(pagingRequest, options); + + assertEquals(response.getStatus(), Status.SUCCESS.getValue()); + } +} \ No newline at end of file diff --git a/src/test/java/com/iyzipay/sample/subscription/SubscriptionCustomerSample.java b/src/test/java/com/iyzipay/sample/subscription/SubscriptionCustomerSample.java new file mode 100644 index 00000000..b19a7030 --- /dev/null +++ b/src/test/java/com/iyzipay/sample/subscription/SubscriptionCustomerSample.java @@ -0,0 +1,110 @@ +package com.iyzipay.sample.subscription; + +import com.iyzipay.IyzipayResource; +import com.iyzipay.model.Locale; +import com.iyzipay.model.Status; +import com.iyzipay.model.SubscriptionAddress; +import com.iyzipay.model.subscription.SubscriptionCustomer; +import com.iyzipay.request.subscription.CreateSubscriptionCustomerRequest; +import com.iyzipay.request.subscription.UpdateSubscriptionCustomerRequest; +import com.iyzipay.sample.Sample; +import org.junit.Test; + +import static junit.framework.TestCase.assertEquals; +import static junit.framework.TestCase.assertNotNull; + +public class SubscriptionCustomerSample extends Sample { + + @Test + public void should_create() { + SubscriptionAddress address = new SubscriptionAddress(); + address.setContactName("Jane Doe"); + address.setCity("Istanbul"); + address.setCountry("Turkey"); + address.setAddress("Nidakule Göztepe, Merdivenköy Mah. Bora Sok. No:1"); + address.setZipCode("34742"); + + CreateSubscriptionCustomerRequest subscriptionCustomerRequest = new CreateSubscriptionCustomerRequest(); + subscriptionCustomerRequest.setBillingAddress(address); + subscriptionCustomerRequest.setShippingAddress(address); + subscriptionCustomerRequest.setEmail("caner@email.com"); + subscriptionCustomerRequest.setGsmNumber("+905332135670"); + subscriptionCustomerRequest.setShippingAddress(address); + subscriptionCustomerRequest.setIdentityNumber("21345678992"); + subscriptionCustomerRequest.setName("Caner"); + subscriptionCustomerRequest.setSurname("Yesildag"); + subscriptionCustomerRequest.setConversationId("123456"); + subscriptionCustomerRequest.setLocale(Locale.TR.name()); + + SubscriptionCustomer response = SubscriptionCustomer.create(subscriptionCustomerRequest, options); + + assertEquals(response.getStatus(), Status.SUCCESS.getValue()); + assertNotNull(response.getSubscriptionCustomerData().getBillingAddress()); + assertNotNull(response.getSubscriptionCustomerData().getShippingAddress()); + assertNotNull(response.getSubscriptionCustomerData().getCreatedDate()); + assertNotNull(response.getSubscriptionCustomerData().getEmail()); + assertNotNull(response.getSubscriptionCustomerData().getGsmNumber()); + assertNotNull(response.getSubscriptionCustomerData().getIdentityNumber()); + assertNotNull(response.getSubscriptionCustomerData().getName()); + assertNotNull(response.getSubscriptionCustomerData().getReferenceCode()); + assertNotNull(response.getSubscriptionCustomerData().getSurname()); + } + + @Test + public void should_update() { + SubscriptionAddress address = new SubscriptionAddress(); + address.setContactName("Jane Doe"); + address.setCity("Istanbul"); + address.setCountry("Turkey"); + address.setAddress("Nidakule Göztepe, Merdivenköy Mah. Bora Sok. No:1"); + address.setZipCode("34742"); + + UpdateSubscriptionCustomerRequest subscriptionCustomerRequest = new UpdateSubscriptionCustomerRequest(); + subscriptionCustomerRequest.setBillingAddress(address); + subscriptionCustomerRequest.setShippingAddress(address); + subscriptionCustomerRequest.setEmail("caner@email.com"); + subscriptionCustomerRequest.setGsmNumber("+905332135678"); + subscriptionCustomerRequest.setShippingAddress(address); + subscriptionCustomerRequest.setIdentityNumber("21345678902"); + subscriptionCustomerRequest.setName("Caner"); + subscriptionCustomerRequest.setSurname("Yesildag-updated"); + subscriptionCustomerRequest.setConversationId("123456"); + subscriptionCustomerRequest.setLocale(Locale.TR.name()); + + SubscriptionCustomer response = SubscriptionCustomer.update("1ffb2a89-cf69-4ddd-92ae-a52bd1f7461d", subscriptionCustomerRequest, options); + + assertEquals(response.getStatus(), Status.SUCCESS.getValue()); + assertNotNull(response.getSubscriptionCustomerData().getBillingAddress()); + assertNotNull(response.getSubscriptionCustomerData().getShippingAddress()); + assertNotNull(response.getSubscriptionCustomerData().getCreatedDate()); + assertNotNull(response.getSubscriptionCustomerData().getEmail()); + assertNotNull(response.getSubscriptionCustomerData().getGsmNumber()); + assertNotNull(response.getSubscriptionCustomerData().getIdentityNumber()); + assertNotNull(response.getSubscriptionCustomerData().getName()); + assertNotNull(response.getSubscriptionCustomerData().getReferenceCode()); + assertNotNull(response.getSubscriptionCustomerData().getSurname()); + } + + @Test + public void should_retrieve() { + SubscriptionCustomer response = SubscriptionCustomer.retrieve("d6797c6d-b99d-417c-bffc-aa931173f0ef", options); + + assertEquals(response.getStatus(), Status.SUCCESS.getValue()); + assertNotNull(response.getSubscriptionCustomerData().getBillingAddress()); + assertNotNull(response.getSubscriptionCustomerData().getShippingAddress()); + assertNotNull(response.getSubscriptionCustomerData().getCreatedDate()); + assertNotNull(response.getSubscriptionCustomerData().getEmail()); + assertNotNull(response.getSubscriptionCustomerData().getGsmNumber()); + assertNotNull(response.getSubscriptionCustomerData().getIdentityNumber()); + assertNotNull(response.getSubscriptionCustomerData().getName()); + assertNotNull(response.getSubscriptionCustomerData().getReferenceCode()); + assertNotNull(response.getSubscriptionCustomerData().getSurname()); + } + + @Test + public void should_delete() { + IyzipayResource response = SubscriptionCustomer.delete("1ffb2a89-cf69-4ddd-92ae-a52bd1f7461d", options); + + assertEquals(response.getStatus(), Status.SUCCESS.getValue()); + } +} \ No newline at end of file diff --git a/src/test/java/com/iyzipay/sample/subscription/SubscriptionInitializeSample.java b/src/test/java/com/iyzipay/sample/subscription/SubscriptionInitializeSample.java new file mode 100644 index 00000000..00b84b69 --- /dev/null +++ b/src/test/java/com/iyzipay/sample/subscription/SubscriptionInitializeSample.java @@ -0,0 +1,91 @@ +package com.iyzipay.sample.subscription; + +import com.iyzipay.model.Locale; +import com.iyzipay.model.Status; +import com.iyzipay.model.SubscriptionAddress; +import com.iyzipay.model.subscription.SubscriptionInitialize; +import com.iyzipay.model.subscription.enumtype.SubscriptionInitialStatus; +import com.iyzipay.model.subscription.enumtype.SubscriptionStatus; +import com.iyzipay.model.subscription.resource.SubscriptionCardData; +import com.iyzipay.model.subscription.resource.SubscriptionCustomer; +import com.iyzipay.request.subscription.InitializeSubscriptionRequest; +import com.iyzipay.request.subscription.InitializeSubscriptionWithExistingCustomerRequest; +import com.iyzipay.sample.Sample; +import org.junit.Test; + +import static junit.framework.TestCase.assertEquals; +import static junit.framework.TestCase.assertNotNull; + +public class SubscriptionInitializeSample extends Sample { + + @Test + public void should_create() { + SubscriptionAddress address = new SubscriptionAddress(); + address.setContactName("Jane Doe"); + address.setCity("Istanbul"); + address.setCountry("Turkey"); + address.setAddress("Nidakule Göztepe, Merdivenköy Mah. Bora Sok. No:1"); + address.setZipCode("34742"); + + SubscriptionCustomer subscriptionCustomer = new SubscriptionCustomer(); + subscriptionCustomer.setName("John"); + subscriptionCustomer.setSurname("Doe"); + subscriptionCustomer.setEmail("test@mail.com"); + subscriptionCustomer.setIdentityNumber("111111"); + subscriptionCustomer.setGsmNumber("+905381111111"); + subscriptionCustomer.setBillingAddress(address); + subscriptionCustomer.setShippingAddress(address); + + SubscriptionCardData paymentCard = new SubscriptionCardData(); + paymentCard.setCardHolderName("caner yesildag"); + paymentCard.setCardNumber("5528790000000008"); + paymentCard.setExpireMonth("12"); + paymentCard.setExpireYear("2030"); + paymentCard.setCvc("123"); + + InitializeSubscriptionRequest initializeSubscriptionRequest = new InitializeSubscriptionRequest(); + initializeSubscriptionRequest.setPaymentCard(paymentCard); + initializeSubscriptionRequest.setPricingPlanReferenceCode("553d006c-da91-46d3-81a4-8297881d6b9e"); + initializeSubscriptionRequest.setCustomer(subscriptionCustomer); + initializeSubscriptionRequest.setSubscriptionInitialStatus(SubscriptionInitialStatus.ACTIVE.name()); + initializeSubscriptionRequest.setConversationId("12345"); + initializeSubscriptionRequest.setLocale(Locale.TR.name()); + + SubscriptionInitialize response = SubscriptionInitialize.create(initializeSubscriptionRequest, options); + + assertEquals(response.getStatus(), Status.SUCCESS.getValue()); + assertNotNull(response.getCreatedSubscriptionData().getCustomerReferenceCode()); + assertNotNull(response.getCreatedSubscriptionData().getCreatedDate()); + assertNotNull(response.getCreatedSubscriptionData().getCustomerReferenceCode()); + assertNotNull(response.getCreatedSubscriptionData().getParentReferenceCode()); + assertNotNull(response.getCreatedSubscriptionData().getReferenceCode()); + assertNotNull(response.getCreatedSubscriptionData().getStartDate()); + assertNotNull(response.getCreatedSubscriptionData().getTrialStartDate()); + assertNotNull(response.getCreatedSubscriptionData().getEndDate()); + assertNotNull(response.getCreatedSubscriptionData().getTrialEndDate()); + assertNotNull(response.getCreatedSubscriptionData().getTrialDays()); + assertEquals(response.getCreatedSubscriptionData().getPricingPlanReferenceCode(), "553d006c-da91-46d3-81a4-8297881d6b9e"); + assertEquals(response.getCreatedSubscriptionData().getSubscriptionStatus(), SubscriptionStatus.ACTIVE.name()); + } + + @Test + public void should_create_with_existing_customer() { + InitializeSubscriptionWithExistingCustomerRequest initializeSubscriptionWithExistingCustomerRequest = new InitializeSubscriptionWithExistingCustomerRequest(); + initializeSubscriptionWithExistingCustomerRequest.setCustomerReferenceCode("dfc1d5d2-1859-4582-9889-30f9c409d86f"); + initializeSubscriptionWithExistingCustomerRequest.setPricingPlanReferenceCode("553d006c-da91-46d3-81a4-8297881d6b9e"); + initializeSubscriptionWithExistingCustomerRequest.setSubscriptionInitialStatus(SubscriptionInitialStatus.PENDING.name()); + initializeSubscriptionWithExistingCustomerRequest.setConversationId("12345"); + initializeSubscriptionWithExistingCustomerRequest.setLocale(Locale.TR.name()); + + SubscriptionInitialize response = SubscriptionInitialize.createWithExistingCustomer(initializeSubscriptionWithExistingCustomerRequest, options); + + assertEquals(response.getStatus(), Status.SUCCESS.getValue()); + assertNotNull(response.getCreatedSubscriptionData().getCustomerReferenceCode()); + assertNotNull(response.getCreatedSubscriptionData().getCreatedDate()); + assertEquals(response.getCreatedSubscriptionData().getCustomerReferenceCode(), "dfc1d5d2-1859-4582-9889-30f9c409d86f"); + assertNotNull(response.getCreatedSubscriptionData().getParentReferenceCode()); + assertNotNull(response.getCreatedSubscriptionData().getReferenceCode()); + assertEquals(response.getCreatedSubscriptionData().getPricingPlanReferenceCode(), "553d006c-da91-46d3-81a4-8297881d6b9e"); + assertEquals(response.getCreatedSubscriptionData().getSubscriptionStatus(), SubscriptionStatus.PENDING.name()); + } +} \ No newline at end of file diff --git a/src/test/java/com/iyzipay/sample/subscription/SubscriptionOperationSample.java b/src/test/java/com/iyzipay/sample/subscription/SubscriptionOperationSample.java new file mode 100644 index 00000000..88b40bd9 --- /dev/null +++ b/src/test/java/com/iyzipay/sample/subscription/SubscriptionOperationSample.java @@ -0,0 +1,56 @@ +package com.iyzipay.sample.subscription; + +import com.iyzipay.model.Locale; +import com.iyzipay.model.Status; +import com.iyzipay.model.subscription.SubscriptionOperation; +import com.iyzipay.model.subscription.enumtype.SubscriptionUpgradePeriod; +import com.iyzipay.request.subscription.SubscriptionOrderOperationRequest; +import com.iyzipay.request.subscription.UpgradeSubscriptionRequest; +import com.iyzipay.sample.Sample; +import org.junit.Test; + +import static org.junit.Assert.assertEquals; + +public class SubscriptionOperationSample extends Sample { + + @Test + public void should_cancel_subscription() { + SubscriptionOperation response = SubscriptionOperation.cancel("6081cea6-fae5-45f0-9f9e-2c979259f0a7", options); + + assertEquals(response.getStatus(), Status.SUCCESS.getValue()); + } + + @Test + public void should_activate_subscription() { + SubscriptionOperation response = SubscriptionOperation.activate("6f65af3c-030f-45cc-bc7f-4d05be7f066c", options); + + assertEquals(response.getStatus(), Status.SUCCESS.getValue()); + } + + @Test + public void should_upgrade_subscription() { + UpgradeSubscriptionRequest upgradeSubscriptionRequest = new UpgradeSubscriptionRequest(); + upgradeSubscriptionRequest.setNewPricingPlanReferenceCode("23893e87-ef29-4b96-936f-e50ffce1f362"); + upgradeSubscriptionRequest.setResetRecurrenceCount(true); + upgradeSubscriptionRequest.setUpgradePeriod(SubscriptionUpgradePeriod.NOW.name()); + upgradeSubscriptionRequest.setUseTrial(true); + upgradeSubscriptionRequest.setConversationId("1234356"); + upgradeSubscriptionRequest.setLocale(Locale.TR.name()); + + SubscriptionOperation response = SubscriptionOperation.upgrade("6f65af3c-030f-45cc-bc7f-4d05be7f066c", upgradeSubscriptionRequest, options); + + assertEquals(response.getStatus(), Status.SUCCESS.getValue()); + } + + @Test + public void should_retry_payment() { + SubscriptionOrderOperationRequest subscriptionOrderOperationRequest = new SubscriptionOrderOperationRequest(); + subscriptionOrderOperationRequest.setReferenceCode("cd6fa908-42af-47e6-9eef-5311fd2b9b32"); + subscriptionOrderOperationRequest.setConversationId("123456"); + subscriptionOrderOperationRequest.setLocale(Locale.TR.name()); + + SubscriptionOperation response = SubscriptionOperation.retryPayment(subscriptionOrderOperationRequest, options); + + assertEquals(response.getStatus(), Status.SUCCESS.getValue()); + } +} \ No newline at end of file diff --git a/src/test/java/com/iyzipay/sample/subscription/SubscriptionPricingPlanListSample.java b/src/test/java/com/iyzipay/sample/subscription/SubscriptionPricingPlanListSample.java new file mode 100644 index 00000000..3ed30bd4 --- /dev/null +++ b/src/test/java/com/iyzipay/sample/subscription/SubscriptionPricingPlanListSample.java @@ -0,0 +1,28 @@ +package com.iyzipay.sample.subscription; + +import com.iyzipay.PagingRequest; +import com.iyzipay.model.Locale; +import com.iyzipay.model.Status; +import com.iyzipay.model.subscription.SubscriptionPricingPlanList; +import com.iyzipay.sample.Sample; +import org.junit.Test; + +import static junit.framework.TestCase.assertEquals; +import static junit.framework.TestCase.assertNotNull; + +public class SubscriptionPricingPlanListSample extends Sample { + + @Test + public void should_retrieve() { + PagingRequest pagingRequest = new PagingRequest(); + pagingRequest.setPage(1); + pagingRequest.setCount(10); + pagingRequest.setLocale(Locale.TR.name()); + pagingRequest.setConversationId("123456"); + + SubscriptionPricingPlanList response = SubscriptionPricingPlanList.retrieve("553d006c-da91-46d3-81a4-8297881d6b9e", pagingRequest, options); + + assertEquals(response.getStatus(), Status.SUCCESS.getValue()); + assertNotNull(response.getSubscriptionPricingPlanListData().getSubscriptionPricingPlansResource()); + } +} \ No newline at end of file diff --git a/src/test/java/com/iyzipay/sample/subscription/SubscriptionPricingPlanSample.java b/src/test/java/com/iyzipay/sample/subscription/SubscriptionPricingPlanSample.java new file mode 100644 index 00000000..e431c4ed --- /dev/null +++ b/src/test/java/com/iyzipay/sample/subscription/SubscriptionPricingPlanSample.java @@ -0,0 +1,89 @@ +package com.iyzipay.sample.subscription; + +import com.iyzipay.IyzipayResource; +import com.iyzipay.model.Currency; +import com.iyzipay.model.Locale; +import com.iyzipay.model.Status; +import com.iyzipay.model.subscription.SubscriptionPricingPlan; +import com.iyzipay.model.subscription.enumtype.SubscriptionPaymentInterval; +import com.iyzipay.model.subscription.enumtype.SubscriptionPaymentType; +import com.iyzipay.request.subscription.CreateSubscriptionPricingPlanRequest; +import com.iyzipay.request.subscription.UpdateSubscriptionPricingPlanRequest; +import com.iyzipay.sample.Sample; +import org.junit.Test; + +import java.math.BigDecimal; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; + +public class SubscriptionPricingPlanSample extends Sample { + + @Test + public void should_create() { + CreateSubscriptionPricingPlanRequest createSubscriptionPricingPlanRequest = new CreateSubscriptionPricingPlanRequest(); + createSubscriptionPricingPlanRequest.setPlanPaymentType(SubscriptionPaymentType.RECURRING.name()); + createSubscriptionPricingPlanRequest.setName("caner-pricing-plan-2"); + createSubscriptionPricingPlanRequest.setPrice(BigDecimal.TEN); + createSubscriptionPricingPlanRequest.setCurrencyCode(Currency.TRY.name()); + createSubscriptionPricingPlanRequest.setPaymentInterval(SubscriptionPaymentInterval.WEEKLY.name()); + createSubscriptionPricingPlanRequest.setPaymentIntervalCount(1); + createSubscriptionPricingPlanRequest.setTrialPeriodDays(10); + createSubscriptionPricingPlanRequest.setRecurrenceCount(9); + createSubscriptionPricingPlanRequest.setLocale(Locale.TR.name()); + createSubscriptionPricingPlanRequest.setConversationId("12345678"); + + SubscriptionPricingPlan response = SubscriptionPricingPlan.create("c777b5b0-bc79-4f3f-ac1f-71c064990939", createSubscriptionPricingPlanRequest, options); + + assertEquals(response.getStatus(), Status.SUCCESS.getValue()); + assertNotNull(response.getSubscriptionPricingPlanData().getPlanPaymentType()); + assertNotNull(response.getSubscriptionPricingPlanData().getName()); + assertNotNull(response.getSubscriptionPricingPlanData().getPrice()); + assertNotNull(response.getSubscriptionPricingPlanData().getCurrencyCode()); + assertNotNull(response.getSubscriptionPricingPlanData().getPaymentInterval()); + assertNotNull(response.getSubscriptionPricingPlanData().getPaymentIntervalCount()); + assertNotNull(response.getSubscriptionPricingPlanData().getTrialPeriodDays()); + assertNotNull(response.getSubscriptionPricingPlanData().getRecurrenceCount()); + assertNotNull(response.getSubscriptionPricingPlanData().getReferenceCode()); + assertNotNull(response.getSubscriptionPricingPlanData().getProductReferenceCode()); + assertNotNull(response.getSubscriptionPricingPlanData().getCreatedDate()); + } + + @Test + public void should_update() { + UpdateSubscriptionPricingPlanRequest updateSubscriptionPricingPlanRequest = new UpdateSubscriptionPricingPlanRequest(); + updateSubscriptionPricingPlanRequest.setName("caner-pricing-plan"); + updateSubscriptionPricingPlanRequest.setTrialPeriodDays(13); + updateSubscriptionPricingPlanRequest.setLocale(Locale.TR.name()); + updateSubscriptionPricingPlanRequest.setConversationId("12345678"); + + SubscriptionPricingPlan response = SubscriptionPricingPlan.update("553d006c-da91-46d3-81a4-8297881d6b9e", updateSubscriptionPricingPlanRequest, options); + + assertEquals(response.getStatus(), Status.SUCCESS.getValue()); + assertEquals(response.getSubscriptionPricingPlanData().getTrialPeriodDays(), updateSubscriptionPricingPlanRequest.getTrialPeriodDays()); + assertNotNull(response.getSubscriptionPricingPlanData().getCreatedDate()); + assertNotNull(response.getSubscriptionPricingPlanData().getCurrencyCode()); + assertNotNull(response.getSubscriptionPricingPlanData().getName()); + assertNotNull(response.getSubscriptionPricingPlanData().getPaymentInterval()); + assertNotNull(response.getSubscriptionPricingPlanData().getPaymentIntervalCount()); + assertNotNull(response.getSubscriptionPricingPlanData().getPlanPaymentType()); + assertNotNull(response.getSubscriptionPricingPlanData().getPrice()); + assertNotNull(response.getSubscriptionPricingPlanData().getProductReferenceCode()); + assertNotNull(response.getSubscriptionPricingPlanData().getRecurrenceCount()); + } + + @Test + public void should_retrieve() { + SubscriptionPricingPlan response = SubscriptionPricingPlan.retrieve("553d006c-da91-46d3-81a4-8297881d6b9e", options); + + //then + assertEquals(response.getStatus(), Status.SUCCESS.getValue()); + } + + @Test + public void should_delete() { + IyzipayResource response = SubscriptionPricingPlan.delete("ffa7b210-7990-4a3b-ad2c-e57774e8ec24", options); + + assertEquals(response.getStatus(), Status.SUCCESS.getValue()); + } +} \ No newline at end of file diff --git a/src/test/java/com/iyzipay/sample/subscription/SubscriptionProductListSample.java b/src/test/java/com/iyzipay/sample/subscription/SubscriptionProductListSample.java new file mode 100644 index 00000000..b3b9bcf2 --- /dev/null +++ b/src/test/java/com/iyzipay/sample/subscription/SubscriptionProductListSample.java @@ -0,0 +1,28 @@ +package com.iyzipay.sample.subscription; + +import com.iyzipay.PagingRequest; +import com.iyzipay.model.Locale; +import com.iyzipay.model.Status; +import com.iyzipay.model.subscription.SubscriptionProductList; +import com.iyzipay.sample.Sample; +import org.junit.Test; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; + +public class SubscriptionProductListSample extends Sample { + + @Test + public void should_retrieve_product_list() { + PagingRequest request = new PagingRequest(); + request.setCount(4); + request.setPage(1); + request.setConversationId("12345"); + request.setLocale(Locale.TR.name()); + + SubscriptionProductList response = SubscriptionProductList.retrieve(request, options); + + assertEquals(response.getStatus(), Status.SUCCESS.getValue()); + assertNotNull(response.getSubscriptionProductListData()); + } +} \ No newline at end of file diff --git a/src/test/java/com/iyzipay/sample/subscription/SubscriptionProductSample.java b/src/test/java/com/iyzipay/sample/subscription/SubscriptionProductSample.java new file mode 100644 index 00000000..c92cb9ab --- /dev/null +++ b/src/test/java/com/iyzipay/sample/subscription/SubscriptionProductSample.java @@ -0,0 +1,66 @@ +package com.iyzipay.sample.subscription; + +import com.iyzipay.IyzipayResource; +import com.iyzipay.model.Locale; +import com.iyzipay.model.Status; +import com.iyzipay.model.subscription.SubscriptionProduct; +import com.iyzipay.request.subscription.CreateSubscriptionProductRequest; +import com.iyzipay.request.subscription.SubscriptionUpdateProductRequest; +import com.iyzipay.sample.Sample; +import org.junit.Test; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; + +public class SubscriptionProductSample extends Sample { + + @Test + public void should_create() { + CreateSubscriptionProductRequest createSubscriptionProductRequest = new CreateSubscriptionProductRequest(); + createSubscriptionProductRequest.setName("customer-Caner-3"); + createSubscriptionProductRequest.setDescription("product"); + createSubscriptionProductRequest.setLocale(Locale.TR.name()); + createSubscriptionProductRequest.setConversationId("12345678"); + + SubscriptionProduct response = SubscriptionProduct.create(createSubscriptionProductRequest, options); + + assertEquals(response.getStatus(), Status.SUCCESS.getValue()); + assertEquals(response.getSubscriptionProductData().getDescription(), "product"); + assertNotNull(response.getSubscriptionProductData().getReferenceCode()); + assertNotNull(response.getSubscriptionProductData().getPricingPlanList()); + assertNotNull(response.getSubscriptionProductData().getCreatedDate()); + assertNotNull(response.getSubscriptionProductData().getName()); + } + + @Test + public void should_update() { + SubscriptionUpdateProductRequest updateProductRequest = new SubscriptionUpdateProductRequest(); + updateProductRequest.setName("Caner-Product"); + updateProductRequest.setDescription("product"); + updateProductRequest.setLocale(Locale.TR.name()); + updateProductRequest.setConversationId("12346543"); + + SubscriptionProduct response = SubscriptionProduct.update("c777b5b0-bc79-4f3f-ac1f-71c064990939", updateProductRequest, options); + + assertEquals(response.getStatus(), Status.SUCCESS.getValue()); + assertNotNull(response.getSubscriptionProductData().getName()); + assertNotNull(response.getSubscriptionProductData().getDescription()); + assertNotNull(response.getSubscriptionProductData().getCreatedDate()); + assertNotNull(response.getSubscriptionProductData().getPricingPlanList()); + assertNotNull(response.getSubscriptionProductData().getReferenceCode()); + } + + @Test + public void should_retrieve() { + SubscriptionProduct response = SubscriptionProduct.retrieve("c777b5b0-bc79-4f3f-ac1f-71c064990939", options); + + assertEquals(response.getStatus(), Status.SUCCESS.getValue()); + } + + @Test + public void should_delete() { + IyzipayResource response = SubscriptionProduct.delete("5389bdf2-9ddd-4555-a199-c93f82efec84", options); + + assertEquals(response.getStatus(), Status.SUCCESS.getValue()); + } +} \ No newline at end of file diff --git a/src/test/java/com/iyzipay/sample/subscription/SubscriptionSample.java b/src/test/java/com/iyzipay/sample/subscription/SubscriptionSample.java new file mode 100644 index 00000000..ff691cd1 --- /dev/null +++ b/src/test/java/com/iyzipay/sample/subscription/SubscriptionSample.java @@ -0,0 +1,18 @@ +package com.iyzipay.sample.subscription; + +import com.iyzipay.model.Status; +import com.iyzipay.model.subscription.Subscription; +import com.iyzipay.sample.Sample; +import org.junit.Test; + +import static org.junit.Assert.assertEquals; + +public class SubscriptionSample extends Sample { + + @Test + public void should_retrieve_subscription() { + Subscription response = Subscription.retrieve("6081cea6-fae5-45f0-9f9e-2c979259f0a7", options); + + assertEquals(response.getStatus(), Status.SUCCESS.getValue()); + } +} \ No newline at end of file diff --git a/src/test/java/com/iyzipay/sample/subscription/SubscriptionSearchSample.java b/src/test/java/com/iyzipay/sample/subscription/SubscriptionSearchSample.java new file mode 100644 index 00000000..3f04ec07 --- /dev/null +++ b/src/test/java/com/iyzipay/sample/subscription/SubscriptionSearchSample.java @@ -0,0 +1,37 @@ +package com.iyzipay.sample.subscription; + +import com.iyzipay.PagingRequest; +import com.iyzipay.model.Locale; +import com.iyzipay.model.Status; +import com.iyzipay.model.subscription.SubscriptionSearch; +import com.iyzipay.model.subscription.enumtype.SubscriptionStatus; +import com.iyzipay.request.subscription.SearchSubscriptionRequest; +import com.iyzipay.sample.Sample; +import org.junit.Test; + +import static org.junit.Assert.assertEquals; + +public class SubscriptionSearchSample extends Sample { + + @Test + public void should_subscription_search() { + SearchSubscriptionRequest searchSubscriptionRequest = new SearchSubscriptionRequest(); + searchSubscriptionRequest.setCustomerReferenceCode("dfc1d5d2-1859-4582-9889-30f9c409d86f"); + searchSubscriptionRequest.setParentReferenceCode("9de61a3a-0bf5-4c7a-a3ae-a016cb899890"); + searchSubscriptionRequest.setSubscriptionReferenceCode("f0e49796-158e-47fb-9c26-f4e6e50721d9"); + searchSubscriptionRequest.setStartDate("2020-01-22 13:37:20"); + searchSubscriptionRequest.setEndDate("2020-04-04 13:37:20"); + searchSubscriptionRequest.setPricingPlanReferenceCode("23893e87-ef29-4b96-936f-e50ffce1f362"); + searchSubscriptionRequest.setSubscriptionStatus(SubscriptionStatus.ACTIVE.name()); + + PagingRequest pagingRequest = new PagingRequest(); + pagingRequest.setCount(1); + pagingRequest.setPage(2); + pagingRequest.setConversationId("12345"); + pagingRequest.setLocale(Locale.TR.name()); + + SubscriptionSearch response = SubscriptionSearch.search(searchSubscriptionRequest, pagingRequest, options); + + assertEquals(response.getStatus(), Status.SUCCESS.getValue()); + } +}