Skip to content

Commit 5d5baee

Browse files
committed
Split mixin methods from table definitions.
1 parent ae1b63b commit 5d5baee

File tree

1 file changed

+25
-19
lines changed

1 file changed

+25
-19
lines changed

flask_fastspring.py

+25-19
Original file line numberDiff line numberDiff line change
@@ -154,17 +154,7 @@ def request(self, method, uri, params=None):
154154
return data
155155

156156

157-
class OrderMixin:
158-
159-
order_id = Column(Text, primary_key=True)
160-
reference = Column(Text, nullable=False, unique=True)
161-
invoice = Column(Text, nullable=False)
162-
changed = Column(DateTime(timezone=True), nullable=False)
163-
is_complete = Column(Boolean, default=False, nullable=False)
164-
165-
@declared_attr
166-
def data(cls):
167-
return deferred(Column(JSON, nullable=False))
157+
class OrderMethodsMixin:
168158

169159
def synchronize(self):
170160
data = current_app.extensions['fastspring'].fetch_order(self.order_id)
@@ -188,21 +178,21 @@ def subscription_item(self):
188178
return candidates[0]
189179

190180

191-
class SubscriptionMixin:
181+
class OrderMixin(OrderMethodsMixin):
192182

193-
subscription_id = Column(Text, primary_key=True)
194-
begin = Column(DateTime(timezone=True), nullable=False)
183+
order_id = Column(Text, primary_key=True)
184+
reference = Column(Text, nullable=False, unique=True)
185+
invoice = Column(Text, nullable=False)
195186
changed = Column(DateTime(timezone=True), nullable=False)
196-
next_event = Column(DateTime(timezone=True))
197-
next_charge = Column(DateTime(timezone=True))
198-
end = Column(DateTime(timezone=True))
199-
is_active = Column(Boolean, nullable=False)
200-
state = Column(Text, nullable=False)
187+
is_complete = Column(Boolean, default=False, nullable=False)
201188

202189
@declared_attr
203190
def data(cls):
204191
return deferred(Column(JSON, nullable=False))
205192

193+
194+
class SubscriptionMethodsMixin:
195+
206196
def synchronize(self):
207197
data = current_app.extensions['fastspring'].fetch_subscription(self.subscription_id) # noqa
208198
changed = milliseconds_to_datetime(data['changed'])
@@ -223,6 +213,22 @@ def cancel(self, immediately=True):
223213
self.subscription_id, immediately=immediately)
224214

225215

216+
class SubscriptionMixin(SubscriptionMethodsMixin):
217+
218+
subscription_id = Column(Text, primary_key=True)
219+
begin = Column(DateTime(timezone=True), nullable=False)
220+
changed = Column(DateTime(timezone=True), nullable=False)
221+
next_event = Column(DateTime(timezone=True))
222+
next_charge = Column(DateTime(timezone=True))
223+
end = Column(DateTime(timezone=True))
224+
is_active = Column(Boolean, nullable=False)
225+
state = Column(Text, nullable=False)
226+
227+
@declared_attr
228+
def data(cls):
229+
return deferred(Column(JSON, nullable=False))
230+
231+
226232
class APIError(Exception):
227233

228234
def __init__(self, response):

0 commit comments

Comments
 (0)