validateConfigs static method

List<String> validateConfigs(
  1. List<RequestHeadersConfig> configs
)

Valida que una lista de configuraciones esté bien formada

Implementation

static List<String> validateConfigs(List<RequestHeadersConfig> configs) {
  final errors = <String>[];

  for (int i = 0; i < configs.length; i++) {
    final config = configs[i];

    // Validar URL
    if (config.url.isEmpty) {
      errors.add('Config $i: URL cannot be empty');
    }

    // Validar rango de status codes
    if (config.fromStatus < 100 || config.fromStatus > 599) {
      errors.add('Config $i: fromStatus must be between 100-599');
    }

    if (config.toStatus < 100 || config.toStatus > 599) {
      errors.add('Config $i: toStatus must be between 100-599');
    }

    if (config.fromStatus > config.toStatus) {
      errors.add('Config $i: fromStatus (${config.fromStatus}) cannot be greater than toStatus (${config.toStatus})');
    }

    // Validar headers list
    if (config.headers.isEmpty) {
      errors.add('Config $i: headers list cannot be empty');
    }

    // Validar que los headers no contengan caracteres inválidos
    for (int j = 0; j < config.headers.length; j++) {
      final header = config.headers[j];
      if (header.isEmpty) {
        errors.add('Config $i: header $j cannot be empty');
      }

      // Headers HTTP no pueden contener ciertos caracteres
      if (header.contains(' ') || header.contains('\t') || header.contains('\n')) {
        errors.add('Config $i: header "$header" contains invalid characters (spaces/tabs/newlines)');
      }
    }
  }

  return errors;
}