def token_POST(): errors = email_password_schema.validate(request.json) if errors: return build_400_error_response(errors) parsed_schema = sign_up_schema.dump(request.json) user = get_user_by_email(parsed_schema["email"]) if not user: abort(404) if not verify_password(user.password, parsed_schema["password"]): return build_400_error_response({ "password": [ "Incorrect password.", ], }) if not user.active: return build_400_error_response({ "email": [ "This email has not been verified.", ], }) return jsonify( access_token=create_fresh_user_access_token(user), refresh_token=create_user_refresh_token(user), user_id=str(user.id), ), 200
def users_user_email_POST(user, **_): errors = email_schema.validate(request.json) if errors: return build_400_error_response(errors) parsed_schema = email_schema.dump(request.json) if get_user_by_email(parsed_schema["email"]): return build_400_error_response({ "email": [ "There is already an account with this email.", ], }) updated_user = update_user_email(user, parsed_schema["email"]) send_verification_email(updated_user) return "", 204
def users_user_password_POST(user, **_): errors = password_schema.validate(request.json) if errors: return build_400_error_response(errors) parsed_schema = password_schema.dump(request.json) update_user_password(user, parsed_schema["password"]) return "", 204
def reset_password_token_POST(token): errors = password_schema.validate(request.json) if errors: return build_400_error_response(errors) user = get_user_from_password_reset_token(token) if not user: return build_400_error_response({ "token": [ "Invalid token.", ], }) parsed_schema = password_schema.dump(request.json) update_user_password(user, parsed_schema["password"]) return "", 204
def verify_token_POST(token): user = get_user_from_verification_token(token) if not user: return build_400_error_response({ "token": [ "Invalid token.", ], }) activate_user(user) return "", 204
def verify_POST(): errors = email_schema.validate(request.json) if errors: return build_400_error_response(errors) parsed_schema = email_schema.dump(request.json) user = get_user_by_email(parsed_schema["email"]) if not user: abort(404) if user.active: return build_400_error_response({ "email": [ "This email has already been verified.", ], }) send_verification_email(user) return "", 204
def token_refresh_GET(): user = get_user_by_auth_id(get_jwt_identity()) if not user: return build_400_error_response({ "token": [ "Invalid token.", ], }) return jsonify( access_token=create_user_access_token(user), user_id=str(user.id), ), 200
def index_POST(): errors = contact_schema.validate(request.json) if errors: return build_400_error_response(errors) parsed_schema = contact_schema.dump(request.json) send_contact_emails( parsed_schema["email"], parsed_schema["subject"], parsed_schema["message"], ) return "", 204
def sign_up_POST(): errors = sign_up_schema.validate(request.json) if errors: return build_400_error_response(errors) parsed_schema = sign_up_schema.dump(request.json) if get_user_by_email(parsed_schema["email"]): return build_400_error_response({ "email": [ "There is already an account with this email.", ], }) user = save_new_user( parsed_schema["name"], parsed_schema["email"], parsed_schema["password"], ) send_verification_email(user) return "", 201
def reset_password_POST(): errors = email_schema.validate(request.json) if errors: return build_400_error_response(errors) parsed_schema = email_schema.dump(request.json) user = get_user_by_email(parsed_schema["email"]) if not user: abort(404) send_password_reset_email(user) return "", 204
def expired_token_loader(_): return build_400_error_response(messages={ "token": [ "Token expired.", ], })
def needs_fresh_token_loader(): return build_400_error_response(messages={ "token": [ "Needs fresh token.", ], })
def invalid_token_loader(_): return build_400_error_response(messages={ "token": [ "Invalid token.", ], })