Source code for aries_cloudagent.connections.util

"""Class for providing base utilities for Mediator support."""

from ..protocols.coordinate_mediation.v1_0.manager import MediationManager
from ..protocols.coordinate_mediation.v1_0.models.mediation_record import (
    MediationRecord,
)
from ..core.profile import ProfileSession

from .base_manager import BaseConnectionManagerError


[docs]async def mediation_record_if_id( session: ProfileSession, mediation_id: str = None, or_default: bool = False ): """Validate mediation and return record. If mediation_id is not None, validate mediation record state and return record else, return None """ mediation_record = None if mediation_id: mediation_record = await MediationRecord.retrieve_by_id(session, mediation_id) elif or_default: mediation_record = await MediationManager( session.profile ).get_default_mediator() if mediation_record: if mediation_record.state != MediationRecord.STATE_GRANTED: raise BaseConnectionManagerError( "Mediation is not granted for mediation identified by " f"{mediation_record.mediation_id}" ) return mediation_record