def get_movie(movie_id: int, repo: AbstractRepository): movie = repo.get_movie_by_id(movie_id) if movie is None: raise NonExistentMovieException return movie_to_dict(movie)
def get_reviews_for_movie(movie_id, repo: AbstractRepository): movie = repo.get_movie_by_id(movie_id) if movie is None: raise NonExistentMovieException return reviews_to_dict(movie.reviews)
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 get_random_movie(quantity, repo: AbstractRepository): movie_count = repo.get_number_of_movies() random_ids = random.sample(range(1, movie_count), quantity) movies = repo.get_movie_by_id(random_ids) return movies