@@ -11,13 +11,13 @@ def initialize(api_key, segments_repository, config, telemetry_runtime_producer)
1111 @telemetry_runtime_producer = telemetry_runtime_producer
1212 end
1313
14- def fetch_segments_by_names ( names , cache_control_headers = false )
14+ def fetch_segments_by_names ( names , fetch_options = { cache_control_headers : false , till : nil } )
1515 return if names . nil? || names . empty?
1616
1717 names . each do |name |
1818 since = @segments_repository . get_change_number ( name )
1919 loop do
20- segment = fetch_segment_changes ( name , since , cache_control_headers )
20+ segment = fetch_segment_changes ( name , since , fetch_options )
2121 @segments_repository . add_to_segment ( segment )
2222
2323 @config . split_logger . log_if_debug ( "Segment #{ name } fetched before: #{ since } , \
@@ -32,9 +32,12 @@ def fetch_segments_by_names(names, cache_control_headers = false)
3232
3333 private
3434
35- def fetch_segment_changes ( name , since , cache_control_headers = false )
35+ def fetch_segment_changes ( name , since , fetch_options = { cache_control_headers : false , till : nil } )
3636 start = Time . now
37- response = get_api ( "#{ @config . base_uri } /segmentChanges/#{ name } " , @api_key , { since : since } , cache_control_headers )
37+
38+ params = { since : since }
39+ params [ :till ] = fetch_options [ :till ] unless fetch_options [ :till ] . nil?
40+ response = get_api ( "#{ @config . base_uri } /segmentChanges/#{ name } " , @api_key , params , fetch_options [ :cache_control_headers ] )
3841
3942 if response . success?
4043 segment = JSON . parse ( response . body , symbolize_names : true )
0 commit comments