Ejemplo n.º 1
0
def test_delete_user(db: SQLAlchemy) -> None:
    new_user = create_user()

    deleted_user = UserService().delete_by_id(new_user.user_id)

    if deleted_user:
        assert len(UserService().get_all()) == 0
Ejemplo n.º 2
0
def reset_password(token):
    """Resets a users password given a valid token.

    Parmaeters
    ----------
    token:
        The JWT that was sent to the users email.
    """
    data = request.get_json()

    user = User.verify_reset_password_token(token)
    updates = UserInterface()
    updates['password'] = data['new_password']
    try:
        if user:
            UserService().update(user, updates)

            send_email("[QuickBoosters] Password Reset",
                       "password reset successfully",
                       "*****@*****.**", user.email)
            return jsonify({
                'status': 'success',
                'message': 'Password successfully updated'
            })
    except Exception as e:
        return jsonify({'status': 'failure', 'message': str(e)})
Ejemplo n.º 3
0
def test_update_user(db: SQLAlchemy) -> None:
    new_user = create_user()

    new_changes = UserInterface()
    new_changes['username'] = '******'

    updated_user: User = UserService().update(new_user, new_changes)

    assert updated_user.username == 'updatedName'
Ejemplo n.º 4
0
def create_user() -> User:
    user: UserInterface = {
        "user_id": 1,
        "username": "******",
        "email": "*****@*****.**",
        "password": "******",
        "role": RoleTypes.MEMBER,
        "created_on": datetime.now()
    }

    new_user = UserService().create(user)
    return new_user
Ejemplo n.º 5
0
def create_user() -> None:
    """ Nessecary for ForeignKey Constraint"""
    user: UserInterface = {
        "user_id": 1,
        "username": "******",
        "email": "*****@*****.**",
        "password": "******",
        "role": RoleTypes.MEMBER,
        "created_on": datetime.now()
    }

    UserService().create(user)
Ejemplo n.º 6
0
def login_and_generate_token() -> str:
    """API route to generate token.

    Returns the new token

    Returns:
        str: a JSON encoded response.
    """
    username: str = request.form['username']
    password: str = request.form['password']
    user = UserService().get_by_username(username)

    try:
        if user and user.check_password(password):
            token = encodeAuthToken(user.id)
        return jsonify({
            'status': 'Success',
            'auth_token': token.decode('UTF-8')
        })
    except Exception as e:
        return jsonify({'status': 'failure', 'error': str(e)})
Ejemplo n.º 7
0
def reset_password_request():
    """Sends an email with a JWT token"""

    url = request.host_url + 'password-reset/'

    data = request.get_json()
    email = data['email']
    user = UserService().get_by_email(email)
    try:
        if user:
            send_password_reset_email(user, url)

            return jsonify({
                'status': 'success',
                'message': 'Email sent to: ' + email
            })
    except Exception as e:
        return jsonify({'status': 'failure', 'error': str(e)})
Ejemplo n.º 8
0
def register_user():
    """An API route to create a new user.

    Returns the new created user.

    Returns:
        str: A JSON encoded response.
    """

    try:
        schema = UserSchema()
        new_user = UserService().create(schema.load(request.get_json()))
        return {"user": new_user.username}
    except IntegrityError:
        return jsonify({
            'status':
            'failure',
            'error':
            request.get_json()['username'] + ' already taken.'
        })
    except Exception as e:
        return jsonify({'status': 'failure', 'error': str(e)})
Ejemplo n.º 9
0
def test_get_user_by_username(db: SQLAlchemy) -> None:
    new_user = create_user()
    assert UserService.get_by_username(
           new_user.username).username == "exampleUserName"
Ejemplo n.º 10
0
def test_get_user_by_id(db: SQLAlchemy) -> None:
    new_user = create_user()
    assert UserService.get_by_id(new_user.user_id).user_id == 1