2018-11-04 10:33:22 -08:00
|
|
|
from flask import Blueprint
|
2019-01-23 07:00:30 -08:00
|
|
|
from flask_yoloapi import endpoint
|
2018-11-02 09:07:06 -07:00
|
|
|
|
2019-01-23 07:00:30 -08:00
|
|
|
from .models import EmailVerification, db
|
2018-11-02 09:07:06 -07:00
|
|
|
|
|
|
|
blueprint = Blueprint("email", __name__, url_prefix="/api/v1/email")
|
|
|
|
|
|
|
|
|
|
|
|
@blueprint.route("/<code>/verify", methods=["POST"])
|
|
|
|
@endpoint.api()
|
|
|
|
def verify_email(code):
|
|
|
|
ev = EmailVerification.query.filter_by(code=code).first()
|
|
|
|
if ev:
|
|
|
|
ev.has_verified = True
|
|
|
|
db.session.commit()
|
|
|
|
return {"message": "Email verified"}, 200
|
|
|
|
else:
|
|
|
|
return {"message": "Invalid email code"}, 400
|
|
|
|
|
|
|
|
|
|
|
|
@blueprint.route("/<code>/unsubscribe", methods=["POST"])
|
|
|
|
@endpoint.api()
|
2018-12-17 10:33:33 -08:00
|
|
|
def unsubscribe_email(code):
|
2018-11-02 09:07:06 -07:00
|
|
|
ev = EmailVerification.query.filter_by(code=code).first()
|
2018-11-04 10:33:22 -08:00
|
|
|
if ev:
|
2019-01-16 14:26:45 -08:00
|
|
|
ev.user.settings.unsubscribe_emails()
|
|
|
|
db.session.commit()
|
|
|
|
return {"message": "Unsubscribed from all emails"}, 200
|
2018-11-02 09:07:06 -07:00
|
|
|
else:
|
|
|
|
return {"message": "Invalid email code"}, 400
|