示例#1
0
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 ""
示例#2
0
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)
示例#3
0
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"))
示例#4
0
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()
示例#6
0
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)
示例#7
0
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)
示例#8
0
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 ""
示例#9
0
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 ""
示例#10
0
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)
示例#11
0
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)
示例#12
0
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)
示例#13
0
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 ""
示例#14
0
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)
示例#15
0
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)