| 
									
										
										
										
											2018-07-07 01:28:25 +02:00
										 |  |  | from django.core.management.base import BaseCommand | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | from hosting.models import UserCardDetail | 
					
						
							|  |  |  | from membership.models import CustomUser | 
					
						
							|  |  |  | from utils.stripe_utils import StripeUtils | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class Command(BaseCommand): | 
					
						
							|  |  |  |     help = '''Imports the usercard details of all customers. Created just for
 | 
					
						
							|  |  |  |               multiple card support.'''
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def handle(self, *args, **options): | 
					
						
							|  |  |  |         try: | 
					
						
							|  |  |  |             stripe_utils = StripeUtils() | 
					
						
							| 
									
										
										
										
											2018-07-07 02:15:38 +02:00
										 |  |  |             for user in CustomUser.objects.all(): | 
					
						
							|  |  |  |                 if hasattr(user, 'stripecustomer'): | 
					
						
							|  |  |  |                     if user.stripecustomer: | 
					
						
							|  |  |  |                         card_details_resp = stripe_utils.get_card_details( | 
					
						
							|  |  |  |                             user.stripecustomer.stripe_id | 
					
						
							| 
									
										
										
										
											2018-07-07 01:28:25 +02:00
										 |  |  |                         ) | 
					
						
							| 
									
										
										
										
											2018-07-07 02:15:38 +02:00
										 |  |  |                         card_details = card_details_resp['response_object'] | 
					
						
							|  |  |  |                         if card_details: | 
					
						
							|  |  |  |                             ucd = UserCardDetail.get_or_create_user_card_detail( | 
					
						
							|  |  |  |                                 stripe_customer=user.stripecustomer, | 
					
						
							|  |  |  |                                 card_details=card_details | 
					
						
							|  |  |  |                             ) | 
					
						
							|  |  |  |                             UserCardDetail.save_default_card_local( | 
					
						
							|  |  |  |                                 user.stripecustomer.stripe_id, | 
					
						
							|  |  |  |                                 ucd.card_id | 
					
						
							|  |  |  |                             ) | 
					
						
							|  |  |  |                             print("Saved user card details for {}".format( | 
					
						
							|  |  |  |                                 user.email | 
					
						
							|  |  |  |                             )) | 
					
						
							|  |  |  |                         else: | 
					
						
							|  |  |  |                             print(" --- Could not get card details for " | 
					
						
							|  |  |  |                                   "{}".format(user.email)) | 
					
						
							|  |  |  |                             print(" --- Error: {}".format( | 
					
						
							|  |  |  |                                 card_details_resp['error'] | 
					
						
							|  |  |  |                             )) | 
					
						
							|  |  |  |                 else: | 
					
						
							|  |  |  |                     print(" === {} does not have a StripeCustomer object".format( | 
					
						
							|  |  |  |                         user.email | 
					
						
							|  |  |  |                     )) | 
					
						
							| 
									
										
										
										
											2018-07-07 01:28:25 +02:00
										 |  |  |         except Exception as e: | 
					
						
							| 
									
										
										
										
											2018-07-07 02:15:38 +02:00
										 |  |  |             print(" *** Error occurred. Details {}".format(str(e))) |