monkey_patches sync_card

This commit is contained in:
Christopher Neugebauer 2017-10-05 16:09:16 -07:00
parent f1262837b4
commit 4a67271b94
2 changed files with 33 additions and 0 deletions

32
pinaxcon/monkey_patch.py Normal file
View file

@ -0,0 +1,32 @@
from django.conf import settings
from django.core.mail import EmailMultiAlternatives
from functools import wraps
class MonkeyPatchMiddleware(object):
''' Ensures that our monkey patching only gets called after it is safe to do so.'''
def process_request(self, request):
do_monkey_patch()
def do_monkey_patch():
patch_stripe_card_defaults()
# Remove this function from existence
global do_monkey_patch
do_monkey_patch = lambda: None
def patch_stripe_card_defaults():
from pinax.stripe.actions import sources
from collections import defaultdict
old_sync_card = sources.sync_card
def sync_card(customer, source):
d = defaultdict(str)
d.update(source)
return old_sync_card(customer, d)
sources.sync_card = sync_card

View file

@ -149,6 +149,7 @@ MIDDLEWARE_CLASSES = [
"ssl_redirect.middleware.SSLRedirectMiddleware",
"pinaxcon.middleware.CanonicalHostMiddleware",
"pinaxcon.middleware.UnprependWWWMiddleware",
"pinaxcon.monkey_patch.MonkeyPatchMiddleware",
]
ROOT_URLCONF = "pinaxcon.urls"