validateBaseURL method

ValidationResult validateBaseURL(
  1. String? url,
  2. SDKEnvironment environment
)

Validate base URL for environment

Implementation

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

    final urlPtr = url?.toNativeUtf8() ?? nullptr;
    try {
      final result = validateFn(
        urlPtr.cast<Utf8>(),
        _environmentToInt(environment),
      );
      return ValidationResult.fromCode(result);
    } finally {
      if (urlPtr != nullptr) calloc.free(urlPtr);
    }
  } catch (e) {
    // Fallback validation
    if (environment == SDKEnvironment.SDK_ENVIRONMENT_DEVELOPMENT) {
      return ValidationResult.ok;
    }
    if (url == null || url.isEmpty) {
      return ValidationResult.urlRequired;
    }
    if (!url.startsWith('http://') && !url.startsWith('https://')) {
      return ValidationResult.urlInvalidScheme;
    }
    if (environment == SDKEnvironment.SDK_ENVIRONMENT_PRODUCTION &&
        !url.startsWith('https://')) {
      return ValidationResult.urlHttpsRequired;
    }
    return ValidationResult.ok;
  }
}