Spaces:
Sleeping
Sleeping
| from flask import Flask, request | |
| from .common.repository.database_session import DatabaseSession, Base | |
| from .common.logging import logger | |
| from .api import init_routes | |
| from .api.file_server.handler import FileServerHandler | |
| from .database.migration_manager import MigrationManager | |
| import os | |
| import atexit | |
| import subprocess | |
| def create_app(): | |
| app = Flask(__name__) | |
| # Initialize database connection | |
| try: | |
| DatabaseSession.initialize() | |
| logger.info("Database connection initialized successfully") | |
| except Exception as e: | |
| logger.error(f"Failed to initialize database connection: {str(e)}") | |
| raise | |
| # Add CORS support | |
| def after_request(response): | |
| # Allow all origins in development environment | |
| response.headers.add("Access-Control-Allow-Origin", "*") | |
| response.headers.add( | |
| "Access-Control-Allow-Headers", "Content-Type,Authorization" | |
| ) | |
| response.headers.add( | |
| "Access-Control-Allow-Methods", "GET,PUT,POST,DELETE,OPTIONS" | |
| ) | |
| return response | |
| # Create file server handler | |
| file_handler = FileServerHandler( | |
| os.path.join(os.getenv("APP_ROOT", "/app"), "resources", "raw_content") | |
| ) | |
| def serve_content(path=""): | |
| return file_handler.handle_request(path, request.path) | |
| # Register all routes | |
| init_routes(app) | |
| # Clean up database connection only when the application shuts down | |
| def cleanup_db(exception): | |
| pass | |
| return app | |
| app = create_app() | |
| def cleanup(): | |
| DatabaseSession.close() | |
| if __name__ == "__main__": | |
| app.run(host="0.0.0.0", port=8000) | |