mirror of
https://github.com/netbox-community/netbox.git
synced 2026-03-26 03:11:49 +01:00
Clone all GraphQL objects to V1 versions
This commit is contained in:
26
netbox/wireless/graphql/filter_mixins_v1.py
Normal file
26
netbox/wireless/graphql/filter_mixins_v1.py
Normal file
@@ -0,0 +1,26 @@
|
||||
from dataclasses import dataclass
|
||||
from typing import Annotated, TYPE_CHECKING
|
||||
|
||||
import strawberry
|
||||
import strawberry_django
|
||||
from strawberry_django import FilterLookup
|
||||
|
||||
from core.graphql.filter_mixins_v1 import BaseFilterMixinV1
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from .enums import *
|
||||
|
||||
__all__ = (
|
||||
'WirelessAuthenticationBaseFilterMixinV1',
|
||||
)
|
||||
|
||||
|
||||
@dataclass
|
||||
class WirelessAuthenticationBaseFilterMixinV1(BaseFilterMixinV1):
|
||||
auth_type: Annotated['WirelessAuthTypeEnum', strawberry.lazy('wireless.graphql.enums')] | None = (
|
||||
strawberry_django.filter_field()
|
||||
)
|
||||
auth_cipher: Annotated['WirelessAuthCipherEnum', strawberry.lazy('wireless.graphql.enums')] | None = (
|
||||
strawberry_django.filter_field()
|
||||
)
|
||||
auth_psk: FilterLookup[str] | None = strawberry_django.filter_field()
|
||||
72
netbox/wireless/graphql/filters_v1.py
Normal file
72
netbox/wireless/graphql/filters_v1.py
Normal file
@@ -0,0 +1,72 @@
|
||||
from typing import Annotated, TYPE_CHECKING
|
||||
|
||||
import strawberry
|
||||
import strawberry_django
|
||||
from strawberry.scalars import ID
|
||||
from strawberry_django import FilterLookup
|
||||
|
||||
from dcim.graphql.filter_mixins_v1 import ScopedFilterMixinV1
|
||||
from netbox.graphql.filter_mixins_v1 import (
|
||||
DistanceFilterMixinV1, PrimaryModelFilterMixinV1, NestedGroupModelFilterMixinV1
|
||||
)
|
||||
from tenancy.graphql.filter_mixins_v1 import TenancyFilterMixinV1
|
||||
from wireless import models
|
||||
from .filter_mixins_v1 import WirelessAuthenticationBaseFilterMixinV1
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from dcim.graphql.filters_v1 import InterfaceFilterV1
|
||||
from ipam.graphql.filters_v1 import VLANFilterV1
|
||||
from .enums import *
|
||||
|
||||
__all__ = (
|
||||
'WirelessLANGroupFilterV1',
|
||||
'WirelessLANFilterV1',
|
||||
'WirelessLinkFilterV1',
|
||||
)
|
||||
|
||||
|
||||
@strawberry_django.filter_type(models.WirelessLANGroup, lookups=True)
|
||||
class WirelessLANGroupFilterV1(NestedGroupModelFilterMixinV1):
|
||||
pass
|
||||
|
||||
|
||||
@strawberry_django.filter_type(models.WirelessLAN, lookups=True)
|
||||
class WirelessLANFilterV1(
|
||||
WirelessAuthenticationBaseFilterMixinV1,
|
||||
ScopedFilterMixinV1,
|
||||
TenancyFilterMixinV1,
|
||||
PrimaryModelFilterMixinV1
|
||||
):
|
||||
ssid: FilterLookup[str] | None = strawberry_django.filter_field()
|
||||
status: Annotated['WirelessLANStatusEnum', strawberry.lazy('wireless.graphql.enums')] | None = (
|
||||
strawberry_django.filter_field()
|
||||
)
|
||||
group: Annotated['WirelessLANGroupFilterV1', strawberry.lazy('wireless.graphql.filters_v1')] | None = (
|
||||
strawberry_django.filter_field()
|
||||
)
|
||||
group_id: ID | None = strawberry_django.filter_field()
|
||||
vlan: Annotated['VLANFilterV1', strawberry.lazy('ipam.graphql.filters_v1')] | None = (
|
||||
strawberry_django.filter_field()
|
||||
)
|
||||
vlan_id: ID | None = strawberry_django.filter_field()
|
||||
|
||||
|
||||
@strawberry_django.filter_type(models.WirelessLink, lookups=True)
|
||||
class WirelessLinkFilterV1(
|
||||
WirelessAuthenticationBaseFilterMixinV1,
|
||||
DistanceFilterMixinV1,
|
||||
TenancyFilterMixinV1,
|
||||
PrimaryModelFilterMixinV1
|
||||
):
|
||||
interface_a: Annotated['InterfaceFilterV1', strawberry.lazy('dcim.graphql.filters_v1')] | None = (
|
||||
strawberry_django.filter_field()
|
||||
)
|
||||
interface_a_id: ID | None = strawberry_django.filter_field()
|
||||
interface_b: Annotated['InterfaceFilterV1', strawberry.lazy('dcim.graphql.filters_v1')] | None = (
|
||||
strawberry_django.filter_field()
|
||||
)
|
||||
interface_b_id: ID | None = strawberry_django.filter_field()
|
||||
ssid: FilterLookup[str] | None = strawberry_django.filter_field()
|
||||
status: Annotated['WirelessLANStatusEnum', strawberry.lazy('wireless.graphql.enums')] | None = (
|
||||
strawberry_django.filter_field()
|
||||
)
|
||||
18
netbox/wireless/graphql/schema_v1.py
Normal file
18
netbox/wireless/graphql/schema_v1.py
Normal file
@@ -0,0 +1,18 @@
|
||||
from typing import List
|
||||
|
||||
import strawberry
|
||||
import strawberry_django
|
||||
|
||||
from .types_v1 import *
|
||||
|
||||
|
||||
@strawberry.type(name="Query")
|
||||
class WirelessQueryV1:
|
||||
wireless_lan: WirelessLANTypeV1 = strawberry_django.field()
|
||||
wireless_lan_list: List[WirelessLANTypeV1] = strawberry_django.field()
|
||||
|
||||
wireless_lan_group: WirelessLANGroupTypeV1 = strawberry_django.field()
|
||||
wireless_lan_group_list: List[WirelessLANGroupTypeV1] = strawberry_django.field()
|
||||
|
||||
wireless_link: WirelessLinkTypeV1 = strawberry_django.field()
|
||||
wireless_link_list: List[WirelessLinkTypeV1] = strawberry_django.field()
|
||||
71
netbox/wireless/graphql/types_v1.py
Normal file
71
netbox/wireless/graphql/types_v1.py
Normal file
@@ -0,0 +1,71 @@
|
||||
from typing import Annotated, List, TYPE_CHECKING, Union
|
||||
|
||||
import strawberry
|
||||
import strawberry_django
|
||||
|
||||
from netbox.graphql.types_v1 import OrganizationalObjectTypeV1, NetBoxObjectTypeV1
|
||||
from wireless import models
|
||||
from .filters_v1 import *
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from dcim.graphql.types_v1 import (
|
||||
DeviceTypeV1, InterfaceTypeV1, LocationTypeV1, RegionTypeV1, SiteGroupTypeV1, SiteTypeV1
|
||||
)
|
||||
from ipam.graphql.types_v1 import VLANTypeV1
|
||||
from tenancy.graphql.types_v1 import TenantTypeV1
|
||||
|
||||
__all__ = (
|
||||
'WirelessLANTypeV1',
|
||||
'WirelessLANGroupTypeV1',
|
||||
'WirelessLinkTypeV1',
|
||||
)
|
||||
|
||||
|
||||
@strawberry_django.type(
|
||||
models.WirelessLANGroup,
|
||||
fields='__all__',
|
||||
filters=WirelessLANGroupFilterV1,
|
||||
pagination=True
|
||||
)
|
||||
class WirelessLANGroupTypeV1(OrganizationalObjectTypeV1):
|
||||
parent: Annotated["WirelessLANGroupTypeV1", strawberry.lazy('wireless.graphql.types_v1')] | None
|
||||
|
||||
wireless_lans: List[Annotated["WirelessLANTypeV1", strawberry.lazy('wireless.graphql.types_v1')]]
|
||||
children: List[Annotated["WirelessLANGroupTypeV1", strawberry.lazy('wireless.graphql.types_v1')]]
|
||||
|
||||
|
||||
@strawberry_django.type(
|
||||
models.WirelessLAN,
|
||||
exclude=['scope_type', 'scope_id', '_location', '_region', '_site', '_site_group'],
|
||||
filters=WirelessLANFilterV1,
|
||||
pagination=True
|
||||
)
|
||||
class WirelessLANTypeV1(NetBoxObjectTypeV1):
|
||||
group: Annotated["WirelessLANGroupTypeV1", strawberry.lazy('wireless.graphql.types_v1')] | None
|
||||
vlan: Annotated["VLANTypeV1", strawberry.lazy('ipam.graphql.types_v1')] | None
|
||||
tenant: Annotated["TenantTypeV1", strawberry.lazy('tenancy.graphql.types_v1')] | None
|
||||
|
||||
interfaces: List[Annotated["InterfaceTypeV1", strawberry.lazy('dcim.graphql.types_v1')]]
|
||||
|
||||
@strawberry_django.field
|
||||
def scope(self) -> Annotated[Union[
|
||||
Annotated["LocationTypeV1", strawberry.lazy('dcim.graphql.types_v1')],
|
||||
Annotated["RegionTypeV1", strawberry.lazy('dcim.graphql.types_v1')],
|
||||
Annotated["SiteGroupTypeV1", strawberry.lazy('dcim.graphql.types_v1')],
|
||||
Annotated["SiteTypeV1", strawberry.lazy('dcim.graphql.types_v1')],
|
||||
], strawberry.union("WirelessLANScopeTypeV1")] | None:
|
||||
return self.scope
|
||||
|
||||
|
||||
@strawberry_django.type(
|
||||
models.WirelessLink,
|
||||
fields='__all__',
|
||||
filters=WirelessLinkFilterV1,
|
||||
pagination=True
|
||||
)
|
||||
class WirelessLinkTypeV1(NetBoxObjectTypeV1):
|
||||
interface_a: Annotated["InterfaceTypeV1", strawberry.lazy('dcim.graphql.types_v1')]
|
||||
interface_b: Annotated["InterfaceTypeV1", strawberry.lazy('dcim.graphql.types_v1')]
|
||||
tenant: Annotated["TenantTypeV1", strawberry.lazy('tenancy.graphql.types_v1')] | None
|
||||
_interface_a_device: Annotated["DeviceTypeV1", strawberry.lazy('dcim.graphql.types_v1')] | None
|
||||
_interface_b_device: Annotated["DeviceTypeV1", strawberry.lazy('dcim.graphql.types_v1')] | None
|
||||
Reference in New Issue
Block a user