from blueprints import default_blueprint from di_container import Container from configs import Config, LoggerConfig from flask import Flask from blueprints import auth_blueprint, user_blueprint from database import init_db def createApp() -> Flask: app = Flask(__name__) app.config.from_object(Config) container = Container() app.container = container mongo = init_db(app) if mongo is not None: container.mongo.override(mongo) container.wire(modules=["blueprints.auth"]) container.wire(modules=["blueprints.user"]) # Register Blueprints app.register_blueprint(default_blueprint) app.register_blueprint(auth_blueprint, url_prefix="/api") app.register_blueprint(user_blueprint, url_prefix="/api") # Initialize Logging LoggerConfig.init_logger(app) return app if __name__ == "__main__": app = createApp() app.run(host="0.0.0.0", debug=Config.DEBUG)