validateBaseUrl static method

List<String> validateBaseUrl(
  1. String baseUrl
)

Validates a base URL for OAuth2 usage

Implementation

static List<String> validateBaseUrl(String baseUrl) {
  final issues = <String>[];

  if (baseUrl.isEmpty) {
    issues.add('Base URL cannot be empty');
    return issues;
  }

  final uri = Uri.tryParse(baseUrl);
  if (uri == null) {
    issues.add('Base URL must be a valid URL');
    return issues;
  }

  if (!uri.hasScheme) {
    issues.add('Base URL must include a scheme (http or https)');
  } else if (!['http', 'https'].contains(uri.scheme.toLowerCase())) {
    issues.add('Base URL must use http or https scheme');
  }

  if (!uri.hasAuthority) {
    issues.add('Base URL must include a host');
  }

  // Check for common issues
  if (uri.path.isNotEmpty && uri.path != '/') {
    issues.add('Base URL should not include a path (found: ${uri.path})');
  }

  if (uri.hasQuery) {
    issues.add('Base URL should not include query parameters');
  }

  if (uri.hasFragment) {
    issues.add('Base URL should not include a fragment');
  }

  return issues;
}