<?php declare(strict_types = 1); namespace MailPoet\Validator; if (!defined('ABSPATH')) exit; use MailPoet\Validator\Schema\AnyOfSchema; use MailPoet\Validator\Schema\ArraySchema; use MailPoet\Validator\Schema\BooleanSchema; use MailPoet\Validator\Schema\IntegerSchema; use MailPoet\Validator\Schema\NullSchema; use MailPoet\Validator\Schema\NumberSchema; use MailPoet\Validator\Schema\ObjectSchema; use MailPoet\Validator\Schema\OneOfSchema; use MailPoet\Validator\Schema\StringSchema; // See: https://developer.wordpress.org/rest-api/extending-the-rest-api/schema/ class Builder { public static function string(): StringSchema { return new StringSchema(); } public static function number(): NumberSchema { return new NumberSchema(); } public static function integer(): IntegerSchema { return new IntegerSchema(); } public static function boolean(): BooleanSchema { return new BooleanSchema(); } public static function null(): NullSchema { return new NullSchema(); } public static function array(Schema $items = null): ArraySchema { $array = new ArraySchema(); return $items ? $array->items($items) : $array; } /** @param array<string, Schema>|null $properties */ public static function object(array $properties = null): ObjectSchema { $object = new ObjectSchema(); return $properties === null ? $object : $object->properties($properties); } /** @param Schema[] $schemas */ public static function oneOf(array $schemas): OneOfSchema { return new OneOfSchema($schemas); } /** @param Schema[] $schemas */ public static function anyOf(array $schemas): AnyOfSchema { return new AnyOfSchema($schemas); } }