Automattic\WooCommerce\Vendor\GraphQL\Server

OperationParams::createpublic staticWC 1.0

Creates an instance from given array.

Method of the class: OperationParams{}

No Hooks.

Returns

null. Nothing (null).

Usage

$result = OperationParams::create( $params, $readonly ): OperationParams;
$params(array) (required)
.
$readonly(true|false)
.
Default: false

OperationParams::create() code WC 10.8.1

public static function create(array $params, bool $readonly = false): OperationParams
{
    $instance = new static();

    $params = array_change_key_case($params, \CASE_LOWER);
    $instance->originalInput = $params;

    $params += [
        'query' => null,
        'queryid' => null,
        'documentid' => null, // alias to queryid
        'id' => null, // alias to queryid
        'operationname' => null,
        'variables' => null,
        'extensions' => null,
    ];

    foreach ($params as &$value) {
        if ($value === '') {
            $value = null;
        }
    }

    $instance->query = $params['query'];
    $instance->queryId = $params['queryid'] ?? $params['documentid'] ?? $params['id'];
    $instance->operation = $params['operationname'];
    $instance->variables = static::decodeIfJSON($params['variables']);
    $instance->extensions = static::decodeIfJSON($params['extensions']);
    $instance->readOnly = $readonly;

    // Apollo server/client compatibility
    if (
        isset($instance->extensions['persistedQuery']['sha256Hash'])
        && $instance->queryId === null
    ) {
        $instance->queryId = $instance->extensions['persistedQuery']['sha256Hash'];
    }

    return $instance;
}