-
Notifications
You must be signed in to change notification settings - Fork 426
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
52 changed files
with
1,512 additions
and
1,195 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,42 @@ | ||
# flake8: noqa | ||
|
||
from stripe.api_resources.list_object import ListObject | ||
|
||
from stripe.api_resources.account import Account | ||
from stripe.api_resources.alipay_account import AlipayAccount | ||
from stripe.api_resources.apple_pay_domain import ApplePayDomain | ||
from stripe.api_resources.application_fee import ApplicationFee | ||
from stripe.api_resources.application_fee_refund import ApplicationFeeRefund | ||
from stripe.api_resources.balance import Balance | ||
from stripe.api_resources.balance_transaction import BalanceTransaction | ||
from stripe.api_resources.bank_account import BankAccount | ||
from stripe.api_resources.bitcoin_receiver import BitcoinReceiver | ||
from stripe.api_resources.bitcoin_transaction import BitcoinTransaction | ||
from stripe.api_resources.card import Card | ||
from stripe.api_resources.charge import Charge | ||
from stripe.api_resources.country_spec import CountrySpec | ||
from stripe.api_resources.coupon import Coupon | ||
from stripe.api_resources.customer import Customer | ||
from stripe.api_resources.dispute import Dispute | ||
from stripe.api_resources.ephemeral_key import EphemeralKey | ||
from stripe.api_resources.event import Event | ||
from stripe.api_resources.file_upload import FileUpload | ||
from stripe.api_resources.invoice import Invoice | ||
from stripe.api_resources.invoice_item import InvoiceItem | ||
from stripe.api_resources.login_link import LoginLink | ||
from stripe.api_resources.order import Order | ||
from stripe.api_resources.order_return import OrderReturn | ||
from stripe.api_resources.payout import Payout | ||
from stripe.api_resources.plan import Plan | ||
from stripe.api_resources.product import Product | ||
from stripe.api_resources.recipient import Recipient | ||
from stripe.api_resources.recipient_transfer import RecipientTransfer | ||
from stripe.api_resources.refund import Refund | ||
from stripe.api_resources.reversal import Reversal | ||
from stripe.api_resources.sku import SKU | ||
from stripe.api_resources.source import Source | ||
from stripe.api_resources.subscription import Subscription | ||
from stripe.api_resources.subscription_item import SubscriptionItem | ||
from stripe.api_resources.three_d_secure import ThreeDSecure | ||
from stripe.api_resources.token import Token | ||
from stripe.api_resources.transfer import Transfer |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
# flake8: noqa | ||
|
||
from stripe.api_resources.abstract.api_resource import APIResource | ||
from stripe.api_resources.abstract.singleton_api_resource import ( | ||
SingletonAPIResource | ||
) | ||
|
||
from stripe.api_resources.abstract.createable_api_resource import ( | ||
CreateableAPIResource | ||
) | ||
from stripe.api_resources.abstract.updateable_api_resource import ( | ||
UpdateableAPIResource | ||
) | ||
from stripe.api_resources.abstract.deletable_api_resource import ( | ||
DeletableAPIResource | ||
) | ||
from stripe.api_resources.abstract.listable_api_resource import ( | ||
ListableAPIResource | ||
) | ||
from stripe.api_resources.abstract.verify_mixin import VerifyMixin |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,44 @@ | ||
import urllib | ||
|
||
from stripe import error, util | ||
from stripe.stripe_object import StripeObject | ||
|
||
|
||
class APIResource(StripeObject): | ||
|
||
@classmethod | ||
def retrieve(cls, id, api_key=None, **params): | ||
instance = cls(id, api_key, **params) | ||
instance.refresh() | ||
return instance | ||
|
||
def refresh(self): | ||
self.refresh_from(self.request('get', self.instance_url())) | ||
return self | ||
|
||
@classmethod | ||
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(urllib.quote_plus(cls.__name__.lower())) | ||
|
||
@classmethod | ||
def class_url(cls): | ||
cls_name = cls.class_name() | ||
return "/v1/%ss" % (cls_name,) | ||
|
||
def instance_url(self): | ||
id = self.get('id') | ||
|
||
if not isinstance(id, basestring): | ||
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 = urllib.quote_plus(id) | ||
return "%s/%s" % (base, extn) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
from stripe.api_resources.abstract.api_resource import APIResource | ||
from stripe import api_requestor, util | ||
|
||
|
||
class CreateableAPIResource(APIResource): | ||
|
||
@classmethod | ||
def create(cls, api_key=None, idempotency_key=None, | ||
stripe_version=None, stripe_account=None, **params): | ||
requestor = api_requestor.APIRequestor(api_key, | ||
api_version=stripe_version, | ||
account=stripe_account) | ||
url = cls.class_url() | ||
headers = util.populate_headers(idempotency_key) | ||
response, api_key = requestor.request('post', url, params, headers) | ||
return util.convert_to_stripe_object(response, api_key, stripe_version, | ||
stripe_account) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
from stripe.api_resources.abstract.api_resource import APIResource | ||
|
||
|
||
class DeletableAPIResource(APIResource): | ||
|
||
def delete(self, **params): | ||
self.refresh_from(self.request('delete', self.instance_url(), params)) | ||
return self |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,34 @@ | ||
import warnings | ||
|
||
from stripe import api_requestor, util | ||
from stripe.api_resources.abstract.api_resource import APIResource | ||
|
||
|
||
class ListableAPIResource(APIResource): | ||
|
||
@classmethod | ||
def all(cls, *args, **params): | ||
warnings.warn("The `all` class method is deprecated and will" | ||
"be removed in future versions. Please use the " | ||
"`list` class method instead", | ||
DeprecationWarning) | ||
return cls.list(*args, **params) | ||
|
||
@classmethod | ||
def auto_paging_iter(cls, *args, **params): | ||
return cls.list(*args, **params).auto_paging_iter() | ||
|
||
@classmethod | ||
def list(cls, api_key=None, stripe_version=None, stripe_account=None, | ||
**params): | ||
requestor = api_requestor.APIRequestor(api_key, | ||
api_base=cls.api_base(), | ||
api_version=stripe_version, | ||
account=stripe_account) | ||
url = cls.class_url() | ||
response, api_key = requestor.request('get', url, params) | ||
stripe_object = util.convert_to_stripe_object(response, api_key, | ||
stripe_version, | ||
stripe_account) | ||
stripe_object._retrieve_params = params | ||
return stripe_object |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,16 @@ | ||
from stripe.api_resources.abstract.api_resource import APIResource | ||
|
||
|
||
class SingletonAPIResource(APIResource): | ||
|
||
@classmethod | ||
def retrieve(cls, **params): | ||
return super(SingletonAPIResource, cls).retrieve(None, **params) | ||
|
||
@classmethod | ||
def class_url(cls): | ||
cls_name = cls.class_name() | ||
return "/v1/%s" % (cls_name,) | ||
|
||
def instance_url(self): | ||
return self.class_url() |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,34 @@ | ||
import urllib | ||
|
||
from stripe import api_requestor, util | ||
from stripe.api_resources.abstract.api_resource import APIResource | ||
|
||
|
||
class UpdateableAPIResource(APIResource): | ||
|
||
@classmethod | ||
def _modify(cls, url, api_key=None, idempotency_key=None, | ||
stripe_version=None, stripe_account=None, **params): | ||
requestor = api_requestor.APIRequestor(api_key, | ||
api_version=stripe_version, | ||
account=stripe_account) | ||
headers = util.populate_headers(idempotency_key) | ||
response, api_key = requestor.request('post', url, params, headers) | ||
return util.convert_to_stripe_object(response, api_key, stripe_version, | ||
stripe_account) | ||
|
||
@classmethod | ||
def modify(cls, sid, **params): | ||
url = "%s/%s" % (cls.class_url(), urllib.quote_plus(util.utf8(sid))) | ||
return cls._modify(url, **params) | ||
|
||
def save(self, idempotency_key=None): | ||
updated_params = self.serialize(None) | ||
headers = util.populate_headers(idempotency_key) | ||
|
||
if updated_params: | ||
self.refresh_from(self.request('post', self.instance_url(), | ||
updated_params, headers)) | ||
else: | ||
util.logger.debug("Trying to save already saved object %r", self) | ||
return self |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
from stripe import util | ||
|
||
|
||
class VerifyMixin(object): | ||
|
||
def verify(self, idempotency_key=None, **params): | ||
url = self.instance_url() + '/verify' | ||
headers = util.populate_headers(idempotency_key) | ||
self.refresh_from(self.request('post', url, params, headers)) | ||
return self |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,57 @@ | ||
import urllib | ||
|
||
from stripe import oauth, util | ||
from stripe.api_resources.abstract import CreateableAPIResource | ||
from stripe.api_resources.abstract import DeletableAPIResource | ||
from stripe.api_resources.abstract import UpdateableAPIResource | ||
from stripe.api_resources.abstract import ListableAPIResource | ||
|
||
|
||
class Account(CreateableAPIResource, ListableAPIResource, | ||
UpdateableAPIResource, DeletableAPIResource): | ||
OBJECT_NAME = 'account' | ||
|
||
@classmethod | ||
def retrieve(cls, id=None, api_key=None, **params): | ||
instance = cls(id, api_key, **params) | ||
instance.refresh() | ||
return instance | ||
|
||
@classmethod | ||
def modify(cls, id=None, **params): | ||
return cls._modify(cls._build_instance_url(id), **params) | ||
|
||
@classmethod | ||
def _build_instance_url(cls, sid): | ||
if not sid: | ||
return "/v1/account" | ||
sid = util.utf8(sid) | ||
base = cls.class_url() | ||
extn = urllib.quote_plus(sid) | ||
return "%s/%s" % (base, extn) | ||
|
||
def instance_url(self): | ||
return self._build_instance_url(self.get('id')) | ||
|
||
def reject(self, reason=None, idempotency_key=None): | ||
url = self.instance_url() + '/reject' | ||
headers = util.populate_headers(idempotency_key) | ||
if reason: | ||
params = {"reason": reason} | ||
else: | ||
params = {} | ||
self.refresh_from( | ||
self.request('post', url, params, headers) | ||
) | ||
return self | ||
|
||
def deauthorize(self, **params): | ||
params['stripe_user_id'] = self.id | ||
return oauth.OAuth.deauthorize(**params) | ||
|
||
@classmethod | ||
def modify_external_account(cls, sid, external_account_id, **params): | ||
url = "%s/%s/external_accounts/%s" % ( | ||
cls.class_url(), urllib.quote_plus(util.utf8(sid)), | ||
urllib.quote_plus(util.utf8(external_account_id))) | ||
return cls._modify(url, **params) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,36 @@ | ||
import urllib | ||
|
||
from stripe import util | ||
from stripe.api_resources.customer import Customer | ||
from stripe.api_resources.abstract import DeletableAPIResource | ||
from stripe.api_resources.abstract import UpdateableAPIResource | ||
|
||
|
||
class AlipayAccount(UpdateableAPIResource, DeletableAPIResource): | ||
OBJECT_NAME = 'alipay_account' | ||
|
||
@classmethod | ||
def _build_instance_url(cls, customer, sid): | ||
token = util.utf8(sid) | ||
extn = urllib.quote_plus(token) | ||
customer = util.utf8(customer) | ||
|
||
base = Customer.class_url() | ||
owner_extn = urllib.quote_plus(customer) | ||
|
||
return "%s/%s/sources/%s" % (base, owner_extn, extn) | ||
|
||
def instance_url(self): | ||
return self._build_instance_url(self.customer, self.id) | ||
|
||
@classmethod | ||
def modify(cls, customer, id, **params): | ||
url = cls._build_instance_url(customer, id) | ||
return cls._modify(url, **params) | ||
|
||
@classmethod | ||
def retrieve(cls, id, api_key=None, stripe_version=None, | ||
stripe_account=None, **params): | ||
raise NotImplementedError( | ||
"Can't retrieve an Alipay account without a customer ID. " | ||
"Use customer.sources.retrieve('alipay_account_id') instead.") |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,12 @@ | ||
from stripe.api_resources.abstract import CreateableAPIResource | ||
from stripe.api_resources.abstract import DeletableAPIResource | ||
from stripe.api_resources.abstract import ListableAPIResource | ||
|
||
|
||
class ApplePayDomain(CreateableAPIResource, ListableAPIResource, | ||
DeletableAPIResource): | ||
OBJECT_NAME = 'apple_pay_domain' | ||
|
||
@classmethod | ||
def class_url(cls): | ||
return '/v1/apple_pay/domains' |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,16 @@ | ||
from stripe import util | ||
from stripe.api_resources.abstract import ListableAPIResource | ||
|
||
|
||
class ApplicationFee(ListableAPIResource): | ||
OBJECT_NAME = 'application_fee' | ||
|
||
@classmethod | ||
def class_name(cls): | ||
return 'application_fee' | ||
|
||
def refund(self, idempotency_key=None, **params): | ||
headers = util.populate_headers(idempotency_key) | ||
url = self.instance_url() + '/refund' | ||
self.refresh_from(self.request('post', url, params, headers)) | ||
return self |
Oops, something went wrong.