Module: Types::WorkItems::WidgetInterface

Includes:
BaseInterface
Defined in:
app/graphql/types/work_items/widget_interface.rb

Constant Summary collapse

ORPHAN_TYPES =
[
  ::Types::WorkItems::Widgets::DescriptionType,
  ::Types::WorkItems::Widgets::HierarchyType,
  ::Types::WorkItems::Widgets::LabelsType,
  ::Types::WorkItems::Widgets::AssigneesType,
  ::Types::WorkItems::Widgets::StartAndDueDateType,
  ::Types::WorkItems::Widgets::MilestoneType,
  ::Types::WorkItems::Widgets::NotesType,
  ::Types::WorkItems::Widgets::NotificationsType,
  ::Types::WorkItems::Widgets::CurrentUserTodosType,
  ::Types::WorkItems::Widgets::AwardEmojiType,
  ::Types::WorkItems::Widgets::LinkedItemsType
].freeze

Class Method Summary collapse

Class Method Details

.ce_orphan_typesObject



28
29
30
# File 'app/graphql/types/work_items/widget_interface.rb', line 28

def self.ce_orphan_types
  ORPHAN_TYPES
end

.resolve_type(object, context) ⇒ Object

Whenever a new widget is added make sure to update the spec to avoid N + 1 queries in spec/requests/api/graphql/project/work_items_spec.rb and add the necessary preloads in app/graphql/resolvers/work_items_resolver.rb



35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
# File 'app/graphql/types/work_items/widget_interface.rb', line 35

def self.resolve_type(object, context)
  case object
  when ::WorkItems::Widgets::Description
    ::Types::WorkItems::Widgets::DescriptionType
  when ::WorkItems::Widgets::Hierarchy
    ::Types::WorkItems::Widgets::HierarchyType
  when ::WorkItems::Widgets::Assignees
    ::Types::WorkItems::Widgets::AssigneesType
  when ::WorkItems::Widgets::Labels
    ::Types::WorkItems::Widgets::LabelsType
  when ::WorkItems::Widgets::StartAndDueDate
    ::Types::WorkItems::Widgets::StartAndDueDateType
  when ::WorkItems::Widgets::Milestone
    ::Types::WorkItems::Widgets::MilestoneType
  when ::WorkItems::Widgets::Notes
    ::Types::WorkItems::Widgets::NotesType
  when ::WorkItems::Widgets::Notifications
    ::Types::WorkItems::Widgets::NotificationsType
  when ::WorkItems::Widgets::CurrentUserTodos
    ::Types::WorkItems::Widgets::CurrentUserTodosType
  when ::WorkItems::Widgets::AwardEmoji
    ::Types::WorkItems::Widgets::AwardEmojiType
  when ::WorkItems::Widgets::LinkedItems
    ::Types::WorkItems::Widgets::LinkedItemsType
  else
    raise "Unknown GraphQL type for widget #{object}"
  end
end