connectFromText static method

Future<MyAppCrewConnectResult> connectFromText(
  1. String input, {
  2. String? publicKeyOverride,
})

Connect using text that may include a claim token or URL.

Implementation

static Future<MyAppCrewConnectResult> connectFromText(
  String input, {
  String? publicKeyOverride,
}) async {
  final parsed = parseConnectInput(input);
  _lastConnectInputKind = parsed.inputKind;

  final overrideKey = publicKeyOverride?.trim();
  final parsedKey = parsed.parsedPublicKey?.trim();
  final targetKey =
      (overrideKey != null && overrideKey.isNotEmpty)
          ? overrideKey
          : parsedKey;
  if (targetKey != null &&
      targetKey.isNotEmpty &&
      _config != null &&
      _config!.publicKey != targetKey) {
    await init(
      publicKey: targetKey,
      baseUrl: _config!.baseUrl,
      enableLogs: _debugLoggingEnabled,
    );
  }

  if (parsed.inputKind == 'code' && parsed.connectCode != null) {
    return _connectWithClaim(
      connectCode: parsed.connectCode,
      inputKind: parsed.inputKind,
    );
  }

  if (parsed.claimToken != null && parsed.claimToken!.isNotEmpty) {
    return _connectWithClaim(
      claimToken: parsed.claimToken,
      inputKind: parsed.inputKind,
    );
  }

  _lastError = 'claim_token_missing';
  return MyAppCrewConnectResult(
    connected: false,
    inputKind: parsed.inputKind,
    errorCode: 'claim_token_missing',
    message: 'Claim token missing',
  );
}