diff options
Diffstat (limited to 'app/graphql/types/resolvable_interface.rb')
-rw-r--r-- | app/graphql/types/resolvable_interface.rb | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/app/graphql/types/resolvable_interface.rb b/app/graphql/types/resolvable_interface.rb new file mode 100644 index 00000000000..a39092c70ca --- /dev/null +++ b/app/graphql/types/resolvable_interface.rb @@ -0,0 +1,28 @@ +# frozen_string_literal: true + +module Types + # This Interface contains fields that are shared between objects that include either + # the `ResolvableNote` or `ResolvableDiscussion` modules. + module ResolvableInterface + include Types::BaseInterface + + field :resolved_by, Types::UserType, + null: true, + description: 'User who resolved the object' + + def resolved_by + return unless object.resolved_by_id + + Gitlab::Graphql::Loaders::BatchModelLoader.new(User, object.resolved_by_id).find + end + + field :resolved, GraphQL::BOOLEAN_TYPE, null: false, + description: 'Indicates if the object is resolved', + method: :resolved? + field :resolvable, GraphQL::BOOLEAN_TYPE, null: false, + description: 'Indicates if the object can be resolved', + method: :resolvable? + field :resolved_at, Types::TimeType, null: true, + description: 'Timestamp of when the object was resolved' + end +end |