summaryrefslogtreecommitdiff
path: root/lib/bulk_imports/pipeline/extracted_data.rb
blob: 0b36c0682981faa43dbabbb0086460702ffd4e47 (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
25
26
27
28
29
# frozen_string_literal: true

module BulkImports
  module Pipeline
    class ExtractedData
      attr_reader :data

      def initialize(data: nil, page_info: {})
        @data = data.is_a?(Enumerator) ? data : Array.wrap(data)
        @page_info = page_info
      end

      def has_next_page?
        Gitlab::Utils.to_boolean(
          @page_info&.dig('has_next_page'),
          default: false
        )
      end

      def next_page
        @page_info&.dig('next_page')
      end

      def each(&block)
        data.each(&block)
      end
    end
  end
end