validate static method

void validate(
  1. String operation,
  2. Map<String, dynamic> payload
)

Implementation

static void validate(String operation, Map<String, dynamic> payload) {
  final rule = validationRules[operation];
  if (rule == null) {
    throw ConfigError('Unknown Firebase Analytics operation: $operation');
  }

  // Check required parameters
  if (rule['required'] != null) {
    List<String> missing = [];
    for (String param in rule['required']) {
      if (payload[param] == null) missing.add(param);
    }
    if (missing.isNotEmpty) {
      throw ConfigError('$operation requires: ${missing.join(', ')}');
    }
  }

  // Check "any of" requirements (for operations like setConsent)
  if (rule['anyOf'] != null) {
    bool hasAny = false;
    for (String param in rule['anyOf']) {
      if (payload[param] != null) {
        hasAny = true;
        break;
      }
    }
    if (!hasAny) {
      throw ConfigError(rule['message'] ?? '$operation requires at least one parameter from: ${rule['anyOf'].join(', ')}');
    }
  }
}