diff --git a/pinaxcon/monkey_patch.py b/pinaxcon/monkey_patch.py new file mode 100644 index 0000000000000000000000000000000000000000..64e7b3bedfb5247263c81973673886061ab69250 --- /dev/null +++ b/pinaxcon/monkey_patch.py @@ -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