summaryrefslogtreecommitdiff
path: root/app/graphql/types/work_items/widget_interface.rb
diff options
context:
space:
mode:
Diffstat (limited to 'app/graphql/types/work_items/widget_interface.rb')
-rw-r--r--app/graphql/types/work_items/widget_interface.rb28
1 files changed, 28 insertions, 0 deletions
diff --git a/app/graphql/types/work_items/widget_interface.rb b/app/graphql/types/work_items/widget_interface.rb
new file mode 100644
index 00000000000..f3cf1d74829
--- /dev/null
+++ b/app/graphql/types/work_items/widget_interface.rb
@@ -0,0 +1,28 @@
+# frozen_string_literal: true
+
+module Types
+ module WorkItems
+ module WidgetInterface
+ include Types::BaseInterface
+
+ graphql_name 'WorkItemWidget'
+
+ field :type, ::Types::WorkItems::WidgetTypeEnum, null: true,
+ description: 'Widget type.'
+
+ def self.resolve_type(object, context)
+ case object
+ when ::WorkItems::Widgets::Description
+ ::Types::WorkItems::Widgets::DescriptionType
+ when ::WorkItems::Widgets::Hierarchy
+ ::Types::WorkItems::Widgets::HierarchyType
+ else
+ raise "Unknown GraphQL type for widget #{object}"
+ end
+ end
+
+ orphan_types ::Types::WorkItems::Widgets::DescriptionType,
+ ::Types::WorkItems::Widgets::HierarchyType
+ end
+ end
+end