Closes #16224 GraphQL Pagination (#18903)

* 16244 add pagination

* 16244 add pagination

* 16244 fix order_by pagination

* 16224 document pagination

* 16224 remove extraneous code

* 16224 missing core types

* 16224 review changes

* 16224 review changes

* 16224 review changes
This commit is contained in:
Arthur Hanson
2025-03-20 13:00:14 -07:00
committed by GitHub
parent 80440fd025
commit fe7cc8cae9
14 changed files with 277 additions and 117 deletions

View File

@@ -32,7 +32,8 @@ __all__ = (
@strawberry_django.type(
models.TunnelGroup,
fields='__all__',
filters=TunnelGroupFilter
filters=TunnelGroupFilter,
pagination=True
)
class TunnelGroupType(OrganizationalObjectType):
@@ -42,7 +43,8 @@ class TunnelGroupType(OrganizationalObjectType):
@strawberry_django.type(
models.TunnelTermination,
fields='__all__',
filters=TunnelTerminationFilter
filters=TunnelTerminationFilter,
pagination=True
)
class TunnelTerminationType(CustomFieldsMixin, TagsMixin, ObjectType):
tunnel: Annotated["TunnelType", strawberry.lazy('vpn.graphql.types')]
@@ -53,7 +55,8 @@ class TunnelTerminationType(CustomFieldsMixin, TagsMixin, ObjectType):
@strawberry_django.type(
models.Tunnel,
fields='__all__',
filters=TunnelFilter
filters=TunnelFilter,
pagination=True
)
class TunnelType(NetBoxObjectType):
group: Annotated["TunnelGroupType", strawberry.lazy('vpn.graphql.types')] | None
@@ -66,7 +69,8 @@ class TunnelType(NetBoxObjectType):
@strawberry_django.type(
models.IKEProposal,
fields='__all__',
filters=IKEProposalFilter
filters=IKEProposalFilter,
pagination=True
)
class IKEProposalType(OrganizationalObjectType):
@@ -76,7 +80,8 @@ class IKEProposalType(OrganizationalObjectType):
@strawberry_django.type(
models.IKEPolicy,
fields='__all__',
filters=IKEPolicyFilter
filters=IKEPolicyFilter,
pagination=True
)
class IKEPolicyType(OrganizationalObjectType):
@@ -87,7 +92,8 @@ class IKEPolicyType(OrganizationalObjectType):
@strawberry_django.type(
models.IPSecProposal,
fields='__all__',
filters=IPSecProposalFilter
filters=IPSecProposalFilter,
pagination=True
)
class IPSecProposalType(OrganizationalObjectType):
@@ -97,7 +103,8 @@ class IPSecProposalType(OrganizationalObjectType):
@strawberry_django.type(
models.IPSecPolicy,
fields='__all__',
filters=IPSecPolicyFilter
filters=IPSecPolicyFilter,
pagination=True
)
class IPSecPolicyType(OrganizationalObjectType):
@@ -108,7 +115,8 @@ class IPSecPolicyType(OrganizationalObjectType):
@strawberry_django.type(
models.IPSecProfile,
fields='__all__',
filters=IPSecProfileFilter
filters=IPSecProfileFilter,
pagination=True
)
class IPSecProfileType(OrganizationalObjectType):
ike_policy: Annotated["IKEPolicyType", strawberry.lazy('vpn.graphql.types')]
@@ -120,7 +128,8 @@ class IPSecProfileType(OrganizationalObjectType):
@strawberry_django.type(
models.L2VPN,
fields='__all__',
filters=L2VPNFilter
filters=L2VPNFilter,
pagination=True
)
class L2VPNType(ContactsMixin, NetBoxObjectType):
tenant: Annotated["TenantType", strawberry.lazy('tenancy.graphql.types')] | None
@@ -133,7 +142,8 @@ class L2VPNType(ContactsMixin, NetBoxObjectType):
@strawberry_django.type(
models.L2VPNTermination,
exclude=['assigned_object_type', 'assigned_object_id'],
filters=L2VPNTerminationFilter
filters=L2VPNTerminationFilter,
pagination=True
)
class L2VPNTerminationType(NetBoxObjectType):
l2vpn: Annotated["L2VPNType", strawberry.lazy('vpn.graphql.types')]