def add_reviews(movie_id: int, review_content: str, rank: int, username: str, repo: AbstractRepository): movie = repo.get_movie_by_id(movie_id) # create the review review = Review(movie, review_content, rank) # add reviews to repository repo.add_review(review)
def add_review(movie_id: str, username: str, comment: str, rating: int, repo: AbstractRepository) -> None: movie = repo.get_movie_by_id(movie_id) if movie: review = Review(movie, username, comment, rating) movie.add_review(review) if has_app_context(): _save_reviews_to_disk(current_app.config['REVIEW_DATA_PATH'], review)
def fetch_movie_info_by_id(movie_id: str, repo: AbstractRepository): movie_info = dict() movie = repo.get_movie_by_id(movie_id) if movie: movie_info['movie_title'] = movie.title movie_info['movie_id'] = movie_id movie_info['movie_description'] = movie.description if movie.director: movie_info[ 'movie_director_full_name'] = movie.director.director_full_name movie_info['movie_genres'] = [g.genre_name for g in movie.genres] movie_info['movie_actors'] = [a.actor_full_name for a in movie.actors] movie_info['movie_reviews'] = [{ 'rating': review.rating, 'comment': review.review_text, 'username': review.username, 'id': review.id } for review in movie.reviews] return movie_info
def remove_review(review_id: str, movie_id: str, repo: AbstractRepository): movie = repo.get_movie_by_id(movie_id) movie.remove_review_by_id(review_id) if has_app_context(): _remove_review_from_disk(current_app.config['REVIEW_DATA_PATH'], review_id)
def get_movie_by_id(repo: AbstractRepository, movie_id: int) -> Movie: """ Returns the Movie with the given id in the given repository. """ return repo.get_movie_by_id(movie_id)