All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.braintreegateway.SubscriptionGateway Maven / Gradle / Ivy

package com.braintreegateway;

import com.braintreegateway.exceptions.NotFoundException;
import com.braintreegateway.util.Http;
import com.braintreegateway.util.NodeWrapper;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;

/**
 * Provides methods to interact with {@link Subscription Subscriptions}.
 * Including create, find, update, cancel, etc.
 * This class does not need to be instantiated directly.
 * Instead, use {@link BraintreeGateway#subscription()} to get an instance of this class:
 *
 * 
 * BraintreeGateway gateway = new BraintreeGateway(...);
 * gateway.subscription().create(...)
 * 
* * For more detailed information on {@link Subscription Subscriptions}, see https://developers.braintreepayments.com/reference/response/subscription/java */ public class SubscriptionGateway { private Http http; private Configuration configuration; public SubscriptionGateway(Http http, Configuration configuration) { this.http = http; this.configuration = configuration; } /** * Cancels the {@link Subscription} with the given id. * @param id of the {@link Subscription} to cancel. * @return a {@link Result}. */ public Result cancel(String id) { NodeWrapper node = http.put(configuration.getMerchantPath() + "/subscriptions/" + id + "/cancel"); return new Result(node, Subscription.class); } /** * Creates a {@link Subscription}. * @param request the request. * @return a {@link Result}. */ public Result create(SubscriptionRequest request) { NodeWrapper node = http.post(configuration.getMerchantPath() + "/subscriptions", request); return new Result(node, Subscription.class); } public Result delete(String customerId, String id) { http.delete(configuration.getMerchantPath() + "/subscriptions/" + id); return new Result(); } /** * Finds a {@link Subscription} by id. * @param id the id of the {@link Subscription}. * @return the {@link Subscription} or raises a {@link com.braintreegateway.exceptions.NotFoundException}. */ public Subscription find(String id) { if (id == null || id.trim().equals("")) { throw new NotFoundException(); } return new Subscription(http.get(configuration.getMerchantPath() + "/subscriptions/" + id)); } /** * Updates a {@link Subscription}. * @param id the id of the {@link Subscription}. * @param request the request. * @return a {@link Result}. */ public Result update(String id, SubscriptionRequest request) { NodeWrapper node = http.put(configuration.getMerchantPath() + "/subscriptions/" + id, request); return new Result(node, Subscription.class); } /** * Search for a {@link Subscription}. * @param searchRequest the {@link SubscriptionSearchRequest}. * @return a {@link Result}. */ public ResourceCollection search(SubscriptionSearchRequest searchRequest) { NodeWrapper node = http.post(configuration.getMerchantPath() + "/subscriptions/advanced_search_ids", searchRequest); return new ResourceCollection(new SubscriptionPager(this, searchRequest), node); } List fetchSubscriptions(SubscriptionSearchRequest search, List ids) { search.ids().in(ids); NodeWrapper response = http.post(configuration.getMerchantPath() + "/subscriptions/advanced_search", search); List items = new ArrayList(); for (NodeWrapper node : response.findAll("subscription")) { items.add(new Subscription(node)); } return items; } private Result retryCharge(SubscriptionTransactionRequest txnRequest) { NodeWrapper response = http.post(configuration.getMerchantPath() + "/transactions", txnRequest); return new Result(response, Transaction.class); } public Result retryCharge(String subscriptionId) { return retryCharge(new SubscriptionTransactionRequest() .subscriptionId(subscriptionId)); } public Result retryCharge(String subscriptionId, BigDecimal amount) { return retryCharge(new SubscriptionTransactionRequest() .subscriptionId(subscriptionId) .amount(amount)); } public Result retryCharge(String subscriptionId, Boolean submitForSettlement) { return retryCharge(new SubscriptionTransactionRequest() .subscriptionId(subscriptionId) .options() .submitForSettlement(submitForSettlement).done()); } public Result retryCharge(String subscriptionId, BigDecimal amount, Boolean submitForSettlement) { return retryCharge(new SubscriptionTransactionRequest() .subscriptionId(subscriptionId) .amount(amount) .options() .submitForSettlement(submitForSettlement).done()); } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy