diff --git a/src/main/java/com/razorpay/Constants.java b/src/main/java/com/razorpay/Constants.java index 4aaf3fe7..fd41f0b7 100755 --- a/src/main/java/com/razorpay/Constants.java +++ b/src/main/java/com/razorpay/Constants.java @@ -125,4 +125,17 @@ public class Constants { static final String VIRTUAL_ACCOUNT_RECEIVERS = "virtual_accounts/%s/receivers"; static final String VIRTUAL_ACCOUNT_ALLOWEDPAYERS = "virtual_accounts/%s/allowed_payers"; static final String VIRTUAL_ACCOUNT_DELETE_ALLOWEDPAYERS = "virtual_accounts/%s/allowed_payers/%s"; + + static final String PAYOUT_CREATE = "payouts"; + static final String PAYOUT_FETCH = "payouts/%s"; + static final String PAYOUT_FETCH_ALL = "payouts"; + static final String PAYOUT_CANCEL_QUEUED = "payouts/%s"; + + static final String PAYOUT_LINK_CREATE = "payouts-links"; + static final String PAYOUT_LINK_FETCH = "payouts-links/%s"; + static final String PAYOUT_LINK_FETCH_ALL = "payouts-links"; + static final String PAYOUT_LINK_CANCEL = "payouts-links/%s"; + + static final String TRANSACTIONS_FETCH = "transactions/%s"; + static final String TRANSACTIONS_FETCH_ALL = "transactions"; } diff --git a/src/main/java/com/razorpay/Payout.java b/src/main/java/com/razorpay/Payout.java new file mode 100644 index 00000000..798b84e2 --- /dev/null +++ b/src/main/java/com/razorpay/Payout.java @@ -0,0 +1,10 @@ +package com.razorpay; + +import org.json.JSONObject; + +public class Payout extends Entity { + + public Payout(JSONObject jsonObject) { + super(jsonObject); + } +} diff --git a/src/main/java/com/razorpay/PayoutClient.java b/src/main/java/com/razorpay/PayoutClient.java new file mode 100644 index 00000000..7830f23b --- /dev/null +++ b/src/main/java/com/razorpay/PayoutClient.java @@ -0,0 +1,41 @@ +package com.razorpay; + +import java.util.List; + +import org.json.JSONObject; + +public class PayoutClient extends ApiClient { + + PayoutClient(String auth) { + super(auth); + } + + public Payout create(JSONObject request) throws RazorpayException { + return post(Constants.PAYOUT_CREATE, request); + } + + public Payout fetch(String id) throws RazorpayException { + return get(String.format(Constants.PAYOUT_FETCH, id), null); + } + + public Payout cancel(String id, JSONObject request) throws RazorpayException { + return post(String.format(Constants.PAYOUT_CANCEL_QUEUED, id), request); + } + + /** + * It is wrapper of fetchAll with parameter here sending null defines fetchAll + * with a default values without filteration + * @throws RazorpayException + */ + public List fetchAll() throws RazorpayException { + return fetchAll(null); + } + + /** + * This method get list of payouts filtered by parameters @request + * @throws RazorpayException + */ + public List fetchAll(JSONObject request) throws RazorpayException { + return getCollection(Constants.PAYOUT_FETCH_ALL, request); + } +} diff --git a/src/main/java/com/razorpay/PayoutLink.java b/src/main/java/com/razorpay/PayoutLink.java new file mode 100644 index 00000000..da7ff2de --- /dev/null +++ b/src/main/java/com/razorpay/PayoutLink.java @@ -0,0 +1,10 @@ +package com.razorpay; + +import org.json.JSONObject; + +public class PayoutLink extends Entity{ + + public PayoutLink(JSONObject jsonObject) { + super(jsonObject); + } +} diff --git a/src/main/java/com/razorpay/PayoutLinkClient.java b/src/main/java/com/razorpay/PayoutLinkClient.java new file mode 100644 index 00000000..fcc5d9b7 --- /dev/null +++ b/src/main/java/com/razorpay/PayoutLinkClient.java @@ -0,0 +1,41 @@ +package com.razorpay; + +import org.json.JSONObject; + +import java.util.List; + +public class PayoutLinkClient extends ApiClient { + + PayoutLinkClient(String auth) { + super(auth); + } + + public PayoutLink create(JSONObject request) throws RazorpayException { + return post(Constants.PAYOUT_LINK_CREATE, request); + } + + public PayoutLink fetch(String id) throws RazorpayException { + return get(String.format(Constants.PAYOUT_LINK_FETCH, id), null); + } + + public PayoutLink cancel(String id, JSONObject request) throws RazorpayException { + return post(String.format(Constants.PAYOUT_LINK_CANCEL, id), request); + } + + /** + * It is wrapper of fetchAll with parameter here sending null defines fetchAll + * with a default values without filteration + * @throws RazorpayException + */ + public List fetchAll() throws RazorpayException { + return fetchAll(null); + } + + /** + * This method get list of payout link filtered by parameters @request + * @throws RazorpayException + */ + public List fetchAll(JSONObject request) throws RazorpayException { + return getCollection(Constants.PAYOUT_LINK_FETCH_ALL, request); + } +} diff --git a/src/main/java/com/razorpay/RazorpayClient.java b/src/main/java/com/razorpay/RazorpayClient.java index a42bbcdd..a1971da5 100755 --- a/src/main/java/com/razorpay/RazorpayClient.java +++ b/src/main/java/com/razorpay/RazorpayClient.java @@ -22,6 +22,9 @@ public class RazorpayClient { public ItemClient items; public FundAccountClient fundAccount; public VirtualAccountClient virtualAccounts; + public PayoutClient payouts; + public PayoutLinkClient payoutLinks; + public TransactionsClient transactions; public RazorpayClient(String key, String secret) throws RazorpayException { this(key, secret, false); @@ -46,6 +49,9 @@ public RazorpayClient(String key, String secret, Boolean enableLogging) throws R items = new ItemClient(auth); fundAccount = new FundAccountClient(auth); virtualAccounts = new VirtualAccountClient(auth); + payouts = new PayoutClient(auth); + payoutLinks = new PayoutLinkClient(auth); + transactions = new TransactionsClient(auth); } public RazorpayClient addHeaders(Map headers) { diff --git a/src/main/java/com/razorpay/Transactions.java b/src/main/java/com/razorpay/Transactions.java new file mode 100644 index 00000000..68e19066 --- /dev/null +++ b/src/main/java/com/razorpay/Transactions.java @@ -0,0 +1,10 @@ +package com.razorpay; + +import org.json.JSONObject; + +public class Transactions extends Entity { + + public Transactions(JSONObject jsonObject) { + super(jsonObject); + } +} diff --git a/src/main/java/com/razorpay/TransactionsClient.java b/src/main/java/com/razorpay/TransactionsClient.java new file mode 100644 index 00000000..c663b536 --- /dev/null +++ b/src/main/java/com/razorpay/TransactionsClient.java @@ -0,0 +1,33 @@ +package com.razorpay; + +import org.json.JSONObject; + +import java.util.List; + +public class TransactionsClient extends ApiClient { + + TransactionsClient(String auth) { + super(auth); + } + + public PayoutLink fetch(String id) throws RazorpayException { + return get(String.format(Constants.TRANSACTIONS_FETCH, id), null); + } + + /** + * It is wrapper of fetchAll with parameter here sending null defines fetchAll + * with a default values without filteration + * @throws RazorpayException + */ + public List fetchAll() throws RazorpayException { + return fetchAll(null); + } + + /** + * This method get list of transactions filtered by parameters @request + * @throws RazorpayException + */ + public List fetchAll(JSONObject request) throws RazorpayException { + return getCollection(Constants.TRANSACTIONS_FETCH_ALL, request); + } +}