def build_app_v2(): """Building routes and forming the root freezer-api app This uses the 'middleware' named argument to specify middleware for falcon instead of the 'before' and 'after' hooks that were removed after 0.3.0 (both approaches were available for versions 0.2.0 - 0.3.0) :return: falcon WSGI app """ # injecting FreezerContext & hooks middleware_list = [ utils.FuncMiddleware(hook) for hook in utils.before_hooks() ] middleware_list.append(middleware.RequireJSON()) middleware_list.append(middleware.JSONTranslator()) app = falcon.API(middleware=middleware_list) db = driver.get_db() # setup freezer policy policy.setup_policy(CONF) for exception_class in freezer_api_exc.exception_handlers_catalog: app.add_error_handler(exception_class, exception_class.handle) endpoint_catalog = [('', v2.public_endpoints(db))] for version_path, endpoints in endpoint_catalog: for route, resource in endpoints: app.add_route(version_path + route, resource) return app
def build_app_v1(): """Building routes and forming the root freezer-api app This uses the 'middleware' named argument to specify middleware for falcon instead of the 'before' and 'after' hooks that were removed after 0.3.0 (both approaches were available for versions 0.2.0 - 0.3.0) :return: falcon WSGI app """ # injecting FreezerContext & hooks middleware_list = [ utils.FuncMiddleware(hook) for hook in utils.before_hooks() ] middleware_list.append(middleware.RequireJSON()) middleware_list.append(middleware.JSONTranslator()) # The signature of falcon.API() differs between versions, suppress pylint: # pylint: disable=unexpected-keyword-arg app = falcon.API(middleware=middleware_list) app = configure_app(app) return app