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.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.production && !url.startsWith('https://')) {
      return ValidationResult.urlHttpsRequired;
    }
    return ValidationResult.ok;
  }
}