Skip to content

Commit

Permalink
Subscription (#93)
Browse files Browse the repository at this point in the history
* Add subscription endpoints

* Code-review fixes
  • Loading branch information
CanerYesildag authored Jan 24, 2020
1 parent 9b33e56 commit 5047aee
Show file tree
Hide file tree
Showing 61 changed files with 3,051 additions and 1 deletion.
71 changes: 71 additions & 0 deletions src/main/java/com/iyzipay/model/SubscriptionAddress.java
Original file line number Diff line number Diff line change
@@ -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 + '\'' +
'}';
}
}
29 changes: 29 additions & 0 deletions src/main/java/com/iyzipay/model/subscription/Subscription.java
Original file line number Diff line number Diff line change
@@ -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;
}
}
Original file line number Diff line number Diff line change
@@ -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;
}
}
Original file line number Diff line number Diff line change
@@ -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;
}
}
Original file line number Diff line number Diff line change
@@ -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;
}
}
Original file line number Diff line number Diff line change
@@ -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;
}
}
Original file line number Diff line number Diff line change
@@ -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;
}
}
Original file line number Diff line number Diff line change
@@ -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;
}
}
Original file line number Diff line number Diff line change
@@ -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);
}
}
Loading

0 comments on commit 5047aee

Please sign in to comment.