Add get_or_create_user_card_detail method
This commit is contained in:
		
					parent
					
						
							
								85d19c004b
							
						
					
				
			
			
				commit
				
					
						780fa6cb60
					
				
			
		
					 1 changed files with 32 additions and 0 deletions
				
			
		| 
						 | 
					@ -230,3 +230,35 @@ class UserCardDetail(AssignPermissionsMixin, models.Model):
 | 
				
			||||||
                'last4': card.last4, 'brand': card.brand, 'id': card.id
 | 
					                'last4': card.last4, 'brand': card.brand, 'id': card.id
 | 
				
			||||||
            })
 | 
					            })
 | 
				
			||||||
        return cards_list
 | 
					        return cards_list
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @classmethod
 | 
				
			||||||
 | 
					    def get_or_create_user_card_detail(cls, stripe_customer, card_details):
 | 
				
			||||||
 | 
					        """
 | 
				
			||||||
 | 
					        A method that checks if a UserCardDetail object exists already
 | 
				
			||||||
 | 
					        based upon the given card_details and creates it for the given
 | 
				
			||||||
 | 
					        customer if it does not exist. It returns the UserCardDetail object
 | 
				
			||||||
 | 
					        matching the given card_details if it exists.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        :param stripe_customer: The given StripeCustomer object to whom the
 | 
				
			||||||
 | 
					                card object should belong to
 | 
				
			||||||
 | 
					        :param card_details: A dictionary identifying a given card
 | 
				
			||||||
 | 
					        :return: UserCardDetail object
 | 
				
			||||||
 | 
					        """
 | 
				
			||||||
 | 
					        try:
 | 
				
			||||||
 | 
					            card_detail = UserCardDetail.objects.get(
 | 
				
			||||||
 | 
					                stripe_customer=stripe_customer,
 | 
				
			||||||
 | 
					                fingerprint=card_details['fingerprint'],
 | 
				
			||||||
 | 
					                exp_month=card_details['exp_month'],
 | 
				
			||||||
 | 
					                exp_year=card_details['exp_year']
 | 
				
			||||||
 | 
					            )
 | 
				
			||||||
 | 
					        except UserCardDetail.DoesNotExist:
 | 
				
			||||||
 | 
					            card_detail = UserCardDetail.create(
 | 
				
			||||||
 | 
					                stripe_customer=stripe_customer,
 | 
				
			||||||
 | 
					                last4=card_details['last4'],
 | 
				
			||||||
 | 
					                brand=card_details['brand'],
 | 
				
			||||||
 | 
					                fingerprint=card_details['fingerprint'],
 | 
				
			||||||
 | 
					                exp_month=card_details['exp_month'],
 | 
				
			||||||
 | 
					                exp_year=card_details['exp_year'],
 | 
				
			||||||
 | 
					                card_id=card_details['card_id']
 | 
				
			||||||
 | 
					            )
 | 
				
			||||||
 | 
					        return card_detail
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue