Sha256: d3d8ebc3ffa520f766812ab0f5b06f09318940fa8174222f44767bc3b19dda23

Contents?: true

Size: 1 KB

Versions: 8

Compression:

Stored size: 1 KB

Contents

# frozen_string_literal: true

module BulkDataTestKit
  module ExportKickOffPerformer
    def perform_export_kick_off_request(use_token: true, params: {}, url: '')
      skip_if use_token && bearer_token.blank?, 'Could not verify this functionality when bearer token is not set'

      headers = { accept: 'application/fhir+json', prefer: 'respond-async' }
      headers.merge!({ authorization: "Bearer #{bearer_token}" }) if use_token

      param_str = params.map { |k, v| URI.encode_www_form(k => v) }.join('&')
      url.concat("?#{param_str}") unless param_str.empty?
      get(url, client: :bulk_server, name: :export, headers:)
    end

    def delete_export_kick_off_request
      polling_url = request&.response_header('content-location')&.value
      assert polling_url.present?, 'Export response header did not include "Content-Location"'

      headers = { accept: 'application/json', authorization: "Bearer #{bearer_token}" }

      delete(polling_url, headers:)
      assert_response_status(202)
    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
bulk_data_test_kit-0.11.1 lib/bulk_data_test_kit/export_kick_off_performer.rb
bulk_data_test_kit-0.11.0 lib/bulk_data_test_kit/export_kick_off_performer.rb
bulk_data_test_kit-0.10.1 lib/bulk_data_test_kit/export_kick_off_performer.rb
bulk_data_test_kit-0.10.0 lib/bulk_data_test_kit/export_kick_off_performer.rb
bulk_data_test_kit-0.9.3 lib/bulk_data_test_kit/export_kick_off_performer.rb
bulk_data_test_kit-0.9.2 lib/bulk_data_test_kit/export_kick_off_performer.rb
bulk_data_test_kit-0.9.1 lib/bulk_data_test_kit/export_kick_off_performer.rb
bulk_data_test_kit-0.9.0 lib/bulk_data_test_kit/export_kick_off_performer.rb