def setUp(self): self.policy = datastore_stub_util.PseudoRandomHRConsistencyPolicy( probability=1) self.testbed = testbed.Testbed() self.testbed.activate() self.testbed.init_datastore_v3_stub(consistency_policy=self.policy) self.testbed.init_memcache_stub() self.testbed.init_user_stub() self.testbed.init_urlfetch_stub() ndb.get_context().clear_cache( ) # Prevent data from leaking between tests app = webapp2.WSGIApplication([ RedirectRoute(r'/suggest/cad/review', SuggestDesignsReviewController, 'review-designs', strict_slash=True), RedirectRoute(r'/suggest/review', SuggestReviewHomeController, 'review-home', strict_slash=True), ], debug=True) self.testapp = webtest.TestApp(app) self.team = Team( id="frc1124", team_number=1124, ) self.team.put()
def setUp(self): self.policy = datastore_stub_util.PseudoRandomHRConsistencyPolicy( probability=1) self.testbed = testbed.Testbed() self.testbed.activate() self.testbed.init_datastore_v3_stub(consistency_policy=self.policy) self.testbed.init_memcache_stub() self.testbed.init_user_stub() self.testbed.init_urlfetch_stub() self.testbed.init_taskqueue_stub(_all_queues_valid=True) ndb.get_context().clear_cache( ) # Prevent data from leaking between tests app = webapp2.WSGIApplication( [ RedirectRoute( r'/mod', TeamAdminDashboard, 'team-admin', strict_slash=True), RedirectRoute( r'/mod/redeem', TeamAdminRedeem, 'team-admin', strict_slash=True), RedirectRoute( r'/suggest/cad/review', SuggestDesignsReviewController, 'review-designs', strict_slash=True), RedirectRoute( r'/suggest/team/media/review', SuggestTeamMediaReviewController, 'review-media', strict_slash=True), RedirectRoute( r'/suggest/team/social/review', SuggestSocialMediaReviewController, 'review-social', strict_slash=True), ], debug=True) self.testapp = webtest.TestApp(app) self.team = Team( id="frc1124", name="Team", team_number=1124, ) self.team.put() self.now = datetime.datetime.now()
def setUp(self): self.policy = datastore_stub_util.PseudoRandomHRConsistencyPolicy( probability=1) self.testbed = testbed.Testbed() self.testbed.activate() self.testbed.init_datastore_v3_stub(consistency_policy=self.policy) self.testbed.init_memcache_stub() self.testbed.init_user_stub() self.testbed.init_urlfetch_stub() self.testbed.init_taskqueue_stub(_all_queues_valid=True) ndb.get_context().clear_cache( ) # Prevent data from leaking between tests app = webapp2.WSGIApplication([ RedirectRoute(r'/mod/redeem', TeamAdminRedeem, 'team-admin', strict_slash=True), ]) self.testapp = webtest.TestApp(app) self.team = Team( id="frc1124", name="Team", team_number=1124, ) self.team.put() self.now = datetime.datetime.now()
def test_route_redirect_to(self): route = RedirectRoute('/foo', redirect_to='/bar') router = webapp2.Router([route]) route_match, args, kwargs = router.match(webapp2.Request.blank('/foo')) self.assertEqual(route_match, route) self.assertEqual(args, ()) self.assertEqual(kwargs, {'_uri': '/bar'})
def outer_wrapped(cls): logging.info("Adding route %s to class %s with name %s" % (url, cls, name)) self.router.add(RedirectRoute(url, cls, name=name, strict_slash=True)) return cls
def test_route_redirect_to(self): route = RedirectRoute("/foo", redirect_to="/bar") router = webapp2.Router([route]) route_match, args, kwargs = router.match(webapp2.Request.blank("/foo")) self.assertEqual(route_match, route) self.assertEqual(args, ()) self.assertEqual(kwargs, {"_uri": "/bar"})
def createRoutes(): applicationRoutes = [] # # Update the following array to add/change routes routeInfo = [ ('application.index', 'GET', '/', ApplicationController, 'index'), ('students.index', 'GET', '/students', StudentsController, 'index'), ('students.new', 'GET', '/students/new', StudentsController, 'new'), ('students.create', 'POST', '/students', StudentsController, 'create'), ('students.show', 'GET', '/students/<id:\d+>', StudentsController, 'show'), ] for name, methods, pattern, handlerClass, handlerMethod in routeInfo: # Allow a single string, but this has to be changed to a list. # None here means any method if isinstance(methods, basestring): methods = [methods] # Create the route route = RedirectRoute(name=name, template=pattern, methods=methods, handler=handlerClass, handler_method=handlerMethod) # Add the route to the public list applicationRoutes.append(route) return applicationRoutes
def get_redirect_route(regex_route, handler, name, defaults=None): """Returns a route that redirects /foo/ to /foo. Warning: this method strips off parameters after the trailing slash. URLs with parameters should be formulated without the trailing slash. """ if defaults is None: defaults = {} return RedirectRoute( regex_route, handler, name, strict_slash=True, defaults=defaults)
def setUp(self): self.testbed = testbed.Testbed() self.testbed.activate() self.testbed.init_datastore_v3_stub() self.testbed.init_memcache_stub() self.testbed.init_user_stub() ndb.get_context().clear_cache() # Prevent data from leaking between tests app = webapp2.WSGIApplication([ RedirectRoute(r'/suggest/event/media', SuggestEventMediaController, 'suggest-event-media', strict_slash=True), ], debug=True) self.testapp = webtest.TestApp(app)
def setUp(self): self.policy = datastore_stub_util.PseudoRandomHRConsistencyPolicy(probability=1) self.testbed = testbed.Testbed() self.testbed.activate() self.testbed.init_datastore_v3_stub(consistency_policy=self.policy) self.testbed.init_memcache_stub() self.testbed.init_user_stub() self.testbed.init_urlfetch_stub() self.testbed.init_taskqueue_stub(_all_queues_valid=True) ndb.get_context().clear_cache() # Prevent data from leaking between tests app = webapp2.WSGIApplication([ RedirectRoute(r'/suggest/review', SuggestReviewHomeController, 'suggest-home', strict_slash=True), ], debug=True) self.testapp = webtest.TestApp(app)
def get_application_routes(handler_cls=None): from . import admin_settings if not handler_cls: from .handlers import AdminHandler handler_cls = AdminHandler if handler_cls.__name__ in admin_settings._application_routes: return admin_settings._application_routes[handler_cls.__name__] application_routes = ( ('appengine_admin.index', 'GET', r'/', handler_cls, 'index'), ('appengine_admin.list', 'GET', r'/<model_name>/list/', handler_cls, 'list'), ('appengine_admin.new', None, r'/<model_name>/new/', handler_cls, 'new'), ('appengine_admin.edit', None, r'/<model_name>/edit/<key>/', handler_cls, 'edit'), ('appengine_admin.delete', 'POST', r'/<model_name>/delete/<key>/', handler_cls, 'delete'), ('appengine_admin.blob', 'GET', r'/<model_name>/blob/<field_name>/<key>/', handler_cls, 'blob'), ) admin_settings._application_routes[handler_cls.__name__] = [] for name, methods, pattern, handler_cls, handler_method in application_routes: if isinstance(methods, basestring): methods = [methods] # Prefix with the base URL. pattern = admin_settings.ADMIN_BASE_URL + pattern # Create the route route = RedirectRoute(name=name, template=pattern, methods=methods, handler=handler_cls, handler_method=handler_method, strict_slash=True) admin_settings._application_routes[handler_cls.__name__].append(route) # Read only! admin_settings._application_routes[handler_cls.__name__] = tuple( admin_settings._application_routes[handler_cls.__name__]) return admin_settings._application_routes[handler_cls.__name__]
def setUp(self): self.policy = datastore_stub_util.PseudoRandomHRConsistencyPolicy( probability=1) self.testbed = testbed.Testbed() self.testbed.activate() self.testbed.init_datastore_v3_stub(consistency_policy=self.policy) self.testbed.init_memcache_stub() self.testbed.init_user_stub() self.testbed.init_urlfetch_stub() self.testbed.init_taskqueue_stub(_all_queues_valid=True) ndb.get_context().clear_cache( ) # Prevent data from leaking between tests app = webapp2.WSGIApplication([ RedirectRoute(r'/suggest/event/webcast/review', SuggestEventWebcastReviewController, 'review-webcast', strict_slash=True), ], debug=True) self.testapp = webtest.TestApp(app) self.event = Event( id="2016necmp", name="New England District Championship", event_type_enum=EventType.OFFSEASON, event_district_enum=DistrictType.NEW_ENGLAND, short_name="New England", event_short="necmp", year=2016, end_date=datetime(2016, 03, 27), official=False, city='Hartford', state_prov='CT', country='USA', venue="Some Venue", venue_address="Some Venue, Hartford, CT, USA", timezone_id="America/New_York", start_date=datetime(2016, 03, 24), webcast_json="", website="http://www.firstsv.org", ) self.event.put()
def setUp(self): self.testbed = testbed.Testbed() self.testbed.activate() self.testbed.init_datastore_v3_stub() self.testbed.init_memcache_stub() self.testbed.init_user_stub() ndb.get_context().clear_cache( ) # Prevent data from leaking between tests app = webapp2.WSGIApplication([ RedirectRoute(r'/request/apiwrite', SuggestApiWriteController, 'request-apiwrite', strict_slash=True), ], debug=True) self.testapp = webtest.TestApp(app) self.event = Event( id="2016necmp", name="New England District Championship", event_type_enum=EventType.OFFSEASON, event_district_enum=DistrictType.NEW_ENGLAND, short_name="New England", event_short="necmp", year=2016, end_date=datetime(2016, 03, 27), official=False, city='Hartford', state_prov='CT', country='USA', venue="Some Venue", venue_address="Some Venue, Hartford, CT, USA", timezone_id="America/New_York", start_date=datetime(2016, 03, 24), webcast_json= "[{\"type\": \"twitch\", \"channel\": \"frcgamesense\"}]", website="http://www.firstsv.org", ) self.event.put()
('activity.list', None, '/activity/', ActivityHandler, 'list'), ('activity.update', None, '/activity/<id:\d+>/update/', ActivityHandler, 'update'), ('assistant.create', None, '/assistant/create/', AssistantHandler, 'create'), ('assistant.delete', None, '/assistant/<id:\d+>/delete/', AssistantHandler, 'delete'), ('assistant.list', None, '/assistant/', AssistantHandler, 'list'), ('assistant.update', None, '/assistant/<id:\d+>/update/', AssistantHandler, 'update'), ('instructor.create', None, '/instructor/create/', InstructorHandler, 'create'), ('instructor.delete', None, '/instructor/<id:\d+>/delete/', InstructorHandler, 'delete'), ('instructor.list', None, '/instructor/', InstructorHandler, 'list'), ('instructor.update', None, '/instructor/<id:\d+>/update/', InstructorHandler, 'update'), ] for name, methods, pattern, handler_cls, handler_method in _route_info: # Allow a single string, but this has to be changed to a list. if isinstance(methods, basestring): methods = [methods] # Create the route. route = RedirectRoute(name=name, template=pattern, methods=methods, handler=handler_cls, handler_method=handler_method) # Add the route to the proper public list. application_routes.append(route)
from webapp2 import WSGIApplication, Route from webapp2_extras.routes import PathPrefixRoute, RedirectRoute from manage.admin_handlers import AdminHandler, AdminDeleteHandler from manage.main_handlers import HomeHandler, ProfileHandler from manage.syllabus_handlers import SyllabusHandler, SyllabusCreateHandler, SyllabusDeleteHandler from manage.instructor_handlers import InstructorViewHandler, InstructorOfficeHandler from public.index_handler import IndexHandler from public.login_handlers import LoginHandler, LogoutHandler from public.term_handler import TermHandler from public.view_handler import ViewHandler app = WSGIApplication( [ RedirectRoute('/manage', redirect_to_name='manage-home' ), #fixes stupid trailing slash thing PathPrefixRoute('/manage', [ Route('/', HomeHandler, 'manage-home'), Route('/profile/<term>', InstructorOfficeHandler, 'manage-profile-office'), Route('/profile', ProfileHandler, 'manage-profile'), Route('/syllabus/create', SyllabusCreateHandler, 'create-syllabus'), Route('/syllabus/<fterm>/<fname>/duplicate', SyllabusCreateHandler, 'duplicate-syllabus'), Route('/syllabus/<term>/<name>/delete', SyllabusDeleteHandler, 'delete-syllabus'), Route('/syllabus/<term>/<name>/<step>', SyllabusHandler, 'edit-syllabus'), Route('/instructor', InstructorViewHandler, 'manage-instructor'), Route('/instructor/<iid>/<term>', InstructorOfficeHandler,
(k, dict( (key, getattr(value, key)) for key in dir(value)))) if self.request_bool("clear", False): memcache.delete(key, namespace=namespace) application = webapp2.WSGIApplication( [ DomainRoute( 'smarthistory.khanacademy.org', [webapp2.SimpleRoute('/.*', smarthistory.SmartHistoryProxy)]), ('/', homepage.ViewHomePage), ('/about', util_about.ViewAbout), ('/about/blog', blog.ViewBlog), RedirectRoute('/about/blog/schools', redirect_to='http://ka-implementations.tumblr.com/', defaults={'_permanent': False}), ('/about/blog/.*', blog.ViewBlogPost), ('/about/the-team', util_about.ViewAboutTheTeam), RedirectRoute( '/about/getting-started', redirect_to= 'http://khanacademy.desk.com/customer/portal/articles/329323-where-do-i-begin-how-should-i-get-started-' ), ('/about/discovery-lab', util_about.ViewDiscoveryLab), ('/about/tos', ViewTOS), ('/about/api-tos', ViewAPITOS), ('/about/privacy-policy', ViewPrivacyPolicy), ('/about/dmca', ViewDMCA), ('/contribute', ViewContribute), RedirectRoute('/getinvolved', redirect_to='/contribute'),
""" Using redirect route instead of simple routes since it supports strict_slash Simple route: http://webapp-improved.appspot.com/guide/routing.html#simple-routes RedirectRoute: http://webapp-improved.appspot.com/api/webapp2_extras/routes.html#webapp2_extras.routes.RedirectRoute """ from webapp2_extras.routes import RedirectRoute from web import handlers from admin import live_python secure_scheme = 'https' _routes = [ RedirectRoute('/secure/', handlers.SecureRequestHandler, name='secure', strict_slash=True), RedirectRoute('/pub/<url>/', live_python.PublicPythonScriptRun, name='run-script', strict_slash=True), ] def get_routes(): return _routes def add_routes(app): if app.debug: secure_scheme = 'http'
}) def get_home_redirect(handler, *args, **kwargs): short_name = kwargs.get('short_name', None) if not short_name: return handler.uri_for('main') server = Server.get_by_short_name(short_name) if not server: return handler.uri_for('main') return handler.uri_for('home', server_key=server.short_name) application = webapp2.WSGIApplication( [ RedirectRoute('/', handler=MainHandler, name="main"), RedirectRoute('/gae_claim_callback', handler=GoogleAppEngineUserClaimHandler, name='gae_claim_callback'), # noqa RedirectRoute('/players/claim', handler=UsernameClaimHandler, strict_slash=True, name="username_claim"), RedirectRoute('/chats', handler=ChatsHandler, strict_slash=True, name="naked_chats"), RedirectRoute('/players', handler=PlayersHandler, strict_slash=True, name="naked_players"),
#!/usr/bin/python # coding: utf-8 from webapp2_extras.routes import RedirectRoute from handlers import annotation secure_scheme = 'https' _routes = [ RedirectRoute('/admin/annotation', annotation.ListHandler, name='annotation-list', strict_slash=True), RedirectRoute('/admin/annotation/createsample', annotation.AnnotationSampleHandler, name='annotation-create-sample', strict_slash=True), RedirectRoute('/admin/annotation/createslot', annotation.SlotCreateHandler, name='annotation-create-slot', strict_slash=True), RedirectRoute('/admin/annotation/deleteslot', annotation.SlotDeleteHandler, name='annotation-delete-slot', strict_slash=True), RedirectRoute('/admin/annotation/deletespeech', annotation.SpeechDeleteHandler, name='annotation-delete-speech', strict_slash=True), RedirectRoute('/admin/annotation/resetspeech', annotation.SpeechResetHandler, name='annotation-reset-speech', strict_slash=True), ] def get_routes(): return _routes def add(app): if app.debug: secure_scheme = 'http' for r in _routes: app.router.add(r)
""" Using redirect route instead of simple routes since it supports strict_slash Simple route: http://webapp-improved.appspot.com/guide/routing.html#simple-routes RedirectRoute: http://webapp-improved.appspot.com/api/webapp2_extras/routes.html#webapp2_extras.routes.RedirectRoute """ from webapp2_extras.routes import RedirectRoute import handlers secure_scheme = 'https' _routes = [ RedirectRoute('/taskqueue-send-email/', handlers.SendEmailHandler, name='taskqueue-send-email', strict_slash=True), RedirectRoute('/_ah/login_required', handlers.LoginRequiredHandler), RedirectRoute('/login/', handlers.LoginHandler, name='login', strict_slash=True), RedirectRoute('/logout/', handlers.LogoutHandler, name='logout', strict_slash=True), RedirectRoute('/social_login/<provider_name>', handlers.SocialLoginHandler, name='social-login', strict_slash=True), RedirectRoute('/social_login/<provider_name>/complete', handlers.CallbackSocialLoginHandler,
# third-party imports from webapp2 import Route from webapp2_extras.routes import RedirectRoute ROUTES = [ ##################### # Admin only routes # ##################### RedirectRoute( r'/t/new/', 'handlers.template.forms.AddProjectHandler', name="project-add", handler_method='handle', strict_slash=True, methods=['GET', 'POST'], ), RedirectRoute( r'/t/<task_id>/add_user/', 'handlers.template.forms.AddUserToProjectHandler', name="task-add-user", handler_method='post', strict_slash=True, methods=['POST'], ), RedirectRoute( r'/t/<task_id>/remove_user/<user_id>/', 'handlers.template.forms.RemoveUserFromProjectHandler', name="task-remove-user", strict_slash=True, ),
tba_config.OFFSEASON: MainOffseasonHandler, tba_config.INSIGHTS: MainInsightsHandler, } class Webapp2HandlerAdapter(webapp2.BaseHandlerAdapter): def __call__(self, request, response, exception): request.route_args = {} request.route_args['exception'] = exception handler = self.handler(request, response) return handler.get() app = webapp2.WSGIApplication([ RedirectRoute(r'/', landing_handler[tba_config.CONFIG['landing_handler']], 'landing', strict_slash=True), RedirectRoute(r'/about', AboutHandler, 'about', strict_slash=True), RedirectRoute( r'/account', AccountOverview, 'account-overview', strict_slash=True), RedirectRoute( r'/account/edit', AccountEdit, 'account-edit', strict_slash=True), RedirectRoute(r'/account/register', AccountRegister, 'account-register', strict_slash=True), RedirectRoute( r'/account/mytba', MyTBAController, 'account-mytba', strict_slash=True), RedirectRoute(r'/apidocs', ApiDocumentationHandler,
""" Using redirect route instead of simple routes since it supports strict_slash Simple route: http://webapp-improved.appspot.com/guide/routing.html#simple-routes RedirectRoute: http://webapp-improved.appspot.com/api/webapp2_extras/routes.html#webapp2_extras.routes.RedirectRoute """ from webapp2_extras.routes import RedirectRoute from bp_content.themes.default.handlers import handlers secure_scheme = 'https' # Here go your routes, you can overwrite boilerplate routes (bp_includes/routes) _routes = [ RedirectRoute('/', handlers.ManifestHandler, name='manifest', strict_slash=True), RedirectRoute('/secure/', handlers.SecureRequestHandler, name='secure', strict_slash=True), # RedirectRoute('/gettest/', handlers.getTestFile, name='gettest', strict_slash=True), RedirectRoute('/test/', handlers.TestHandler, name='test', strict_slash=True), RedirectRoute('/add_vessel_data/', handlers.addVesselData, name='add_vessel_data', strict_slash=True), #RedirectRoute('/save_manifest/', handlers.SaveManifestHandler, name='savemanifest', strict_slash=True),
def setUp(self): self.testbed = testbed.Testbed() self.testbed.activate() self.testbed.init_datastore_v3_stub() self.testbed.init_memcache_stub() self.testbed.init_user_stub() ndb.get_context().clear_cache( ) # Prevent data from leaking between tests app = webapp2.WSGIApplication([ RedirectRoute(r'/suggest/match/video', SuggestMatchVideoController, 'suggest-match-video', strict_slash=True), ], debug=True) self.testapp = webtest.TestApp(app) self.event = Event(id="2016necmp", name="New England District Championship", event_type_enum=EventType.DISTRICT_CMP, event_district_enum=DistrictType.NEW_ENGLAND, short_name="New England", event_short="necmp", year=2016, end_date=datetime(2016, 03, 27), official=False, city='Hartford', state_prov='CT', country='USA', venue="Some Venue", venue_address="Some Venue, Hartford, CT, USA", timezone_id="America/New_York", start_date=datetime(2016, 03, 24), webcast_json="", website="http://www.firstsv.org") self.event.put() self.match = Match(id="2016necmp_f1m1", event=ndb.Key(Event, "2016necmp"), year=2016, comp_level="f", set_number=1, match_number=1, team_key_names=[ 'frc846', 'frc2135', 'frc971', 'frc254', 'frc1678', 'frc973' ], time=datetime.fromtimestamp(1409527874), time_string="4:31 PM", youtube_videos=["JbwUzl3W9ug"], tba_videos=[], alliances_json='{\ "blue": {\ "score": 270,\ "teams": [\ "frc846",\ "frc2135",\ "frc971"]},\ "red": {\ "score": 310,\ "teams": [\ "frc254",\ "frc1678",\ "frc973"]}}', score_breakdown_json='{\ "blue": {\ "auto": 70,\ "teleop_goal+foul": 40,\ "assist": 120,\ "truss+catch": 40\ },"red": {\ "auto": 70,\ "teleop_goal+foul": 50,\ "assist": 150,\ "truss+catch": 40}}') self.match.put()
# Instagram auth PathPrefixRoute('/auth', [ webapp2.Route('/instagram', name='auth-instagram', handler='AuthInstagramHandler'), webapp2.Route('/flickr', name='auth-flickr', handler='AuthFlickrHandler'), webapp2.Route('/facebook', name='auth-facebook', handler='AuthFacebookHandler'), ]), # Private maze endpoints. RedirectRoute(r'/maze/<maze_id:\w+>', name='maze', handler='MazeHandler', strict_slash=True), PathPrefixRoute( r'/maze/<maze_id:\w+>', [ webapp2.Route('/login', name='maze-login', handler='MazeLoginHandler'), webapp2.Route('/texture/<image_key>', name='maze-texture', handler='MazeTextureHandler'), PathPrefixRoute('/image', [ webapp2.Route('/list', name='maze-image-list', handler='MazeImageListHandler'), ]),
('/unauthenticated/osa/launcher/apps', GetOSALaucherAppsHandler), ('/unauthenticated/osa/launcher/app/download', GetOSALaucherAppHandler), ('/unauthenticated/osa/callback/twitter', SolutionsCallbackTwitterHandler), ('/bob/api/apps/set_ios_app_id', SetIosAppIdHandler), ('/solutions/djmatic/api/1', solutions.djmatic.api.DJMaticApiHandler), ('/shop/invoices/export', ExportInvoicesHandler), ('/shop/products/export', ExportProductsHandler), ('/shop/prospects/callback', ProspectCallbackHandler), ('/shop/prospects/discover/callback', ProspectDiscoverCallbackHandler), ('/shop/beacons/app/validate_url', BeaconsAppValidateUrlHandler), ('/customers/map/([a-z-_]+)/services', CustomerMapServicesHandler), ('/customers/map/([a-z-_]+)', CustomerMapHandler), ('/customers/setpassword', CustomerSetPasswordHandler), ('/customers/resetpassword', CustomerResetPasswordHandler), RedirectRoute('/customers/signin', name='customers_login', handler=CustomerSigninHandler, strict_slash=True), RedirectRoute('/customers/signup', name='signup', handler=CustomerSignupHandler, strict_slash=True), RedirectRoute('/ourcityapp', name='ourcityapp', redirect_to_name='customers_login', strict_slash=True), ('/solutions/common/public/attachment/view/(.*)', CloudStorageBlobstoreHandler), ('/solutions/common/public/menu/image/(.*)', ViewMenuItemImageHandler), ('/version', VersionsHandler) ]
tba_config.OFFSEASON: MainOffseasonHandler, tba_config.INSIGHTS: MainInsightsHandler, } class Webapp2HandlerAdapter(webapp2.BaseHandlerAdapter): def __call__(self, request, response, exception): request.route_args = {} request.route_args['exception'] = exception handler = self.handler(request, response) return handler.get() app = webapp2.WSGIApplication([ RedirectRoute(r'/', landing_handler[tba_config.CONFIG['landing_handler']], 'landing', strict_slash=True), RedirectRoute(r'/2champs', TwoChampsHandler, '2champs', strict_slash=True), RedirectRoute(r'/about', AboutHandler, 'about', strict_slash=True), RedirectRoute( r'/account', AccountOverview, 'account-overview', strict_slash=True), RedirectRoute(r'/account/api/read_key_add', AccountAPIReadKeyAdd, 'account-api-read-key-add', strict_slash=True), RedirectRoute(r'/account/api/read_key_delete', AccountAPIReadKeyDelete, 'account-api-read-key-delete', strict_slash=True), RedirectRoute( r'/account/edit', AccountEdit, 'account-edit', strict_slash=True),
from webapp2_extras.routes import RedirectRoute import users import admin import logsemails import logsvisits import crontasks _routes = [ RedirectRoute('/admin/', users.AdminUserGeoChartHandler, name='admin-users-geochart', strict_slash=True), RedirectRoute('/admin/users/', users.AdminUserListHandler, name='admin-users-list', strict_slash=True), RedirectRoute('/admin/users/<user_id>/', users.AdminUserEditHandler, name='admin-user-edit', strict_slash=True, handler_method='edit'), RedirectRoute('/admin/logs/emails/', logsemails.AdminLogsEmailsHandler, name='admin-logs-emails', strict_slash=True), RedirectRoute('/admin/logs/emails/<email_id>/', logsemails.AdminLogsEmailViewHandler, name='admin-logs-email-view', strict_slash=True), RedirectRoute('/admin/logs/visits/', logsvisits.AdminLogsVisitsHandler, name='admin-logs-visits', strict_slash=True), RedirectRoute('/admin/logout/', admin.AdminLogoutHandler, name='admin-logout', strict_slash=True), RedirectRoute('/crontasks/cleanuptokens/', crontasks.AdminCleanupTokensHandler, name='admin-crontasks-cleanuptokens', strict_slash=True), ] def get_routes(): return _routes def add_routes(app): for r in _routes: app.router.add(r)
# distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. import webapp2 import lib.redirects as redirects from webapp2_extras.routes import RedirectRoute from lib.controllers.base import BaseController from lib.controllers.explorer_csv import ExplorerCsvController from lib.controllers.vwo import VwoController router = webapp2.WSGIApplication([ # Redirects (r'/demos/embed-api.*', redirects.EmbedApiRedirect), (r'/explorer/csvhandler.*', redirects.QueryExplorerCsvRedirect), (r'/explorer.*', redirects.QueryExplorerRedirect), # Main routes (r'/query-explorer/csvhandler.*', ExplorerCsvController), (r'/vwo', VwoController), RedirectRoute(r'/', handler=BaseController, name='Home', strict_slash=True), RedirectRoute(r'/<project>/', handler=BaseController, name='Project', strict_slash=True), RedirectRoute(r'/<project>/<page>/', handler=BaseController, name='Page', strict_slash=True), ], debug=False)
# Web Routes # TODO: WE need to somehow inject these into the react app # WebGalleries web_routes = [] rest_routes = [] """ TODO: Design for web routes - put in jsonfile that is mounted in client too... name = {url, server_view, react_view } """ web_routes += [ RedirectRoute('/about/', 'controllers.AboutMainHandler', strict_slash=True, name="about"), RedirectRoute(r'/galleries/<slug:[a-z0-9-_]+>/', 'venues.controllers.GalleryDetailHandler', strict_slash=True, name="view_permalink"), RedirectRoute(r'/galleries/', 'venues.controllers.GalleryMainHandler', strict_slash=True, name="venues_main"), # (r'/events/([a-z0-9-]+)', 'cal.controllers.CalendarDetailHandler'), RedirectRoute(r'/events/<slug:[a-z0-9-_]+>/', 'cal.controllers.CalendarDetailHandler', strict_slash=True, name="event_permalink"),