def expiring_between(start_date, end_date): """ Return a collection of credit cards expiring between the given dates. """ formatted_start_date = start_date.strftime("%m%Y") formatted_end_date = end_date.strftime("%m%Y") query = "start=%s&end=%s" % (formatted_start_date, formatted_end_date) response = Http().post("/payment_methods/all/expiring_ids?" + query) return ResourceCollection(query, response, CreditCard.__fetch_existing_between)
def search(self, *query): if isinstance(query[0], list): query = query[0] response = self.config.http().post("/customers/advanced_search_ids", {"search": self.__criteria(query)}) return ResourceCollection(query, response, self.__fetch)
def all(self): response = self.config.http().get("/plans/") return [ Plan(self.gateway, item) for item in ResourceCollection._extract_as_array( response, "plans") ]
def __fetch(self, query, ids): criteria = self.__criteria(query) criteria["ids"] = braintree.customer_search.CustomerSearch.ids.in_list(ids).to_param() response = self.config.http().post("/customers/advanced_search", {"search": criteria}) return [ Customer(self.gateway, item) for item in ResourceCollection._extract_as_array(response["customers"], "customer") ]
def __fetch(self, query, ids): criteria = self.__criteria(query) criteria["ids"] = braintree.transaction_search.TransactionSearch.ids.in_list(ids).to_param() response = self.config.http().post(self.config.base_merchant_path() + "/transactions/advanced_search", {"search": criteria}) if "credit_card_transactions" in response: return [Transaction(self.gateway, item) for item in ResourceCollection._extract_as_array(response["credit_card_transactions"], "transaction")] else: raise RequestTimeoutError("search timeout")
def __fetch(self, query, ids): criteria = self.__criteria(query) criteria["ids"] = braintree.transaction_search.TransactionSearch.ids.in_list(ids).to_param() response = self.config.http().post(self.config.base_merchant_path() + "/transactions/advanced_search", {"search": criteria}) if "credit_card_transactions" in response: return [Transaction(self.gateway, item) for item in ResourceCollection._extract_as_array(response["credit_card_transactions"], "transaction")] else: raise DownForMaintenanceError("search timeout")
def all(self): response = self.config.http().get("/discounts/") discounts = {"discount": response["discounts"]} return [ Discount(self.gateway, item) for item in ResourceCollection._extract_as_array( discounts, "discount") ]
def expiring_between(self, start_date, end_date): formatted_start_date = start_date.strftime("%m%Y") formatted_end_date = end_date.strftime("%m%Y") query = "start=%s&end=%s" % (formatted_start_date, formatted_end_date) response = self.config.http().post( "/payment_methods/all/expiring_ids?" + query) return ResourceCollection(query, response, self.__fetch_existing_between)
def __fetch(self, query, ids): criteria = self.__criteria(query) criteria["ids"] = braintree.subscription_search.SubscriptionSearch.ids.in_list(ids).to_param() response = self.config.http().post("/subscriptions/advanced_search", {"search": criteria}) return [ Subscription(self.gateway, item) for item in ResourceCollection._extract_as_array(response["subscriptions"], "subscription") ]
def __fetch_existing_between(self, query, ids): criteria = {} criteria["ids"] = IdsSearch.ids.in_list(ids).to_param() response = self.config.http().post("/payment_methods/all/expiring?" + query, {"search": criteria}) return [ CreditCard(self.gateway, item) for item in ResourceCollection._extract_as_array(response["payment_methods"], "credit_card") ]
def all(self): response = self.config.http().get("/add_ons/") add_ons = {"add_on": response["add_ons"]} return [ AddOn(self.gateway, item) for item in ResourceCollection._extract_as_array( add_ons, "add_on") ]
def __fetch(query, ids): criteria = Transaction.__criteria(query) criteria["ids"] = braintree.transaction_search.TransactionSearch.ids.in_list(ids).to_param() response = Http().post("/transactions/advanced_search", {"search": criteria}) return [ Transaction(item) for item in ResourceCollection._extract_as_array(response["credit_card_transactions"], "transaction") ]
def search(self, *query): if isinstance(query[0], list): query = query[0] response = self.config.http().post( self.config.base_merchant_path() + "/verifications/advanced_search_ids", {"search": self.__criteria(query)}) return ResourceCollection(query, response, self.__fetch)
def search(self, *query): if isinstance(query[0], list): query = query[0] response = self.config.http().post(self.config.base_merchant_path() + "/transactions/advanced_search_ids", {"search": self.__criteria(query)}) if "search_results" in response: return ResourceCollection(query, response, self.__fetch) else: raise RequestTimeoutError("search timeout")
def search(self, *query): if isinstance(query[0], list): query = query[0] response = self.config.http().post("/transactions/advanced_search_ids", {"search": self.__criteria(query)}) if "search_results" in response: return ResourceCollection(query, response, self.__fetch) else: raise DownForMaintenanceError("search timeout")
def __fetch_verifications(self, query, verification_ids): criteria = {} criteria["ids"] = IdsSearch.ids.in_list(verification_ids).to_param() response = self.config.http().post("/verifications/advanced_search", {"search": criteria}) return [ CreditCardVerification(self.gateway, item) for item in ResourceCollection._extract_as_array( response["credit_card_verifications"], "verification") ]
def __fetch_existing_between(self, query, ids): criteria = {} criteria["ids"] = IdsSearch.ids.in_list(ids).to_param() response = self.config.http().post( "/payment_methods/all/expiring?" + query, {"search": criteria}) return [ CreditCard(self.gateway, item) for item in ResourceCollection._extract_as_array( response["payment_methods"], "credit_card") ]
def find_all(self, transaction_id): try: if transaction_id is None or transaction_id.strip() == "": raise NotFoundError() response = self.config.http().get(self.config.base_merchant_path() + "/transactions/" + transaction_id + "/line_items") if "line_items" in response: return [TransactionLineItem(item) for item in ResourceCollection._extract_as_array(response, "line_items")] else: raise RequestTimeoutError() except NotFoundError: raise NotFoundError("transaction line items with id " + repr(transaction_id) + " not found")
def __fetch(query, ids): criteria = Transaction.__criteria(query) criteria[ "ids"] = braintree.transaction_search.TransactionSearch.ids.in_list( ids).to_param() response = Http().post("/transactions/advanced_search", {"search": criteria}) return [ Transaction(item) for item in ResourceCollection._extract_as_array( response["credit_card_transactions"], "transaction") ]
def __fetch(self, query, ids): criteria = self.__criteria(query) criteria["ids"] = braintree.customer_search.CustomerSearch.ids.in_list( ids).to_param() response = self.config.http().post("/customers/advanced_search", {"search": criteria}) return [ Customer(self.gateway, item) for item in ResourceCollection._extract_as_array( response["customers"], "customer") ]
def _fetch_merchant_accounts(self, current_page): response = self.config.http().get(self.config.base_merchant_path() + "/merchant_accounts/?page=" + str(current_page)) body = response["merchant_accounts"] merchant_accounts = [ MerchantAccount(self.gateway, merchant_account) for merchant_account in ResourceCollection._extract_as_array( body, "merchant_account") ] return PaginatedResult(body["total_items"], body["page_size"], merchant_accounts)
def __fetch(self, query, ids): criteria = self.__criteria(query) criteria[ "ids"] = braintree.subscription_search.SubscriptionSearch.ids.in_list( ids).to_param() response = self.config.http().post("/subscriptions/advanced_search", {"search": criteria}) return [ Subscription(self.gateway, item) for item in ResourceCollection._extract_as_array( response["subscriptions"], "subscription") ]
def __fetch(self, query, ids): criteria = self.__criteria(query) criteria["ids"] = CreditCardVerificationSearch.ids.in_list( ids).to_param() response = self.config.http().post( self.config.base_merchant_path() + "/verifications/advanced_search", {"search": criteria}) return [ CreditCardVerification(self.gateway, item) for item in ResourceCollection._extract_as_array( response["credit_card_verifications"], "verification") ]
def __fetch_disputes(self, page): response = self.config.http().post( self.config.base_merchant_path() + "/disputes/advanced_search?page=" + str(page), {"search": self.search_criteria}) body = response["disputes"] disputes = [ Dispute(item) for item in ResourceCollection._extract_as_array( response["disputes"], "dispute") ] return PaginatedResult(body["total_items"], body["page_size"], disputes)
def __fetch(self, query, ids): criteria = self.__criteria(query) criteria["ids"] = UsBankAccountVerificationSearch.ids.in_list(ids).to_param() response = self.config.http().post( self.config.base_merchant_path() + "/us_bank_account_verifications/advanced_search", {"search": criteria} ) collection_array = ResourceCollection._extract_as_array( response["us_bank_account_verifications"], "us_bank_account_verification" ) return [UsBankAccountVerification(self.gateway, item) for item in collection_array]
def search(query): """ Allows searching on subscriptions. There are two types of fields that are searchable: text and multiple value fields. Searchable text fields are: - plan_id - days_past_due Searchable multiple value fields are: - status For text fields, you can search using the following operators: ==, !=, starts_with, ends_with and contains. For mutiple value fields, you can search using the in_list operator. An example:: braintree.Subscription.search([ braintree.SubscriptionSearch.plan_id.starts_with("abc"), braintree.SubscriptionSearch.days_past_due == "30", braintree.SubscriptionSearch.status.in_list([braintree.Subscription.Status.PastDue]) ]) """ response = Http().post("/subscriptions/advanced_search_ids", {"search": Subscription.__criteria(query)}) return ResourceCollection(query, response, Subscription.__fetch)
def expired(self): response = self.config.http().post(self.config.base_merchant_path() + "/payment_methods/all/expired_ids") return ResourceCollection(None, response, self.__fetch_expired)
def __fetch(query, ids): criteria = {} criteria["ids"] = IdsSearch.ids.in_list(ids).to_param() response = Http().post("/customers/advanced_search", {"search": criteria}) return [CreditCard(item) for item in ResourceCollection._extract_as_array(response["customers"], "customer")]
def all(self): response = self.config.http().get("/add_ons/") add_ons = {"add_on": response["add_ons"]} return [AddOn(self.gateway, item) for item in ResourceCollection._extract_as_array(add_ons, "add_on")]
def all(self): response = self.config.http().post(self.config.base_merchant_path() + "/customers/advanced_search_ids") return ResourceCollection({}, response, self.__fetch)
def all(self): response = self.config.http().get(self.config.base_merchant_path() + "/plans/") return [Plan(self.gateway, item) for item in ResourceCollection._extract_as_array(response, "plans")]
def __fetch_disputes(self, page): response = self.config.http().post(self.config.base_merchant_path() + "/disputes/advanced_search?page=" + str(page), {"search": self.search_criteria}) body = response["disputes"] disputes = [Dispute(item) for item in ResourceCollection._extract_as_array(response["disputes"], "dispute")] return PaginatedResult(body["total_items"], body["page_size"], disputes)
def __fetch_verifications(self, query, verification_ids): criteria = {} criteria["ids"] = IdsSearch.ids.in_list(verification_ids).to_param() response = self.config.http().post(self.config.base_merchant_path() + "/verifications/advanced_search", {"search": criteria}) return [CreditCardVerification(self.gateway, item) for item in ResourceCollection._extract_as_array(response["credit_card_verifications"], "verification")]
def expired(): """ Return a collection of expired credit cards. """ response = Http().post("/payment_methods/all/expired_ids") return ResourceCollection(None, response, CreditCard.__fetch_expired)
def search(query): response = Http().post("/transactions/advanced_search_ids", {"search": Transaction.__criteria(query)}) return ResourceCollection(query, response, Transaction.__fetch)
def __fetch(self, query, ids): criteria = self.__criteria(query) criteria["ids"] = CreditCardVerificationSearch.ids.in_list(ids).to_param() response = self.config.http().post("/verifications/advanced_search", {"search": criteria}) return [CreditCardVerification(self.gateway, item) for item in ResourceCollection._extract_as_array(response["credit_card_verifications"], "verification")]
def __fetch_expired(query, ids): criteria = {} criteria["ids"] = IdsSearch.ids.in_list(ids).to_param() response = Http().post("/payment_methods/all/expired", {"search": criteria}) return [CreditCard(item) for item in ResourceCollection._extract_as_array(response["payment_methods"], "credit_card")]
def all(self): response = self.config.http().get("/discounts/") discounts = {"discount": response["discounts"]} return [Discount(self.gateway, item) for item in ResourceCollection._extract_as_array(discounts, "discount")]
def all(self): response = self.config.http().get("/plans/") plans = {"plan": response["plans"]} return [Plan(self.gateway, item) for item in ResourceCollection._extract_as_array(plans, "plan")]
def _fetch_merchant_accounts(self, current_page): response = self.config.http().get(self.config.base_merchant_path() + "/merchant_accounts/?page=" + str(current_page)) body = response["merchant_accounts"] merchant_accounts = [MerchantAccount(self.gateway, merchant_account) for merchant_account in ResourceCollection._extract_as_array(body, "merchant_account")] return PaginatedResult(body["total_items"], body["page_size"], merchant_accounts)