Source code for aries_cloudagent.messaging.routing.handlers.route_query_request_handler

"""Handler for incoming route-query-request messages."""

from ...base_handler import BaseHandler, BaseResponder, HandlerException, RequestContext
from ..manager import RoutingManager
from ..messages.route_query_request import RouteQueryRequest
from ..messages.route_query_response import RouteQueryResponse


[docs]class RouteQueryRequestHandler(BaseHandler): """Handler for incoming route-query-request messages."""
[docs] async def handle(self, context: RequestContext, responder: BaseResponder): """Message handler implementation.""" self._logger.debug( "%s called with context %s", self.__class__.__name__, context ) assert isinstance(context.message, RouteQueryRequest) if not context.connection_ready: raise HandlerException("Cannot query routes: no active connection") # TODO implement pagination mgr = RoutingManager(context) result = await mgr.get_routes( context.connection_record.connection_id, context.message.filter ) response = RouteQueryResponse(routes=result) await responder.send_reply(response)