validateApiKey method

ValidationResult validateApiKey(
  1. String? apiKey,
  2. SDKEnvironment environment
)

Validate API key for environment

Implementation

ValidationResult validateApiKey(String? apiKey, SDKEnvironment environment) {
  try {
    final lib = PlatformLoader.loadCommons();
    final validateFn = lib.lookupFunction<
        Int32 Function(Pointer<Utf8>, Int32),
        int Function(Pointer<Utf8>, int)>('rac_validate_api_key');

    final apiKeyPtr = apiKey?.toNativeUtf8() ?? nullptr;
    try {
      final result = validateFn(apiKeyPtr.cast<Utf8>(), _environmentToInt(environment));
      return ValidationResult.fromCode(result);
    } finally {
      if (apiKeyPtr != nullptr) calloc.free(apiKeyPtr);
    }
  } catch (e) {
    // Fallback validation
    if (environment == SDKEnvironment.development) {
      return ValidationResult.ok;
    }
    if (apiKey == null || apiKey.isEmpty) {
      return ValidationResult.apiKeyRequired;
    }
    if (apiKey.length < 10) {
      return ValidationResult.apiKeyTooShort;
    }
    return ValidationResult.ok;
  }
}