diff options
Diffstat (limited to 'app/graphql/types/notes/noteable_interface.rb')
-rw-r--r-- | app/graphql/types/notes/noteable_interface.rb | 31 |
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') |