def add_http_handler(handler, path, **kwargs): logger.info('Adding route', path=path) async def wrapper(request): return await request_handler(request, handler) return [ RouteDef('GET', path, wrapper, kwargs), RouteDef('POST', path, wrapper, kwargs) ]
def with_prefix(prefix: str, routes: Sequence[RouteDef]) -> Sequence[RouteDef]: """ Adds prefix to routes """ return [ RouteDef(route.method, prefix + route.path, route.handler, route.kwargs) for route in routes ]
def get_routes(): return [RouteDef(*args) for args in ( ("POST", "/api/v2/indy/construct-proof", views.construct_proof, {}), ("POST", "/api/v2/indy/generate-credential-request", views.generate_credential_request, {}), ("POST", "/api/v2/indy/store-credential", views.store_credential, {}), ("POST", "/api/v2/indy/register-issuer", views.register_issuer, {}), #("GET", "/api/v2/indy/debug", views.request_info, {}), # Do not expose in PROD ("GET", "/health", views.combined_health, {}), # Replaces tob_api health endpoint #("GET", "/api/v2/indy/health", views.health, {}), ("GET", "/api/v2/indy/status", views.status, {}), ("GET", "/api/v2/credential/{id}/verify", views.verify_credential, {}), )]
def expose_method(self, handler, path=None, **kwargs): role = kwargs.pop('role', self.NONE) name = kwargs.get('name', handler.__name__) if path is None: path = '/{}'.format(name) self._methods.add_method(handler, name=name, role=role) async def get_handler(request): query = dict(request.query) query.update(request.match_info) result = await handler(**query) return resp(result) async def post_handler(request): post = await request.post() query = dict(request.query) query.update(post) query.update(request.match_info) result = await handler(**query) return resp(result) self._routes.append(RouteDef('GET', path, get_handler, kwargs)) self._routes.append(RouteDef('POST', path, post_handler, kwargs))
async def configure(appctx): appctx.declare('routes') appctx.routes.set([ # authn RouteDef('POST', '/authn/session', authn.init_authn_session, {}), RouteDef('GET', '/authn/challenge', authn.get_authn_challenge, {}), RouteDef('POST', '/authn/challenge', authn.verify_authn_challenge, {}), # user RouteDef('GET', '/users/{user_profile_id}/contactMethods/{contact_method_id}/verify', users.get_contact_method_verify_challenge, {}), RouteDef('POST', '/users/{user_profile_id}/contactMethods/{contact_method_id}/verify', users.verify_contact_method, {}), RouteDef('POST', '/users/{user_profile_id}/paymentMethods', users.add_payment_method, {}), # plan RouteDef('GET', '/plans', plans.get_subscription_plans, {}), RouteDef('POST', '/plans', plans.create_subscription_plan, {}), RouteDef('POST', '/plans/{subscription_plan_id}/subscribe', plans.create_subscription, {}), ])
def get_routes(): return [ RouteDef(*args) for args in ( ("POST", "/api/v2/indy/construct-proof", views.construct_proof, {}), ("POST", "/api/v2/indy/generate-credential-request", views.generate_credential_request, {}), ("POST", "/api/v2/indy/store-credential", views.store_credential, {}), ("POST", "/api/v2/indy/register-issuer", views.register_issuer, {}), ("GET", "/api/v2/indy/debug", views.reqInfo, {}), # FIXME - REMOVE IN PROD ("GET", "/api/v2/debug", views.reqInfo, {}), # FIXME - REMOVE IN PROD ("GET", "/api/v2/indy/status", views.status, {}), ("GET", "/api/v2/credential/{id}/verify", views.verify_credential, {}), ) ]
def add_route(self, path: str, handler: _HandlerType, **kwargs: Any): self._items.append(RouteDef(hdrs.METH_ANY, path, handler, kwargs)) self._items.append( RouteDef(hdrs.METH_ANY, path + "/{id}", handler, kwargs))
def inner(handler: _HandlerType) -> _HandlerType: self._items.append(RouteDef(method, path, handler, kwargs)) self._items.append( RouteDef(method, path + "/{id}", handler, kwargs)) return handler