def create_user(): try: data = request.get_json() if User.find_by_email( email=data.get('email')) is not None or User.find_by_username( username=data.get('username')) is not None: return response_with(resp.INVALID_INPUT_422) data['password'] = User.generate_hash(data['password']) user_schema = UserSchema() user = user_schema.load(data) token = generate_verification_token(data.get('email')) verification_email = url_for('user_routes.verify_email', token=token, _external=True) html = render_template_string("<p>Welcome! Thanks for\ signing up. Please follow this link to activate your\ account:</p> <p><a href='{{ verification_email }}'>{{\ verification_email }}</a></p> <br> <p>Thanks!</p>", verification_email=verification_email) subject = "Please Verify your email" send_email(user.email, subject, html) result = user_schema.dump(user.create()) return response_with(resp.SUCCESS_201) except Exception as e: print(e) return response_with(resp.INVALID_INPUT_422)
def create_user(): try: data = request.get_json() if (User.find_by_email(data["email"]) is not None or User.find_by_username(data["username"]) is not None): return response_with(resp.INVALID_INPUT_422) data["password"] = User.generate_hash(data["password"]) user_schema = UserSchema() user = user_schema.load(data) token = generate_verification_token(data["email"]) verification_email = url_for("user_routes.verify_email", token=token, _external=True) html = render_template_string( "<p>Welcome! Thanks for signing up. Please follow this link to activate your account:</p> <p><a href='{{ verification_email }}'>{{ verification_email }}</a></p> <br> <p>Thanks!</p>", verification_email=verification_email, ) subject = "Please verify your email." send_email(to=user.email, subject=subject, template=html) result = user_schema.dump(user.create()) return response_with(resp.SUCCESS_201, value={"user": result}) except IntegrityError: return response_with(resp.INVALID_INPUT_422, message="User already registered.") except Exception as e: print(e) return response_with(resp.INVALID_INPUT_422)
def test_confirm_email_for_verified_user(self): token = generate_verification_token('*****@*****.**') response = self.app.get('/api/users/confirm/' + token) data = json.loads(response.data) print(data) self.assertEqual(422, response.status_code)
def test_confirm_email(self): token = generate_verification_token('*****@*****.**') response = self.app.get( '/api/users/confirm/' + token ) data = json.loads(response.data) self.assertEqual(200, response.status_code) self.assertTrue('success' in data['code'])
def sendEmailToken(email): token = generate_verification_token(email) verification_email = url_for('user_routes.verify_email', token=token, _external=True) print(token) print(verification_email) html = render_template_string( "<p>Welcome! Thanks for signing up. Please follow this link to activate youraccount:</p> <p><a href='{{ verification_email }}'>{{verification_email }}</a></p> <br> <p>Thanks!</p>", verification_email=verification_email) subject = "Please Verify your email" send_email(email, subject, html)
def create_user(): try: data = request.get_json() if (User.find_by_email(data['email']) is not None or User.find_by_username(data['username']) is not None): return response_with(resp.INVALID_INPUT_422) user_schema = UserSchema() user = user_schema.load(data) token = generate_verification_token(data['email']) verification_email_url = url_for('user_routes.verify_email', token=token, _external=True) html = render_template_string( "<p>Welcome! Thanks for signing up. Please follow this link to activate your account:</p> <p><a href='{{ verification_email }}'>{{ verification_email }}</a></p> <br> <p>Thanks!</p>", verification_email=verification_email_url) subject = "Please Verify your email [KeyManager]" send_email(user.email, subject, html) result = user_schema.dump(user.create()) return response_with(resp.SUCCESS_201, value={"user": result}) except Exception as e: print(e) return response_with(resp.INVALID_INPUT_422)
def test_confirm_email_with_incorrect_email(self): token = generate_verification_token('*****@*****.**') response = self.app.get( '/api/users/confirm/' + token ) self.assertEqual(404, response.status_code)
def test_confirm_email_for_verified_user(self): token = generate_verification_token('*****@*****.**') response = self.app.get( '/api/users/confirm/' + token ) self.assertEqual(422, response.status_code)
def test_confirm_email_with_incorrect_email(self): token = generate_verification_token('*****@*****.**') response = self.app.get('/api/users/confirm/' + token) data = json.loads(response.data) self.assertEqual(404, response.status_code)
def create_user(): """ Create user endpoint --- parameters: - in: body name: body schema: id: UserSignup required: - username - password - email properties: username: type: string description: Unique username of the user default: "Johndoe" password: type: string description: Password of the user default: "somethingstrong" email: type: string description: email of the user default: "*****@*****.**" responses: 201: description: User successfully created schema: id: UserSignUpSchema properties: code: type: string 422: description: Invalid input arguments schema: id: invalidInput properties: code: type: string message: type: string """ try: data = request.get_json() if (User.find_by_email(data["email"]) is not None or User.find_by_username(data["username"]) is not None): return response_with(resp.INVALID_FIELD_NAME_SENT_422) data["password"] = User.generate_hash(data["password"]) user_schema = UserSchema() user = user_schema.load(data) token = generate_verification_token(data["email"]) verification_email = url_for("user_routes.verify_email", token=token, _external=True) html = render_template_string( "<p>Welcome! Thanks for signing up. Please follow this link to activate your account:</p> <p><a href='{{ verification_email }}'>{{ verification_email }}</a></p> <br> <p>Thanks!</p>", verification_email=verification_email, ) subject = "Please Verify your email" # send_email(user.email, subject, html) result = user_schema.dump(user.create()) return response_with(resp.SUCCESS_201) except Exception as e: print(e) return response_with(resp.INVALID_FIELD_NAME_SENT_422)