/
subscription.py
133 lines (120 loc) · 3.97 KB
/
subscription.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
# -*- coding: utf-8 -*-
# File generated from our OpenAPI spec
from __future__ import absolute_import, division, print_function
from stripe import util
from stripe.api_resources.abstract import CreateableAPIResource
from stripe.api_resources.abstract import DeletableAPIResource
from stripe.api_resources.abstract import ListableAPIResource
from stripe.api_resources.abstract import SearchableAPIResource
from stripe.api_resources.abstract import UpdateableAPIResource
class Subscription(
CreateableAPIResource,
DeletableAPIResource,
ListableAPIResource,
SearchableAPIResource,
UpdateableAPIResource,
):
"""
Subscriptions allow you to charge a customer on a recurring basis.
Related guide: [Creating Subscriptions](https://stripe.com/docs/billing/subscriptions/creating).
"""
OBJECT_NAME = "subscription"
@classmethod
def _cls_cancel(
cls,
subscription_exposed_id,
api_key=None,
stripe_version=None,
stripe_account=None,
**params
):
return cls._static_request(
"delete",
"/v1/subscriptions/{subscription_exposed_id}".format(
subscription_exposed_id=util.sanitize_id(
subscription_exposed_id
)
),
api_key=api_key,
stripe_version=stripe_version,
stripe_account=stripe_account,
params=params,
)
@util.class_method_variant("_cls_cancel")
def cancel(self, idempotency_key=None, **params):
return self._request(
"delete",
"/v1/subscriptions/{subscription_exposed_id}".format(
subscription_exposed_id=util.sanitize_id(self.get("id"))
),
idempotency_key=idempotency_key,
params=params,
)
@classmethod
def _cls_delete_discount(
cls,
subscription_exposed_id,
api_key=None,
stripe_version=None,
stripe_account=None,
**params
):
return cls._static_request(
"delete",
"/v1/subscriptions/{subscription_exposed_id}/discount".format(
subscription_exposed_id=util.sanitize_id(
subscription_exposed_id
)
),
api_key=api_key,
stripe_version=stripe_version,
stripe_account=stripe_account,
params=params,
)
@util.class_method_variant("_cls_delete_discount")
def delete_discount(self, idempotency_key=None, **params):
return self._request(
"delete",
"/v1/subscriptions/{subscription_exposed_id}/discount".format(
subscription_exposed_id=util.sanitize_id(self.get("id"))
),
idempotency_key=idempotency_key,
params=params,
)
@classmethod
def _cls_resume(
cls,
subscription,
api_key=None,
stripe_version=None,
stripe_account=None,
**params
):
return cls._static_request(
"post",
"/v1/subscriptions/{subscription}/resume".format(
subscription=util.sanitize_id(subscription)
),
api_key=api_key,
stripe_version=stripe_version,
stripe_account=stripe_account,
params=params,
)
@util.class_method_variant("_cls_resume")
def resume(self, idempotency_key=None, **params):
return self._request(
"post",
"/v1/subscriptions/{subscription}/resume".format(
subscription=util.sanitize_id(self.get("id"))
),
idempotency_key=idempotency_key,
params=params,
)
@classmethod
def search(cls, *args, **kwargs):
return cls._search(
search_url="/v1/subscriptions/search", *args, **kwargs
)
@classmethod
def search_auto_paging_iter(cls, *args, **kwargs):
return cls.search(*args, **kwargs).auto_paging_iter()