def get_reviews_for_movie(movie_title, movie_year, repo: AbstractRepository): movie = repo.get_movie_by_title_and_year(movie_title, movie_year) if movie is None: raise NonExistentMovieException return reviews_to_dict(movie.reviews)
def get_movie_by_title_and_year(title: str, year: int, repo: AbstractRepository): movie = repo.get_movie_by_title_and_year(title, year) if movie is None: raise NonExistentMovieException return movie_to_dict(movie)
def remove_movie_from_watchlist(username: str, movie_title: str, movie_year: int, repo: AbstractRepository): # Check user exists user = repo.get_user(username) if user is None: raise UnknownUserException # Check movie exists movie = repo.get_movie_by_title_and_year(movie_title, movie_year) if movie is None: raise NonExistentMovieException repo.remove_movie_from_user_watchlist(user, movie)
def add_review(movie_title: str, movie_year: int, username: str, review_text: str, rating: int, repo: AbstractRepository): # Check movie and user exists movie = repo.get_movie_by_title_and_year(movie_title, movie_year) if movie is None: raise NonExistentMovieException user = repo.get_user(username) if user is None: raise UnknownUserException # Create review review = make_review(user, movie, review_text, rating) # Add review repo.add_review(review)