Add GraphQL for tenancy

This commit is contained in:
jeremystretch 2021-06-25 14:19:20 -04:00
parent 7256c7050a
commit 881b18f6d0
5 changed files with 39 additions and 2 deletions

View File

@ -3,12 +3,14 @@ import graphene
from circuits.graphql.schema import CircuitsQuery
from extras.graphql.schema import ExtrasQuery
from ipam.graphql.schema import IPAMQuery
from tenancy.graphql.schema import TenancyQuery
class Query(
CircuitsQuery,
ExtrasQuery,
IPAMQuery,
TenancyQuery,
graphene.ObjectType
):
pass

View File

View File

@ -0,0 +1,12 @@
import graphene
from netbox.graphql.fields import ObjectField, ObjectListField
from .types import *
class TenancyQuery(graphene.ObjectType):
tenant = ObjectField(TenantType)
tenants = ObjectListField(TenantType)
tenant_group = ObjectField(TenantGroupType)
tenant_groups = ObjectListField(TenantGroupType)

View File

@ -0,0 +1,23 @@
from tenancy import filtersets, models
from netbox.graphql.types import ObjectType, TaggedObjectType
__all__ = (
'TenantType',
'TenantGroupType',
)
class TenantType(ObjectType):
class Meta:
model = models.Tenant
fields = '__all__'
filterset_class = filtersets.TenantFilterSet
class TenantGroupType(TaggedObjectType):
class Meta:
model = models.TenantGroup
fields = '__all__'
filterset_class = filtersets.TenantGroupFilterSet

View File

@ -14,7 +14,7 @@ class AppTest(APITestCase):
self.assertEqual(response.status_code, 200)
class TenantGroupTest(APIViewTestCases.APIViewTestCase):
class TenantGroupTest(APIViewTestCases.GraphQLTestCase, APIViewTestCases.APIViewTestCase):
model = TenantGroup
brief_fields = ['_depth', 'display', 'id', 'name', 'slug', 'tenant_count', 'url']
bulk_update_data = {
@ -52,7 +52,7 @@ class TenantGroupTest(APIViewTestCases.APIViewTestCase):
]
class TenantTest(APIViewTestCases.APIViewTestCase):
class TenantTest(APIViewTestCases.GraphQLTestCase, APIViewTestCases.APIViewTestCase):
model = Tenant
brief_fields = ['display', 'id', 'name', 'slug', 'url']
bulk_update_data = {