def signup(): # duplicete check user_name and user_mail user_service = UserService() error = user_service.register(json.loads(request.data)) if error: return jsonify(ok=True) # alredy exist same user name or email return ""
def is_valid_token(token): user_service = UserService() user = user_service.reset_password_by_token(token) if user is None: return "" return jsonify(ok=True)
def account_page(): if "login" not in session or session["login"] == False: return redirect(url_for("user_page.login")) if request.method == "GET": user_service = UserService() user = user_service.get_user_info_by_user_id(session["user_id"]) if user: return render_template("user/account_page.html", title="My Information", user=user) return redirect(url_for("user_page.signup"))
def edit(id): if session.get("user_id") != int(id): return "" user_service = UserService() response = user_service.update(json.loads(request.data), id) if response: return request.data return ""
def setUp(self): print("setUp test env") # init test env self.app = create_app() db.create_all() self.user_service = UserService() # init user data self.user = User(user_name="Akon", user_mail="*****@*****.**", user_password="******") db.session.add(self.user) db.session.commit()
def signup(): signup_form = SignupForm() if request.method == "POST" and signup_form.validate_on_submit(): # duplicete check user_name and user_mail user_service = UserService() error = user_service.register(request.form) if error == True: return redirect(url_for("user_page.login")) # alredy exist same user name ot email flash(f"{error} is already existing") return render_template("user/signup.html", title="Sign Up", form=signup_form)
def refetch(): if not is_login(): return "" user_service = UserService() user = user_service.get_user_info_by_user_id(session["user_id"]) return jsonify(id=user.user_id, username=user.user_name, email=user.user_mail, password=user.user_password)
def delete(id): if session.get("user_id") != int(id): return "" user_service = UserService() error = user_service.delete(id) if error: session.pop("user_id", None) session.pop("login", None) return jsonify(ok=True) return ""
def reset_password(token): form_data = json.loads(request.data) user_service = UserService() user = user_service.reset_password_by_token(token) if user is None: return "" result = user_service.register_new_password(user, form_data) if result: return jsonify(ok=True) return ""
def update(): if "login" not in session or session["login"] == False: return redirect(url_for("user_page.login")) update_form = Update() if request.method == "POST" and update_form.validate_on_submit(): user_service = UserService() error = user_service.update(request.form, session["user_id"]) if error: flash("Update was Success") return redirect(url_for("user_page.account_page")) flash(error) return render_template("user/update.html", title="Update", form=update_form)
def delete(): if "login" not in session or session["login"] == False: return redirect(url_for("user_page.login")) delete_form = Delete() if request.method == "POST" and delete_form.validate_on_submit(): user_service = UserService() error = user_service.delete(request.form, session["user_id"]) if error == True: flash("Thank you see you soon") session.pop("user_id") session["login"] = False flash("Thank you") return redirect(url_for("user_page.signup")) flash(error) return render_template("user/delete.html", title="Delete", form=delete_form)
def login(): login_form = Login() if request.method == "POST" and login_form.validate_on_submit(): # check if user already created a account user_service = UserService() error = user_service.login(request.form) if error: session["user_id"] = error session["login"] = True flash("Welcome back") return redirect(url_for("user_page.user_portfolio")) # alredy exist same user name ot email flash("User information is not existing Try again or please signup in signup page") return render_template("user/login.html", title="Login", form=login_form)
def login(): # check if user already created a account user_service = UserService() user = user_service.login(json.loads(request.data)) if user: session['user_id'] = user.user_id session['login'] = True print(session) # return user data return jsonify(id=user.user_id, username=user.user_name, mail=user.user_mail, password=user.user_password) # doesn't match post data with user info in db return ""
def forgot_password(): if not is_login(): return "" response = json.loads(request.data) user_service = UserService() user = user_service.get_user_info_by_email(response["email"]) if not user: return "" user_service.send_reset_mail(user) return jsonify(ok=True)
def user_portfolio(): if "login" not in session or session["login"] == False: return redirect(url_for("user_page.login")) if request.method == "GET": portfolio_service = PortfolioService() data = portfolio_service.get_user_portfolio(session["user_id"]) user_service = UserService() user = user_service.get_user_info_by_user_id(session["user_id"]) if data and user: api = API() "data[0]: currency name, data[1]: number of hold currency" result = api.call_api(data[0]) result, total_value = api.data_process(result, data[1]) return render_template("portfolio/user_portfolio.html", title="Portfolio", result=result, num_of_holds=data[1], total_value=total_value, user=user) return render_template("portfolio/user_portfolio.html", title="Portfolio", result="", num_of_holds="", total_value=0, user=user)
class TestUserService(unittest.TestCase): def setUp(self): print("setUp test env") # init test env self.app = create_app() db.create_all() self.user_service = UserService() # init user data self.user = User(user_name="Akon", user_mail="*****@*****.**", user_password="******") db.session.add(self.user) db.session.commit() def tearDown(self): print("tearDown") db.session.remove() db.drop_all() def test_user_register(self): # exist data form_data = {"username": "******", "email": "*****@*****.**", } res = self.user_service.register(form_data) self.assertFalse(res) # non exist data form_data = {"username": "******", "email": "*****@*****.**", "password": "******", "confirmPassword": "******"} res = self.user_service.register(form_data) self.assertTrue(res) # invalid username form_data = {"username": "******", "email": "*****@*****.**", "password": "******", "confirmPassword": "******"} res = self.user_service.register(form_data) self.assertFalse(res) def test_user_login(self): # inValid form data form_data = {"username": "******", "email": "*****@*****.**", "password": "******", "confirmPassword": "******"} res = self.user_service.login(form_data) self.assertFalse(res) # non exist user form_data = {"username": "******", "email": "*****@*****.**", "password": "******", "confirmPassword": "******"} res = self.user_service.login(form_data) self.assertFalse(res) # exist data form_data = {"username": "******", "email": "*****@*****.**", "password": "******", "confirmPassword": "******"} res = self.user_service.login(form_data) self.assertIsNotNone(res) def test_user_edit(self): # non exist user form_data = {"username": "******", "email": "*****@*****.**", "password": "******", "confirmPassword": "******"} res = self.user_service.update(form_data=form_data, user_id=1) self.assertFalse(res) # edit user by exist user id form_data = {"username": "******", "email": "*****@*****.**", "password": "******", "confirmPassword": "******"} res = self.user_service.update(form_data=form_data, user_id=1) self.assertTrue(res) def test_user_delete(self): res = self.user_service.delete(user_id=1) self.assertTrue(res) def test_find_user_by_id(self): res = self.user_service.get_user_info_by_user_id(user_id=1) self.assertEqual(self.user, res) def test_find_user_by_email(self): # Exist user res = self.user_service.get_user_info_by_email( email=self.user.user_mail) self.assertEqual(res, self.user) # non exist user res = self.user_service.get_user_info_by_email( email="*****@*****.**") self.assertFalse(res) def test_register_new_password(self): # Valid new password form_data = { "password": "******", "confirmPassword": "******"} res = self.user_service.register_new_password( user=self.user, form_data=form_data) self.assertTrue(res) # inValid new password form_data = { "password": "******", "confirmPassword": "******"} res = self.user_service.register_new_password( user=self.user, form_data=form_data) self.assertFalse(res)