summaryrefslogtreecommitdiff
path: root/app/graphql/types/notes/noteable_interface.rb
diff options
context:
space:
mode:
Diffstat (limited to 'app/graphql/types/notes/noteable_interface.rb')
-rw-r--r--app/graphql/types/notes/noteable_interface.rb31
1 files changed, 31 insertions, 0 deletions
diff --git a/app/graphql/types/notes/noteable_interface.rb b/app/graphql/types/notes/noteable_interface.rb
new file mode 100644
index 00000000000..bd22f12d6f0
--- /dev/null
+++ b/app/graphql/types/notes/noteable_interface.rb
@@ -0,0 +1,31 @@
+# frozen_string_literal: true
+
+module Types
+ module Notes
+ module NoteableInterface
+ include Types::BaseInterface
+
+ field :notes, Types::Notes::NoteType.connection_type, null: false, description: "All notes on this noteable."
+ field :discussions, Types::Notes::DiscussionType.connection_type, null: false, description: "All discussions on this noteable."
+
+ def self.resolve_type(object, context)
+ case object
+ when Issue
+ Types::IssueType
+ when MergeRequest
+ Types::MergeRequestType
+ when Snippet
+ Types::SnippetType
+ when ::DesignManagement::Design
+ Types::DesignManagement::DesignType
+ when ::AlertManagement::Alert
+ Types::AlertManagement::AlertType
+ else
+ raise "Unknown GraphQL type for #{object}"
+ end
+ end
+ end
+ end
+end
+
+Types::Notes::NoteableInterface.prepend_mod_with('Types::Notes::NoteableInterface')