diff --git a/netbox/netbox/graphql/scalars.py b/netbox/netbox/graphql/scalars.py index d14549f65..e49ca83ec 100644 --- a/netbox/netbox/graphql/scalars.py +++ b/netbox/netbox/graphql/scalars.py @@ -1,10 +1,12 @@ -from typing import Union +from typing import NewType import strawberry -BigInt = strawberry.scalar( - Union[int, str], # type: ignore +BigInt = NewType('BigInt', int) + +BigIntScalar = strawberry.scalar( + name='BigInt', serialize=lambda v: int(v), parse_value=lambda v: str(v), - description="BigInt field", + description='BigInt field', ) diff --git a/netbox/netbox/graphql/schema.py b/netbox/netbox/graphql/schema.py index 16bb22c21..5fb27bf4e 100644 --- a/netbox/netbox/graphql/schema.py +++ b/netbox/netbox/graphql/schema.py @@ -16,6 +16,8 @@ from virtualization.graphql.schema import VirtualizationQuery from vpn.graphql.schema import VPNQuery from wireless.graphql.schema import WirelessQuery +from .scalars import BigInt, BigIntScalar + @strawberry.type class Query( @@ -36,9 +38,14 @@ class Query( schema = strawberry.Schema( query=Query, - config=StrawberryConfig(auto_camel_case=False), + config=StrawberryConfig( + auto_camel_case=False, + scalar_map={ + BigInt: BigIntScalar, + }, + ), extensions=[ DjangoOptimizerExtension(prefetch_custom_queryset=True), MaxAliasesLimiter(max_alias_count=settings.GRAPHQL_MAX_ALIASES), - ] + ], )