Source code for aries_cloudagent.protocols.routing.v1_0.handlers.route_update_request_handler

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

from .....messaging.base_handler import (
    BaseHandler,
    BaseResponder,
    HandlerException,
    RequestContext,
)

from ..manager import RoutingManager
from ..messages.route_update_request import RouteUpdateRequest
from ..messages.route_update_response import RouteUpdateResponse


[docs]class RouteUpdateRequestHandler(BaseHandler): """Handler for incoming route-update-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, RouteUpdateRequest) if not context.connection_ready: raise HandlerException("Cannot update routes: no active connection") mgr = RoutingManager(context.profile) updated = await mgr.update_routes( context.connection_record.connection_id, context.message.updates ) response = RouteUpdateResponse(updated=updated) await responder.send_reply(response)