def get_movies_by_id(id_list, repo: AbstractRepository): movies = repo.get_movies_by_id(id_list) # Convert Movies to dictionary form. movies_as_dict = movies_to_dict(movies, repo) return movies_as_dict
def get_random_movies(quantity, repo: AbstractRepository): movie_count = repo.get_number_of_movies() if quantity >= movie_count: # Reduce the quantity of ids to generate if the repository has an insufficient number of movies. quantity = movie_count - 1 # Pick distinct and random movies. random_ids = random.sample(range(1, movie_count), quantity) movies = repo.get_movies_by_id(random_ids) return movies_to_dict(movies)
def get_movies_by_date(date, repo: AbstractRepository): # Returns movies for the target date (empty if no matches), the date of the previous movie (might be null), the date # of the next movie (might be null) ids = get_movie_ids_for_date(date, repo) ids.sort() movies = repo.get_movies_by_id(ids) movies_dto = list() prev_date = next_date = None if len(movies) > 0: prev_date = repo.get_date_of_previous_movie(movies[0]) next_date = repo.get_date_of_next_movie(movies[0]) # Convert Movies to dictionary form. movies_dto = movies_to_dict(movies, repo) return movies_dto, prev_date, next_date