diff --git a/netbox/core/graphql/filters.py b/netbox/core/graphql/filters.py index e69de29bb..4e554331f 100644 --- a/netbox/core/graphql/filters.py +++ b/netbox/core/graphql/filters.py @@ -0,0 +1,21 @@ +import strawberry +import strawberry_django +from strawberry import auto +from core import models, filtersets +from netbox.graphql import filters + + +__all__ = ( + 'DataFileFilter', + 'DataSourceFilter', +) + + +@strawberry_django.filter(models.DataFile, lookups=True) +class DataFileFilter(filtersets.DataFileFilterSet): + id: auto + + +@strawberry_django.filter(models.DataSource, lookups=True) +class DataSourceFilter(filtersets.DataSourceFilterSet): + id: auto diff --git a/netbox/core/graphql/schema.py b/netbox/core/graphql/schema.py index 876faa442..7118da11b 100644 --- a/netbox/core/graphql/schema.py +++ b/netbox/core/graphql/schema.py @@ -1,20 +1,15 @@ -import graphene +from typing import List +import strawberry +import strawberry_django from core import models -from netbox.graphql.fields import ObjectField, ObjectListField from .types import * -from utilities.graphql_optimizer import gql_query_optimizer -class CoreQuery(graphene.ObjectType): - data_file = ObjectField(DataFileType) - data_file_list = ObjectListField(DataFileType) +@strawberry.type +class CoreQuery: + data_file: DataFileType = strawberry_django.field() + data_file_list: List[DataFileType] = strawberry_django.field() - def resolve_data_file_list(root, info, **kwargs): - return gql_query_optimizer(models.DataFile.objects.all(), info) - - data_source = ObjectField(DataSourceType) - data_source_list = ObjectListField(DataSourceType) - - def resolve_data_source_list(root, info, **kwargs): - return gql_query_optimizer(models.DataSource.objects.all(), info) + data_source: DataSourceType = strawberry_django.field() + data_source_list: List[DataSourceType] = strawberry_django.field() diff --git a/netbox/core/graphql/types.py b/netbox/core/graphql/types.py index 02d8ab483..f4f1ebd46 100644 --- a/netbox/core/graphql/types.py +++ b/netbox/core/graphql/types.py @@ -13,7 +13,8 @@ __all__ = ( @strawberry_django.type( models.DataFile, - fields='__all__', + # fields='__all__', + exclude=('data',), # bug - temp filters=DataFileFilter ) class DataFileType(BaseObjectType): diff --git a/netbox/netbox/graphql/schema.py b/netbox/netbox/graphql/schema.py index f222a3f2c..5daec5973 100644 --- a/netbox/netbox/graphql/schema.py +++ b/netbox/netbox/graphql/schema.py @@ -2,6 +2,7 @@ import strawberry from strawberry_django.optimizer import DjangoOptimizerExtension from strawberry.schema.config import StrawberryConfig from circuits.graphql.schema import CircuitsQuery +from core.graphql.schema import CoreQuery from users.graphql.schema import UsersQuery # from virtualization.graphql.schema import VirtualizationQuery # from vpn.graphql.schema import VPNQuery @@ -12,16 +13,16 @@ from users.graphql.schema import UsersQuery class Query( UsersQuery, CircuitsQuery, - # CoreQuery, - # DCIMQuery, - # ExtrasQuery, - # IPAMQuery, - # TenancyQuery, - # VirtualizationQuery, - # VPNQuery, - # WirelessQuery, - # *registry['plugins']['graphql_schemas'], # Append plugin schemas - # graphene.ObjectType + CoreQuery, + # DCIMQuery, + # ExtrasQuery, + # IPAMQuery, + # TenancyQuery, + # VirtualizationQuery, + # VPNQuery, + # WirelessQuery, + # *registry['plugins']['graphql_schemas'], # Append plugin schemas + # graphene.ObjectType ): pass