Exemplo n.º 1
0
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()
Exemplo n.º 2
0
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()