Automattic\WooCommerce\Vendor\GraphQL\Type\Definition

InputObjectType::validateOneOfConstraints │ private │ WC 1.0

Validates that oneOf input object constraints are met.

Method of the class: InputObjectType{}

No Hooks.

Returns

null. Nothing (null).

Usage

// private - for code of main (parent) class only
$result = $this->validateOneOfConstraints( $fields ): void;
$fields(array<string, InputObjectField>) (required)
.

InputObjectType::validateOneOfConstraints() code WC 11.1.2

private function validateOneOfConstraints(array $fields): void
{
    if (count($fields) === 0) {
        throw new InvariantViolation("OneOf input object type {$this->name} must define one or more fields.");
    }

    foreach ($fields as $fieldName => $field) {
        $fieldType = $field->getType();

        // OneOf fields must be nullable (not wrapped in NonNull)
        if ($fieldType instanceof NonNull) {
            throw new InvariantViolation("OneOf input object type {$this->name} field {$fieldName} must be nullable.");
        }

        // OneOf fields cannot have default values
        if ($field->defaultValueExists()) {
            throw new InvariantViolation("OneOf input object type {$this->name} field {$fieldName} cannot have a default value.");
        }
    }
}