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.SDK_ENVIRONMENT_DEVELOPMENT) {
      return ValidationResult.ok;
    }
    if (apiKey == null || apiKey.isEmpty) {
      return ValidationResult.apiKeyRequired;
    }
    if (apiKey.length < 10) {
      return ValidationResult.apiKeyTooShort;
    }
    return ValidationResult.ok;
  }
}