validateConfig method
ValidationResult
validateConfig({
- required SDKEnvironment environment,
- String? apiKey,
- String? baseURL,
Validate complete configuration
Implementation
ValidationResult validateConfig({
required SDKEnvironment environment,
String? apiKey,
String? baseURL,
}) {
try {
final lib = PlatformLoader.loadCommons();
final validateFn = lib.lookupFunction<
Int32 Function(Pointer<RacSdkConfigStruct>),
int Function(Pointer<RacSdkConfigStruct>)>('rac_validate_config');
final config = calloc<RacSdkConfigStruct>();
final apiKeyPtr = apiKey?.toNativeUtf8() ?? nullptr;
final baseURLPtr = baseURL?.toNativeUtf8() ?? nullptr;
try {
config.ref.environment = _environmentToInt(environment);
config.ref.apiKey = apiKeyPtr.cast<Utf8>();
config.ref.baseURL = baseURLPtr.cast<Utf8>();
final result = validateFn(config);
return ValidationResult.fromCode(result);
} finally {
if (apiKeyPtr != nullptr) calloc.free(apiKeyPtr);
if (baseURLPtr != nullptr) calloc.free(baseURLPtr);
calloc.free(config);
}
} catch (e) {
// Fallback: validate each part
final apiKeyResult = validateApiKey(apiKey, environment);
if (!apiKeyResult.isValid) return apiKeyResult;
final urlResult = validateBaseURL(baseURL, environment);
if (!urlResult.isValid) return urlResult;
return ValidationResult.ok;
}
}