checkBridgePrerequisites function

Future<BridgePrerequisiteResult> checkBridgePrerequisites()

Check all bridge prerequisites before connecting.

Verifies: organization policy, bridge disabled reasons, version compatibility, and access token availability.

Implementation

Future<BridgePrerequisiteResult> checkBridgePrerequisites() async {
  // Check organization policy.
  // In the Dart port, policy checking is handled by the policy service.
  // For now, we check basic prerequisites.

  // Check if bridge is disabled for a known reason.
  final disabledReason = await _getBridgeDisabledReason();
  if (disabledReason != null) {
    return BridgePrerequisiteResult.failure(
      message: disabledReason,
      failReason: BridgeDisabledReason.notEligible,
    );
  }

  // Check bridge version compatibility.
  final versionError = _checkBridgeMinVersion();
  if (versionError != null) {
    return BridgePrerequisiteResult.failure(
      message: versionError,
      failReason: BridgeDisabledReason.versionTooOld,
    );
  }

  // Check access token.
  if (getBridgeAccessToken() == null) {
    return BridgePrerequisiteResult.failure(
      message: bridgeLoginInstruction,
      failReason: BridgeDisabledReason.noAccessToken,
    );
  }

  return const BridgePrerequisiteResult.success();
}