from flask import Flask, render_template, jsonify, request from movie_controller import MovieController app = Flask(__name__) controller = MovieController() @app.route('/') def index(): return render_template('index.html') @app.route('/api/movies') def get_movies(): movies = controller.get_all_movies() return jsonify([movie.__dict__ for movie in movies]) @app.route('/api/highest-rated') def get_highest_rated(): movie = controller.get_highest_rated_movie() return jsonify(movie.__dict__) @app.route('/api/highest-grossing') def get_highest_grossing(): movie = controller.get_highest_grossing_movie() return jsonify(movie.__dict__) @app.route('/api/movies-by-year') def get_movies_by_year(): movies = controller.get_movies_sorted_by_year() return jsonify([movie.__dict__ for movie in movies]) @app.route('/api/genres') def get_genres(): genres = controller.get_all_genres() return jsonify(genres) @app.route('/api/languages') def get_languages(): languages = controller.get_all_languages() return jsonify(languages) @app.route('/api/movies/filter') def filter_movies(): genre = request.args.get('genre', '') year = request.args.get('year', '') language = request.args.get('language', '') movies = controller.filter_movies(genre, year, language) return jsonify([movie.__dict__ for movie in movies]) @app.route('/api/movies/sort') def sort_movies(): sort_by = request.args.get('sort_by', 'year') order = request.args.get('order', 'desc') movies = controller.sort_movies(sort_by, order) return jsonify([movie.__dict__ for movie in movies]) if __name__ == '__main__': app.run(host='0.0.0.0', port=7860, debug=True)