def instance_url(self): token = util.utf8(self.id) account = util.utf8(self.account) base = Account.class_url() acct_extn = quote_plus(account) extn = quote_plus(token) return "%s/%s/persons/%s" % (base, acct_extn, extn)
def instance_url(self): token = util.utf8(self.id) extn = quote_plus(token) if hasattr(self, "customer"): customer = util.utf8(self.customer) base = Customer.class_url() owner_extn = quote_plus(customer) class_base = "sources" elif hasattr(self, "account"): account = util.utf8(self.account) base = Account.class_url() owner_extn = quote_plus(account) class_base = "external_accounts" else: raise error.InvalidRequestError( "Could not determine whether bank_account_id %s is " "attached to a customer or an account." % token, "id", ) return "%s/%s/%s/%s" % (base, owner_extn, class_base, extn)
def _build_instance_url(cls, fee, sid): fee = util.utf8(fee) sid = util.utf8(sid) base = ApplicationFee.class_url() cust_extn = quote_plus(fee) extn = quote_plus(sid) return "%s/%s/refunds/%s" % (base, cust_extn, extn)
def instance_url(self): token = util.utf8(self.id) extn = quote_plus(token) if hasattr(self, 'customer'): customer = util.utf8(self.customer) base = Customer.class_url() owner_extn = quote_plus(customer) class_base = "sources" elif hasattr(self, 'recipient'): recipient = util.utf8(self.recipient) base = Recipient.class_url() owner_extn = quote_plus(recipient) class_base = "cards" elif hasattr(self, 'account'): account = util.utf8(self.account) base = Account.class_url() owner_extn = quote_plus(account) class_base = "external_accounts" else: raise error.InvalidRequestError( "Could not determine whether card_id %s is " "attached to a customer, recipient, or " "account." % token, 'id') return "%s/%s/%s/%s" % (base, owner_extn, class_base, extn)
def instance_url(self): token = util.utf8(self.id) schedule = util.utf8(self.schedule) base = SubscriptionSchedule.class_url() schedule_extn = quote_plus(schedule) extn = quote_plus(token) return "%s/%s/revisions/%s" % (base, schedule_extn, extn)
def instance_url(self): token = util.utf8(self.id) transfer = util.utf8(self.transfer) base = Transfer.class_url() cust_extn = quote_plus(transfer) extn = quote_plus(token) return "%s/%s/reversals/%s" % (base, cust_extn, extn)
def _build_instance_url(cls, customer, sid): token = util.utf8(sid) extn = quote_plus(token) customer = util.utf8(customer) base = Customer.class_url() owner_extn = quote_plus(customer) return "%s/%s/sources/%s" % (base, owner_extn, extn)
def nested_resource_url(cls, id, nested_id=None): url = "%s/%s/%s" % ( cls.class_url(), quote_plus(id), quote_plus(path), ) if nested_id is not None: url += "/%s" % quote_plus(nested_id) return url
def instance_url(self): token = util.utf8(self.id) extn = quote_plus(token) if hasattr(self, 'customer'): customer = util.utf8(self.customer) base = Customer.class_url() cust_extn = quote_plus(customer) return "%s/%s/sources/%s" % (base, cust_extn, extn) else: base = BitcoinReceiver.class_url() return "%s/%s" % (base, extn)
def detach(self, idempotency_key=None, **params): if hasattr(self, 'customer') and self.customer: extn = quote_plus(util.utf8(self.id)) customer = util.utf8(self.customer) base = Customer.class_url() owner_extn = quote_plus(customer) url = "%s/%s/sources/%s" % (base, owner_extn, extn) headers = util.populate_headers(idempotency_key) self.refresh_from(self.request('delete', url, params, headers)) return self else: raise NotImplementedError( "This source object does not appear to be currently attached " "to a customer object.")
def retrieve(self, id, **params): base = self.get('url') id = util.utf8(id) extn = quote_plus(id) url = "%s/%s" % (base, extn) return self.request('get', url, params)
def _build_instance_url(cls, sid): if not sid: return "/v1/account" sid = util.utf8(sid) base = cls.class_url() extn = quote_plus(sid) return "%s/%s" % (base, extn)
def detach(self, idempotency_key=None, **params): token = util.utf8(self.id) if hasattr(self, "customer") and self.customer: extn = quote_plus(token) customer = util.utf8(self.customer) base = Customer.class_url() owner_extn = quote_plus(customer) url = "%s/%s/sources/%s" % (base, owner_extn, extn) headers = util.populate_headers(idempotency_key) self.refresh_from(self.request("delete", url, params, headers)) return self else: raise error.InvalidRequestError( "Source %s does not appear to be currently attached " "to a customer object." % token, "id", )
def instance_url(self): id = self.get('id') if not isinstance(id, six.string_types): raise error.InvalidRequestError( 'Could not determine which URL to request: %s instance ' 'has invalid ID: %r, %s. ID should be of type `str` (or' ' `unicode`)' % (type(self).__name__, id, type(id)), 'id') id = util.utf8(id) base = self.class_url() extn = quote_plus(id) return "%s/%s" % (base, extn)
def retrieve(self, id, api_key=None, stripe_version=None, stripe_account=None, **params): url = "%s/%s" % (self.get("url"), quote_plus(util.utf8(id))) return self._request("get", url, api_key=api_key, stripe_version=stripe_version, stripe_account=stripe_account, **params)
def custom_method_request(cls, sid, **params): url = "%s/%s/%s" % ( cls.class_url(), quote_plus(util.utf8(sid)), http_path, ) obj = cls._static_request(http_verb, url, params=params) # For list objects, we have to attach the parameters so that they # can be referenced in auto-pagination and ensure consistency. if "object" in obj and obj.object == "list": obj._retrieve_params = params return obj
def instance_url(self): token = util.utf8(self.id) extn = quote_plus(token) if hasattr(self, 'customer'): customer = util.utf8(self.customer) base = Customer.class_url() owner_extn = quote_plus(customer) class_base = "sources" elif hasattr(self, 'account'): account = util.utf8(self.account) base = Account.class_url() owner_extn = quote_plus(account) class_base = "external_accounts" else: raise error.InvalidRequestError( "Could not determine whether bank_account_id %s is " "attached to a customer or an account." % token, 'id') return "%s/%s/%s/%s" % (base, owner_extn, class_base, extn)
def retrieve( self, id, api_key=None, stripe_version=None, stripe_account=None, **params ): requestor = api_requestor.APIRequestor( api_key, api_version=stripe_version, account=stripe_account ) url = "%s/%s" % (self.get("url"), quote_plus(util.utf8(id))) response, api_key = requestor.request("get", url, params) return util.convert_to_stripe_object( response, api_key, stripe_version, stripe_account )
def _cls_pdf(cls, sid, api_key=None, idempotency_key=None, stripe_version=None, stripe_account=None, **params): url = "%s/%s/%s" % ( cls.class_url(), quote_plus(util.utf8(sid)), "pdf", ) requestor = api_requestor.APIRequestor( api_key, api_base=stripe.upload_api_base, api_version=stripe_version, account=stripe_account, ) headers = util.populate_headers(idempotency_key) response, _ = requestor.request_stream("get", url, params, headers) return response
def modify(cls, sid, **params): url = "%s/%s" % (cls.class_url(), quote_plus(util.utf8(sid))) return cls._modify(url, **params)
def _cls_delete(cls, sid, **params): url = "%s/%s" % (cls.class_url(), quote_plus(util.utf8(sid))) return cls._static_request("delete", url, params=params)
def remove(cls, sid, **params): url = "%s/%s" % (cls.class_url(), quote_plus(util.utf8(sid))) return cls._remove(url, **params)
def class_name(cls): if cls == APIResource: raise NotImplementedError( 'APIResource is an abstract class. You should perform ' 'actions on its subclasses (e.g. Charge, Customer)') return str(quote_plus(cls.__name__.lower()))
def nested_resource_url(cls, id, nested_id=None): url = "%s/%s/%s" % (cls.class_url(), quote_plus(id), quote_plus(path)) if nested_id is not None: url += "/%s" % quote_plus(nested_id) return url
def modify(cls, sid, **params): url = "%s/%s" % (cls.class_url(), quote_plus(util.utf8(sid))) return cls._static_request("post", url, **params)
def instance_url(self): customer = util.utf8(self.customer) base = Customer.class_url() cust_extn = quote_plus(customer) return "%s/%s/cash_balance" % (base, cust_extn)
def _cls_delete(cls, sid, **params): url = "%s/%s" % (cls.class_url(), quote_plus(util.utf8(sid))) return cls._static_request("delete", url, **params)
def sanitize_id(id): utf8id = utf8(id) quotedId = quote_plus(utf8id) return quotedId