39 lines
1.0 KiB
Python
39 lines
1.0 KiB
Python
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, swagger_blueprint
|
|
from database import init_db
|
|
|
|
|
|
def createApp() -> Flask:
|
|
app = Flask(__name__)
|
|
app.config.from_object(Config)
|
|
LoggerConfig.init_logger(app)
|
|
|
|
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"])
|
|
|
|
prefix = f"/api/{Config.API_VERSION}"
|
|
|
|
# Register Blueprints
|
|
app.register_blueprint(default_blueprint)
|
|
app.register_blueprint(swagger_blueprint)
|
|
app.register_blueprint(auth_blueprint, url_prefix=prefix)
|
|
app.register_blueprint(user_blueprint, url_prefix=prefix)
|
|
|
|
return app
|
|
|
|
|
|
if __name__ == "__main__":
|
|
app = createApp()
|
|
app.run(host="0.0.0.0", debug=Config.DEBUG)
|