Skip to content

Instantly share code, notes, and snippets.

@okomarov
Created November 10, 2019 10:33
Show Gist options
  • Save okomarov/b4eafc483baf2fc237aca338dc348558 to your computer and use it in GitHub Desktop.
Save okomarov/b4eafc483baf2fc237aca338dc348558 to your computer and use it in GitHub Desktop.
viral queue verify email and refer logic
def verify_email(token):
payload = utils.decode_jwt_token(token)
user = get_user(payload['user_id'])
if user is None:
return
if not user.email_confirmed:
user.email_confirmed = True
now = datetime.now(timezone.utc)
user.email_confirmed_on = now
user.save()
if payload['referring_uuid'] is not None:
refer(payload['referring_uuid'], user.waitlist.uuid)
def refer(referring_uuid, referred_uuid):
referring_user = get_waitlist_user(referring_uuid)
referred_user = get_waitlist_user(referred_uuid)
try:
referring_user.referred.append(referred_user)
referring_user.score -= Waitlist.decrease_per_referral
referring_user.save()
except IntegrityError:
pass
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment