def main(global_config, **settings): """ This function returns a Pyramid WSGI application. """ config = Configurator(settings=settings) setup_logging(global_config['__file__']) config.add_renderer('jsonp', JSONP(param_name='callback')) config.add_renderer('ujson', factory='app.renderers.UjsonRenderer') config.add_static_view('static', 'static', cache_max_age=3600) # initialise a connection to mongo on startup and store the client # in the registry which will be injected into each request conf = appConfig(config.registry.settings.get('app.config')) config.registry.app_config = conf.app_config config.registry.app_config['mongodb']['client'] = init_mongodb_connection(config.registry.app_config['mongodb']) config.add_route('home', '/') config.add_route('health-check', '/health-check') config.add_route('network-stats', '/stats/{code}/{explore}') config.add_route('network-build', '/network/{code}/{explore}') config.add_route('network-build-status', '/network/{code}/{explore}/status') config.add_route('entity-data', '/entity/{code}/data') config.add_route('entity-build', '/entity/{code}/{id}') config.add_route('entity-build-status', '/entity/{code}/{id}/status') config.add_route('convert-graph', '/convert/{code}') config.scan() return config.make_wsgi_app()
def main(global_config, **settings): """ This function returns a Pyramid WSGI application. """ config = Configurator(settings=settings) setup_logging(global_config['__file__']) # initialise a connection to mongo on startup and store the client # in the registry which will be injected into each request conf = appConfig(config.registry.settings.get('app.config')) config.registry.app_config = conf.app_config config.registry.app_config['mongodb']['client'] = init_mongodb_connection(config.registry.app_config['mongodb']) # a session factory is required by velruse but we'll grab the password from the # datafile that has all the other secret stuff we don't want in git session_factory = SignedCookieSessionFactory(auth_providers.session_secret) config.set_session_factory(session_factory) # pull in the login provider information auth_providers.add_providers(config) config.include('pyramid_mako') config.add_static_view('static', 'static', cache_max_age=3600) config.add_renderer('mongojson', JSON(default=json_util.default)) config.add_renderer('jsonp', JSONP(param_name='callback')) config.add_route('home', '/') config.add_route('health_check', '/health-check') # login routes config.add_route('login_staff', '/login/staff') config.add_route('login_google', '/login/google') config.add_route('login_linkedin', '/login/linkedin') # retrieve / validate tokens config.add_route('retrieve_token', '/token/{code}') config.add_route('validate_token', '/token') # admin components config.add_route('admin_check_email', '/admin/email/{email}') config.add_route('admin_users', '/admin/users') config.add_route('admin_user', '/admin/user/{user}') config.scan() return config.make_wsgi_app()