예제 #1
0
def get_user(repo: AbstractRepository, username=None):
    user = None
    try:
        user = repo.get_user(username)
    except:
        pass
    return user
예제 #2
0
def authenticate_user(username: str, password: str, repo: AbstractRepository):
    authenticated = False

    user = repo.get_user(username)
    if user is not None:
        authenticated = check_password_hash(user.password, password)
    if not authenticated:
        raise AuthenticationException
예제 #3
0
def get_watchlist(repo: AbstractRepository):
    watchlist = None
    if 'username' in session:
        username = session['username']
        user = repo.get_user(username)
        watchlist = user.watchlist
        watchlist = movies_to_dict(watchlist)
    return watchlist
예제 #4
0
def add_review(title: str, release_year: int, username: str, review_text: str, rating: int, repo: AbstractRepository):
    movie = repo.get_movie(title=title, release_year=release_year)
    if movie is None:
        raise NonExistentMovieException
    user = repo.get_user(username=username)
    if user is None:
        raise UnknownUserException
    review = Review(movie, review_text, rating)
    user.add_review(review)
    repo.add_review(review)
예제 #5
0
def add_user(username: str, password: str, repo: AbstractRepository):
    # check that given username is available
    user = repo.get_user(username)
    if user is not None:
        raise NameNotUniqueException

    # if available generate password hash and store new user with hash
    password_hash = generate_password_hash(password)

    user = User(username, password_hash)
    repo.add_user(user)
예제 #6
0
def set_rating(movie_id: int, rating: int, username: str,
               repo: AbstractRepository):
    user = repo.get_user(username)
    if user is None:
        user = User('Guest account', 'defaultpass')

    movie = repo.get_movie(movie_id)
    if movie is None:
        raise NonExistentMovieException

    repo.set_rating(rating, user, movie)
예제 #7
0
def add_user(username: str, password: str, repo: AbstractRepository):
    # Check that the given username is available.
    user = repo.get_user(username)
    if user is not None:
        raise NameNotUniqueException

    # Encrypt password so that the database doesn't store passwords 'in the clear'.
    password_hash = generate_password_hash(password)

    # Create and store the new User, with password encrypted.
    user = User(username, password_hash)
    repo.add_user(user)
예제 #8
0
def add_review(movie_title: str, review_text: str, username: str, rating: int,
               repo: AbstractRepository):
    movie = repo.get_movie(movie_title)
    if movie is None:
        raise NonExistentMovieException

    user = repo.get_user(username)
    if user is None:
        raise UnknownUserException

    review = make_review(review_text, user, movie, rating)
    repo.add_review(review)
예제 #9
0
def add_user(username: str, password: str, repo: AbstractRepository):
    # Check that the username is not taken
    user = repo.get_user(username)
    if user is not None:
        raise NameNotUniqueException

    # Encrypt password
    password_hash = generate_password_hash(password)

    # Create and store the new User with encrypted password
    user = User(username, password_hash)
    repo.add_user(user)
예제 #10
0
def add_review(movie_id: int, review_text: str, rating, username: str, repo: AbstractRepository):
    movie = repo.get_movie(movie_id)
    if movie is None:
        raise NonExistentMovieException

    user = repo.get_user(username)
    if user is None:
        raise UnknownUserException

    # Create Review
    review = make_review(review_text, user, movie, rating)

    # Update Repo
    repo.add_review(review)
예제 #11
0
def add_review(movie_id: int, review_text: str, rating: int, username: str, repo: AbstractRepository):
    # Check that the movie exists.
    movie = repo.get_movie_by_id(movie_id)
    if movie is None:
        raise NonExistentMovieException

    user = repo.get_user(username)
    if user is None:
        raise UnknownUserException

    # Create review.
    review = Review(username, movie, review_text, rating)

    # Update the repository.
    user.add_review(review)
예제 #12
0
def add_comment(movie_rank: int, comment_text: str, username: str,
                repo: AbstractRepository):
    # Check that the movie exists.
    movie = repo.get_movie(movie_rank)
    if movie is None:
        raise NonExistentMovieException

    user = repo.get_user(username)
    if user is None:
        user = User("Guest account", "Abcd1234")

    # Create comment.
    comment = make_comment(comment_text, user, movie)

    # Update the repository.
    repo.add_comment(comment)
예제 #13
0
def get_user(username: str, repo: AbstractRepository):
    user = repo.get_user(username)
    if user is None:
        raise UnknownUserException

    return user
예제 #14
0
def remove_from_watchlist(movie_id: int, repo: AbstractRepository):
    if 'username' not in session:
        return
    user = repo.get_user(session['username'])
    movie = repo.get_movie(movie_id)
    user.remove_from_watchlist(movie)
예제 #15
0
def get_user(repo: AbstractRepository, username):
    user = repo.get_user(username)
    return user