diff --git a/lib/stargate/operation/scanner_operation.rb b/lib/stargate/operation/scanner_operation.rb index de2f170..da63cee 100644 --- a/lib/stargate/operation/scanner_operation.rb +++ b/lib/stargate/operation/scanner_operation.rb @@ -19,6 +19,8 @@ def open_scanner(table_name, options = {}) start_time = options.delete(:start_time) end_time = options.delete(:end_time) + filters = options.delete(:filters) + begin request = Request::ScannerRequest.new(table_name) @@ -33,14 +35,23 @@ def open_scanner(table_name, options = {}) warn "[open_scanner] Received invalid option key :#{key}" end end - if columns + if filters + # close the header xml_data << ">" + filters.each do |filter| + filter_string = "#{Oj.dump(filter)}" + xml_data << filter_string + end + xml_data << "" unless columns + end + if columns + xml_data << ">" unless filters [columns].flatten.each do |col| xml_data << "#{Base64.encode64(col)}" end xml_data << "" else - xml_data << "/>" + xml_data << "/>" unless filters end scanner = Response::ScannerResponse.new(rest_post_response(request.open, xml_data), :open_scanner).parse