Source code for tahrir.views

import werkzeug.exceptions
from flask import Blueprint, Flask, jsonify
from flask.helpers import send_from_directory

blueprint = Blueprint("tahrir", __name__)


[docs] def page_not_found(e): return jsonify({"error": "Resource not found", "status": 404}), 404
[docs] def internal_server_error(e): return jsonify({"error": "Internal server error", "status": 500}), 500
[docs] def add_static_view(app: Flask, directory: str, prefix: str, endpoint: str): def _view(filename): max_age = app.get_send_file_max_age(filename) return send_from_directory(directory, filename, max_age=max_age) app.add_url_rule(f"{prefix}/<path:filename>", endpoint=endpoint, view_func=_view)
[docs] def add_frontend_view(app: Flask, directory: str): def _serve_frontend(path): try: return send_from_directory(directory, path) except werkzeug.exceptions.NotFound: return send_from_directory(directory, "index.html") app.add_url_rule("/<path:path>", endpoint="frontend_catchall", view_func=_serve_frontend)