def get_user(repo: AbstractRepository, username=None): user = None try: user = repo.get_user(username) except: pass return user
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
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
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)
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)
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)
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)
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)
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)
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)
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)
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)
def get_user(username: str, repo: AbstractRepository): user = repo.get_user(username) if user is None: raise UnknownUserException return user
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)
def get_user(repo: AbstractRepository, username): user = repo.get_user(username) return user