summaryrefslogtreecommitdiff
path: root/app/graphql/types/merge_requests/interacts_with_merge_request.rb
blob: d685ac4d3c9e513f274161931f42fc39d9a70743 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# frozen_string_literal: true

module Types
  module MergeRequests
    module InteractsWithMergeRequest
      extend ActiveSupport::Concern

      included do
        field :merge_request_interaction,
              type: ::Types::UserMergeRequestInteractionType,
              null: true,
              extras: [:parent],
              description: "Details of this user's interactions with the merge request."
      end

      def merge_request_interaction(parent:)
        merge_request = closest_parent(::Types::MergeRequestType, parent)
        return unless merge_request

        Users::MergeRequestInteraction.new(user: object, merge_request: merge_request)
      end
    end
  end
end