getApiUrlStringOrDefault method

String? getApiUrlStringOrDefault(
  1. K key, {
  2. String? defaultValue,
  3. List<K> alternativeKeys = const [],
})

Returns a validated URL string or defaultValue when invalid.

Implementation

String? getApiUrlStringOrDefault(
  K key, {
  String? defaultValue,
  List<K> alternativeKeys = const [],
}) {
  final value = _valueFor(key, alternativeKeys);
  if (value == null) return defaultValue;

  try {
    final urlStr = value.toString().trim();
    if (urlStr.isEmpty || urlStr.toLowerCase() == 'null') {
      return defaultValue;
    }

    final uri = Uri.tryParse(urlStr);
    if (uri == null || (!uri.hasScheme && !uri.hasAuthority)) {
      return defaultValue;
    }

    return urlStr;
  } catch (e) {
    if (kDebugMode) {
      debugPrint('Error parsing URL for key "$key": $e');
    }
    return defaultValue;
  }
}