summaryrefslogtreecommitdiff
path: root/lib/api/helpers/graphql_helpers.rb
blob: 94010ab1bc2ffe9d43d704b898ab75b995876c14 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# frozen_string_literal: true

module API
  module Helpers
    # GraphqlHelpers is used by the REST API when it is acting like a client
    # against the graphql API. Helper code for the graphql server implementation
    # should be in app/graphql/ or lib/gitlab/graphql/
    module GraphqlHelpers
      def conditionally_graphql!(fallback:, query:, context: {}, transform: nil)
        return fallback.call unless Feature.enabled?(:graphql)

        result = GitlabSchema.execute(query, context: context)

        if transform
          transform.call(result)
        else
          result
        end
      end
    end
  end
end