in example_app/graviton2_gh_runner_flask_app/__init__.py [0:0]
def create_app(env_config):
"""Application factory."""
app = Flask(__name__)
app.config.from_object(config[env_config])
# DynamoClient
dynamo = DynamoConnectionManager()
dynamo.init_app(app=app)
# Controllers
book_controller = BookController(connection_manager=dynamo)
cart_controller = CartController(connection_manager=dynamo)
order_controller = OrderController(connection_manager=dynamo)
book_controller.init_app(app=app)
cart_controller.init_app(app=app)
order_controller.init_app(app=app)
# Import views
from .resources.books import BookView, SingleBookView
from .resources.cart import CartView, CartItemsView
from .resources.orders import OrderView, OrdersView
# Add views
books = BookView.as_view("books")
single_book = SingleBookView.as_view("single_book")
cart = CartView.as_view("cart")
cart_items = CartItemsView.as_view("cart_items")
orders = OrdersView.as_view("orders")
order = OrderView.as_view("order")
# Add url rules for views
app.add_url_rule(
"/books", view_func=books, methods=["GET", "POST"],
)
app.add_url_rule(
"/books/<book_id>", view_func=single_book, methods=["GET"],
)
app.add_url_rule(
"/cart/<user_id>", view_func=cart, methods=["GET"],
)
app.add_url_rule(
"/cart/<user_id>/items", view_func=cart_items, methods=["GET"],
)
app.add_url_rule(
"/orders/<user_id>", view_func=orders, methods=["GET"],
)
app.add_url_rule(
"/orders/<user_id>/order/<order_id>", view_func=order, methods=["GET"],
)
return app