Class: DaVinciDTRTestKit::MockPayer::NextQuestionProxyEndpoint

Inherits:
Inferno::DSL::SuiteEndpoint
  • Object
show all
Defined in:
lib/davinci_dtr_test_kit/endpoints/mock_payer/next_question_proxy_endpoint.rb

Instance Method Summary collapse

Instance Method Details

#make_responseObject



12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# File 'lib/davinci_dtr_test_kit/endpoints/mock_payer/next_question_proxy_endpoint.rb', line 12

def make_response
  session_id = result.test_session_id
  session_data = Inferno::Repositories::SessionData.new
  url_input = session_data.load(test_session_id: session_id, name: 'url')
  credentials_input =
    session_data.load(
      test_session_id: session_id,
      name: 'smart_auth_info',
      type: 'auth_info'
    )

  client = FHIR::Client.new(url_input)
  client.default_json
  client.set_bearer_token(credentials_input.access_token) if credentials_input.access_token
  payer_response = client.send(:post, '/Questionnaire/$next-question', JSON.parse(request.body.string),
                               { 'Content-Type' => 'application/fhir+json' })

  response.status = 200
  response.format = 'application/fhir+json'
  response.headers['Access-Control-Allow-Origin'] = '*'
  response.body = payer_response.response[:body].to_s
end

#tagsObject



8
9
10
# File 'lib/davinci_dtr_test_kit/endpoints/mock_payer/next_question_proxy_endpoint.rb', line 8

def tags
  [NEXT_TAG]
end

#test_run_identifierObject



4
5
6
# File 'lib/davinci_dtr_test_kit/endpoints/mock_payer/next_question_proxy_endpoint.rb', line 4

def test_run_identifier
  request.headers['authorization']&.delete_prefix('Bearer ')
end

#update_resultObject



35
36
37
# File 'lib/davinci_dtr_test_kit/endpoints/mock_payer/next_question_proxy_endpoint.rb', line 35

def update_result
  results_repo.update_result(result.id, 'pass') unless test.config.options[:accepts_multiple_requests]
end