mirror of
https://github.com/kevin-DL/ShortMe-URL-Shortener.git
synced 2026-01-12 03:15:17 +00:00
51 lines
1.9 KiB
Python
51 lines
1.9 KiB
Python
# ------- standard library imports -------
|
|
import re
|
|
|
|
# ------- 3rd party imports -------
|
|
from flask_mail import Mail, Message
|
|
from flask import Blueprint, request, redirect, url_for, session
|
|
|
|
# ------- local imports -------
|
|
from app import app
|
|
from app.server.db.extensions import db
|
|
from app.server.db.models import VerificationCode, Email
|
|
|
|
send_otp_blueprint = Blueprint('send_otp_blueprint', __name__)
|
|
|
|
|
|
@send_otp_blueprint.route('/email_validation', methods=['POST'])
|
|
def email_validation():
|
|
input_email = request.form['email']
|
|
pattern = r'[^@]+@[^@]+\.[^@]+'
|
|
is_email_valid = re.match(pattern, input_email)
|
|
|
|
if is_email_valid:
|
|
email = Email.query.filter_by(email=input_email).first()
|
|
|
|
if email and email.is_verified:
|
|
auth_token = Email.query.filter_by(email=input_email).first().auth_token
|
|
return redirect(url_for('your_api_token_blueprint.your_api_token', auth_token=auth_token))
|
|
|
|
elif email and not email.is_verified:
|
|
return redirect(url_for('verify_code_blueprint.enter_verification_code', is_verified=False))
|
|
|
|
else:
|
|
if not email:
|
|
session['user_email'] = input_email
|
|
|
|
email = Email(email=input_email)
|
|
verification_code = VerificationCode(email=email)
|
|
db.session.add(verification_code, email)
|
|
db.session.commit()
|
|
|
|
# print('user added to db')
|
|
# print('verification_code:')
|
|
# print(verification_code)
|
|
# print('*' * 33)
|
|
|
|
mail = Mail(app.app)
|
|
msg = Message('ShortMe Verification Code', sender='shortme.biz@gmail.com', recipients=[email.email])
|
|
msg.body = str(f'Hi!\nThis is your verification code: {verification_code.verification_code}')
|
|
mail.send(msg)
|
|
return redirect(url_for('verify_code_blueprint.enter_verification_code'))
|