types.py 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144
  1. import strawberry
  2. import strawberry_django
  3. import strawberry
  4. from strawberry import auto
  5. import strawberry_django
  6. from extras import models
  7. from extras.graphql.mixins import CustomFieldsMixin, TagsMixin
  8. from netbox.graphql.types import BaseObjectType, ObjectType, OrganizationalObjectType
  9. from .filters import *
  10. __all__ = (
  11. 'ConfigContextType',
  12. 'ConfigTemplateType',
  13. 'CustomFieldChoiceSetType',
  14. 'CustomFieldType',
  15. 'CustomLinkType',
  16. 'EventRuleType',
  17. 'ExportTemplateType',
  18. 'ImageAttachmentType',
  19. 'JournalEntryType',
  20. 'ObjectChangeType',
  21. 'SavedFilterType',
  22. 'TagType',
  23. 'WebhookType',
  24. )
  25. @strawberry_django.type(
  26. models.ConfigContext,
  27. fields='__all__',
  28. filters=ConfigContextFilter
  29. )
  30. class ConfigContextType(ObjectType):
  31. pass
  32. @strawberry_django.type(
  33. models.ConfigTemplate,
  34. fields='__all__',
  35. filters=ConfigTemplateFilter
  36. )
  37. class ConfigTemplateType(TagsMixin, ObjectType):
  38. pass
  39. @strawberry_django.type(
  40. models.CustomField,
  41. fields='__all__',
  42. filters=CustomFieldFilter
  43. )
  44. class CustomFieldType(ObjectType):
  45. pass
  46. @strawberry_django.type(
  47. models.CustomFieldChoiceSet,
  48. fields='__all__',
  49. filters=CustomFieldChoiceSetFilter
  50. )
  51. class CustomFieldChoiceSetType(ObjectType):
  52. pass
  53. @strawberry_django.type(
  54. models.CustomLink,
  55. fields='__all__',
  56. filters=CustomLinkFilter
  57. )
  58. class CustomLinkType(ObjectType):
  59. pass
  60. @strawberry_django.type(
  61. models.ExportTemplate,
  62. fields='__all__',
  63. filters=ExportTemplateFilter
  64. )
  65. class ExportTemplateType(ObjectType):
  66. pass
  67. @strawberry_django.type(
  68. models.ImageAttachment,
  69. fields='__all__',
  70. filters=ImageAttachmentFilter
  71. )
  72. class ImageAttachmentType(BaseObjectType):
  73. pass
  74. @strawberry_django.type(
  75. models.JournalEntry,
  76. fields='__all__',
  77. filters=JournalEntryFilter
  78. )
  79. class JournalEntryType(CustomFieldsMixin, TagsMixin, ObjectType):
  80. pass
  81. @strawberry_django.type(
  82. models.ObjectChange,
  83. fields='__all__',
  84. filters=ObjectChangeFilter
  85. )
  86. class ObjectChangeType(BaseObjectType):
  87. pass
  88. @strawberry_django.type(
  89. models.SavedFilter,
  90. exclude=['content_types',],
  91. filters=SavedFilterFilter
  92. )
  93. class SavedFilterType(ObjectType):
  94. pass
  95. @strawberry_django.type(
  96. models.Tag,
  97. exclude=['extras_taggeditem_items', 'color'], # bug - remove color from exclude
  98. filters=TagFilter
  99. )
  100. class TagType(ObjectType):
  101. pass
  102. @strawberry_django.type(
  103. models.Webhook,
  104. exclude=['content_types',],
  105. filters=WebhookFilter
  106. )
  107. class WebhookType(OrganizationalObjectType):
  108. pass
  109. @strawberry_django.type(
  110. models.EventRule,
  111. exclude=['content_types',],
  112. filters=EventRuleFilter
  113. )
  114. class EventRuleType(OrganizationalObjectType):
  115. pass