-
Hello! |
Beta Was this translation helpful? Give feedback.
Answered by
Vincz
Sep 23, 2021
Replies: 1 comment
-
Hi. It's quite easy to make your own. <?php
declare(strict_types=1);
namespace App\GraphQL\Scalar;
use GraphQL\Language\AST\BooleanValueNode;
use GraphQL\Language\AST\FloatValueNode;
use GraphQL\Language\AST\IntValueNode;
use GraphQL\Language\AST\ListValueNode;
use GraphQL\Language\AST\ObjectValueNode;
use GraphQL\Language\AST\StringValueNode;
use Overblog\GraphQLBundle\Annotation as GQL;
#[GQL\Scalar]
#[GQL\Description('Json scalar type')]
class Json
{
public static function serialize($value)
{
return $value;
}
public static function parseValue($value)
{
return $value;
}
public static function parseLiteral($valueNode)
{
switch ($valueNode) {
case $valueNode instanceof StringValueNode:
case $valueNode instanceof BooleanValueNode:
return $valueNode->value;
case $valueNode instanceof IntValueNode:
case $valueNode instanceof FloatValueNode:
return \floatval($valueNode->value);
case $valueNode instanceof ObjectValueNode:
$value = [];
foreach ($valueNode->fields as $field) {
$value[$field->name->value] = self::parseLiteral($field->value);
}
return $value;
case $valueNode instanceof ListValueNode:
return \array_map([self, 'parseLiteral'], $valueNode->values);
default:
return null;
}
}
} |
Beta Was this translation helpful? Give feedback.
0 replies
Answer selected by
scion4581
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Hi. It's quite easy to make your own.
Here is an example with attributes: